Сохранен 526
https://2ch.hk/pr/res/1700220.html
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Тред про лучший в мире язык GO №10 (юбилейный) /go/

 Аноним OP 24/05/20 Вск 16:56:24 #1 №1700220 
g1.jpg
g2.png
GO (а также Golang, Пщ или просто Го) — современный язык с зелеными потоками на уровне синтаксиса и крутой стандартной библиотекой. Так как делать пакеджи несложно, гитхаб полон пакеджами для абсолютно всего.


Для вката в Go читай:
- Донован, Керниган "Язык программирования Go"
- https://www.golang-book.com/
- книги из списка https://github.com/dariubs/GoBooks
- а также смотрим видео https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSw

Пэкеджи можно искать тут https://github.com/avelino/awesome-go


Живем в ожидании Go2, пробрасываем ошибки, смеемся над джавистами, которые не могут жить без ексепшенов, дженериков и размазанной бизнес-логики, ждем, когда нам подвезут аналоги эксепшенов и дженериков
Аноним 24/05/20 Вск 16:57:23 #2 №1700225 
А разве не будет в go 2 обратной совместимости с go 1 ?
Аноним 24/05/20 Вск 17:04:08 #3 №1700247 
>>1700225
В семвере разработчик не обязан сохранять обратную совместимость при смене мажорной версии.
Аноним 24/05/20 Вск 17:07:08 #4 №1700251 
>>1700225
На данный момент - неизвестно, но было заявление, что возможно - да.
Аноним 24/05/20 Вск 17:14:26 #5 №1700263 
>>1700200 →
Я так-то так и делал, только в слайс сохранял, т.к. в задаче сказано
>числа могут содержать до 1000 цифр
Пока писал - понял где обосрался:
echo 102 201 | go run solution.go
У меня выдает 3
Аноним 24/05/20 Вск 17:23:35 #6 №1700272 
в прошлом спрашивал про аллюр и аналоги для Го, есть какие-то либы с количество звезд больше 15?
Аноним 24/05/20 Вск 17:48:33 #7 №1700301 
>>1700247
А релизы голанга точно придерживаются семвера? То, что в модулях принят семвер, ещё ничего не значит.
Аноним 24/05/20 Вск 17:58:07 #8 №1700317 
>>1700301
>А релизы голанга точно придерживаются семвера?
А кто их знает, мажорная версия не менялась еще.
Аноним 24/05/20 Вск 19:20:16 #9 №1700398 
Зарегался на озоне, а на почте пусто. Вам долго приходил ответ?
Аноним 24/05/20 Вск 19:24:08 #10 №1700405 
>>1700398
Мне - два дня
Аноним 24/05/20 Вск 20:45:37 #11 №1700518 
>>1700398
А мне три, кто каналы решил?
Аноним 24/05/20 Вск 20:55:40 #12 №1700521 
Кто каналы не могет решить го в тележку @Go2Ch конфа
Аноним 24/05/20 Вск 21:31:54 #13 №1700550 
>>1700521
Добавил всех оттуда в блеклист.
мимо hr озона
Аноним 24/05/20 Вск 22:27:21 #14 №1700628 
Screenshot 2020-05-24 at 22.26.25.png
>>1700521
Аноним 25/05/20 Пнд 00:15:20 #15 №1700879 
>>1700521
У меня есть ответ про каналы, но где задача-то?
Аноним 25/05/20 Пнд 00:47:11 #16 №1700916 
>>1700521
пересоздал группу залетайте.
Аноним 25/05/20 Пнд 00:47:32 #17 №1700917 
>>1700916
@Go2Ch
Аноним 25/05/20 Пнд 01:54:10 #18 №1700981 
Что там у вас. Подгружаемые в рантайме модули до сих ор не реализовали?
Аноним 25/05/20 Пнд 03:17:28 #19 №1701038 
>>1700981
но нахуя?
Аноним 25/05/20 Пнд 03:26:31 #20 №1701042 
>>1700521
Уже решили про каналы
Аноним 25/05/20 Пнд 03:31:54 #21 №1701045 
>>1700981
Тут динамическую линковку-то ненавидят, а ты про рантайм.

На винде можно подгрузить dll-ку через syscall.LoadLibrary(). На юниксах - .so через C.dlopen().
.
Неудобно, небезопасно. громоздко.
Аноним 25/05/20 Пнд 06:31:07 #22 №1701093 
>>1701038
Плагины, динамическая компиляция, етк.
Аноним 25/05/20 Пнд 08:19:07 #23 №1701135 
У кого в CI настроены регрессионные тесты на производительность?
Как это вообще сделать? Хардкодить максимальное время в тестах?
А какое покрытие? Только основные горячие пути?
Аноним 25/05/20 Пнд 08:25:21 #24 №1701138 
>>1700981

Дык есть. Не супер удобно, но систему плагинов сверять можно.
Аноним 25/05/20 Пнд 08:50:14 #25 №1701148 
>>1700981
>>1701045
>>1701093
>Плагины
https://golang.org/pkg/plugin/
https://www.youtube.com/watch?v=pFgCkt-tBOI

Аноним 25/05/20 Пнд 09:26:55 #26 №1701167 
>>1701042
Нихуя не решили, ответа как будто и нет
Аноним 25/05/20 Пнд 09:31:42 #27 №1701173 
>>1701167
Меня, кстати, напрягает лог компиляции:
stdout:
'/temp/compiling/source' cannot be extracted via extract ()
/bin/sh ./build.sh


stderr:
Аноним 25/05/20 Пнд 09:42:46 #28 №1701184 
image.png
>>1701173
А меня, что функция два раза запускается
Аноним 25/05/20 Пнд 09:44:49 #29 №1701188 
>>1701184
Это stderr во время исполнения, если я не ошибаюсь. А то что я скинул - это то, что мне выдает если нажать на "Лог компиляции"
Аноним 25/05/20 Пнд 09:45:23 #30 №1701189 
Поясните почему гоуланг, а не хаскелл/скала/раст/или пайтон компилируемый to С? гоуланг же в принципе даже не самый быстрый.
Аноним 25/05/20 Пнд 09:45:24 #31 №1701190 
>>1701188
Во всех задачах такой лог почти
Аноним 25/05/20 Пнд 09:45:59 #32 №1701194 
>>1700220 (OP)
>2 пик
А что, в этом вашем Го нет дженериков?
Аноним 25/05/20 Пнд 09:46:46 #33 №1701195 
>>1701188
Хотя да, чекнул, странная херота
Аноним 25/05/20 Пнд 09:48:09 #34 №1701197 
>>1701190
В остальных задачах у меня там нихера:
stdout:


stderr:
Аноним 25/05/20 Пнд 09:54:35 #35 №1701203 
>>1701189
>хаскелл/скала
Редко используются
>раст
Не факт, что взлетит, замудренный синтаксис
>гоуланг же в принципе даже не самый быстрый.
Зато просто в обучении
Аноним 25/05/20 Пнд 09:55:41 #36 №1701206 
>>1701197
Я с 50 попытки начал задумываться что проблема на стороне ОЗОН
Аноним 25/05/20 Пнд 10:05:06 #37 №1701222 
>>1701206
Чекните "объявления жюри", вдруг там написано, что тест сломан и тд.
Ну и вообще, поищите емейлы оргов, вдруг чего ответят.
Аноним 25/05/20 Пнд 10:09:19 #38 №1701229 
>Несколько предложений и замечаний по задачам Е и F, которыми вы поделились, мы не смогли отловить на внутреннем тестировании задач. Вместе с авторами задач работаем над тем, чтобы прислать ответы как можно быстрее. Но сейчас понимаем, что нам нужно время, чтобы дать вам максимально полезные ответы по заданиям. Ниже будут текущие советы.
>Задание E необходимо решать на Go. По техническим причинам, тестирующая система выдает ошибку во всех случаях (программа считывает слишком много или мало чисел, вызов функции блокирующий и т.д.) кроме:
>IL = Idleness limit = функция работает слишком медленно
>OK = программа верно работает
Аноним 25/05/20 Пнд 10:10:36 #39 №1701231 
>>1701222
Я писал им уже. жду ответ
Аноним 25/05/20 Пнд 10:11:06 #40 №1701233 
>>1701231
А что именно ты им написал?
Аноним 25/05/20 Пнд 10:59:49 #41 №1701279 
https://habr.com/en/post/502506

В го теперь вытесняющая многозадачность? Хейтеры sosnooley?
Аноним 25/05/20 Пнд 14:22:00 #42 №1701641 
Аноны, какие задачи на го делают? Сам я плюсовик базовый пришел тимлид и отменил с++, Python, ruby и perl. Сказал - теперь все будет на пхп и вот мы переписываем код с божественных языков на пхп, кроме того стали вебельщиками. Планирую на го спрыгнуть. Питон - за язык не считаю, его и так все знают, он что-то вроде помошника, а не языка.
Аноним 25/05/20 Пнд 14:24:29 #43 №1701646 
Школу гоу я проебал, а что там за тест был?
>>Для Python, PHP, Node.js, Java или C# разработчиков с опытом больше года.
пиздец, а я на ++ писал и куда бля мне теперь?
Аноним 25/05/20 Пнд 14:44:22 #44 №1701691 
>>1701641
>пришел тимлид и отменил с++, Python, ruby и perl.
Охуенный тимлид, лол.
Ладно еще перловку переписать на нормальный язык - это вполне нормальное решение. Код, который изначально на плюсах написан переписывать на язык с GC - явно деграднул у вас проект, конечно. А отруби и змеюку на язык для РазНоРабочих - это вообще ход гения, просто шило на мыло, только при этом наевшись говна. Я бы хер забил на этот проект сразу же.
> Питон - за язык не считаю, его и так все знают, он что-то вроде помошника, а не языка.
Так все говорят, но как только начинаешь на собеседовании спрашивать что-то сложнее хелоуворолда - все сразу сыплются
Тоже самое и про баш говорят, но по итогу мало кто может написать нормальный скрипт
Аноним 25/05/20 Пнд 15:03:05 #45 №1701737 
>>1701691

С точки зрения бизнеса, лапша из кучи языков это жопа.
Хотя похапе - тупейший выбор.
Аноним 25/05/20 Пнд 15:21:29 #46 №1701773 
>>1701737
>С точки зрения бизнеса, лапша из кучи языков это жопа.
Я прекрасно понимаю, но если какой-то код начали писать на C++, то, наверное, не просто так.
Аноним 25/05/20 Пнд 15:40:30 #47 №1701824 
Немного веселых комментов с хабры
https://habr.com/ru/news/t/501876/#comment_21613874
Судя по трендам пик популярности Go пришелся на 2018 год. Пройдет еще пару лет и будет высокий спрос на специалистов способных переписать код с Go на любой другой нормальный язык.
К слову я год назад сам таких видел. Искали человека который с Go на Python все обратно перепишет.

Тут уже вопрос, если оно будет работать с приемлемой производительностью даже на Python, то в чём изначально был смысл писать на Go?

Как один из аргументов изначального написания на Go: «мы пишем на модняво-кучерявом языке» :)
> - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Какие ваши комментарии?оправдания
Аноним 25/05/20 Пнд 16:43:41 #48 №1701951 
>>1701773
Обычно бывает так, что есть какому-нибудь старшему разработчику поручают что-то сделать, он выбирает платформу, на которой ему удобно, которой он сам хорошо владеет либо которую хочет получше освоить на практике. Так в проект попадает какой-нибудь язык, платформа или инструмент.

Так оно и крутится в зоопарке других похожих инструментов. C++ легко могли выбрать не за возможности, а за опыт работы старших разработчиков.
Аноним 25/05/20 Пнд 17:09:17 #49 №1701999 
>>1701824
>Какие ваши комментарии?
Хабр для пидоров
Аноним 25/05/20 Пнд 17:22:19 #50 №1702028 
>>1701189
Я не ебу что у тебя в голове, если ты можешь поставить рядом Хаскелл и раст, они ж ппц про разное.

Алсо, время компиляции это тоже бонус гошки.
Аноним 25/05/20 Пнд 17:22:46 #51 №1702030 
>>1701194
С пробуждением!
slowpoke.jpg
Аноним 25/05/20 Пнд 17:23:57 #52 №1702035 
>>1701824
> Какие ваши комментарии?
Душители змея не смогли в го, теперь язык плохой
Аноним 25/05/20 Пнд 17:26:55 #53 №1702048 
>>1702028
>если ты можешь поставить рядом Хаскелл и раст, они ж ппц про разное.
Ну раст пошустрее голанга будеть.

Проходил мимо, решил спросить, думал тут знаюшие. ))
Аноним 25/05/20 Пнд 17:30:57 #54 №1702055 
>>1701194
И эксепшенов нет. И классов нет. И полиморфизма нет. По семантике это немного продвинутая сишка.
Аноним 25/05/20 Пнд 17:58:57 #55 №1702109 
Может кто скинуть тестовое от школы озона?
Поступать к ним лень, я и так все знаю. Но интересно, откуда нытье и здесь и на Хабре.
Аноним 25/05/20 Пнд 18:07:39 #56 №1702125 
>>1702048
В го удобная работа с асинхронными задачами. Полезно на серверах, всяких утилитах, которые работают с io, например. Удобен с точки зрения админа - из зависимостей зачастую только libc в системе, и то - опционально.
Аноним 25/05/20 Пнд 18:09:07 #57 №1702129 
>>1702109


Необходимо написать функцию func Merge2Channels(f func(int) int, in1 <-chan int, in2 <- chan int, out chan<- int, n int) в package main.
Описание ее работы:
n раз сделать следующее

прочитать по одному числу из каждого из двух каналов in1 и in2, назовем их x1 и x2.
вычислить f(x1) + f(x2)
записать полученное значение в out

Функция Merge2Channels должна быть неблокирующей, сразу возвращая управление.

Функция f может работать долгое время, ожидая чего-либо или производя вычисления.
Формат ввода

Количество итераций передается через аргумент n.

Целые числа подаются через аргументы-каналы in1 и in2.

Функция для обработки чисел перед сложением передается через аргумент f.

Формат вывода

Канал для вывода результатов передается через аргумент out.
Аноним 25/05/20 Пнд 18:11:00 #58 №1702132 
Только проблема в том, что решение "в лоб" - падает по таймауту, а остальные решения со спавном горутин для параллельности - падают на тестах.
Аноним 25/05/20 Пнд 18:13:40 #59 №1702135 
Научите пользоваться документацией по гошке. Вот есть интерфейс io.Write. Как найти все типы, что поддерживают вот этот интерфейс?
Аноним 25/05/20 Пнд 18:20:30 #60 №1702146 
>>1702125
Зачем гоуланг если есть python to C-code?
Аноним 25/05/20 Пнд 18:45:44 #61 №1702182 
>>1702146
Не нравиться - не ешь
Аноним 25/05/20 Пнд 18:47:49 #62 №1702186 
>>1702135
Толсто.
Аноним 25/05/20 Пнд 18:57:19 #63 №1702206 
>>1702135
Поставь Goland, он подсветит
Аноним 25/05/20 Пнд 19:04:14 #64 №1702229 
>>1702135
https://golang.org/lib/godoc/analysis/help.html

godoc -analysis=type
open http://localhost:6060/pkg/io/#Writer
Аноним 25/05/20 Пнд 19:29:25 #65 №1702273 
>>1702129
Больше вопросов, а решение на три строчки.

Сказано, что функция должна быть неблокирующей. Но что она должна делать, если в каналах in1 или in2 нет данных?

И что она должна делать, если выходной канал out забит и не может принять данные? Есть вариант, конечно, внутри Merge2Channels просто вызвать ещё одну горутину, в которой и проводить все эти манипуляции. Может быть это и требуется.

Всё равно задание ни о чём, ну не три, а семь строчек.
Аноним 25/05/20 Пнд 19:32:15 #66 №1702278 
>>1702273
ну ты сделай решение, мы затестим
Аноним 25/05/20 Пнд 19:40:52 #67 №1702298 
>>1702273
>Сказано, что функция должна быть неблокирующей. Но что она должна делать, если в каналах in1 или in2 нет данных?
тебе четко поставили задачи что ты должен сделать, а акабыть буш в другом месте, ты код пиши, чучело
Аноним 25/05/20 Пнд 19:51:02 #68 №1702313 
>>1701148
>plugins are only supported on Linux, FreeBSD, and macOS
Ну ясно.
Аноним 25/05/20 Пнд 19:53:58 #69 №1702319 
>>1702313
Я вообще слабо представлю где это говно может быть полезно. Если тебе нужно что-то подобное - то ты, верооятее - говнокодер.
Аноним 25/05/20 Пнд 20:02:15 #70 №1702333 
>>1702298
>>1702278
Ладно, говнокод тут:
https://ideone.com/J5hhSO

Содержательны тут функции background_merger и сама Merge2Channels, остальные - тест-платформа и демонстрация, их надо выпилить.

Наверное это можно лучше написать, но я тот анон, который пока ещё не начал учить го, но хочу потратить на него пару недель.
Аноним 25/05/20 Пнд 20:07:17 #71 №1702335 
>>1702333
Поменяй местами строчки в feed_channels и получишь deadlock
Аноним 25/05/20 Пнд 20:07:18 #72 №1702336 
>>1702333
wrong answer
Аноним 25/05/20 Пнд 20:19:43 #73 №1702350 
>>1702335
Будет, да, по-хорошему надо просто независимо каналы кормить. Здесь была просто тест-платформа, проверить, что это вообще работает, в ТЗ не сказано реализовать тест-платформу, этот код по итогу надо просто удалить.

Короче ТЗ не очень понятно. Я не люблю эти олимпиадные ТЗ, под практическую задачу делаются практические решения. Может им надо, чтобы я сначала освободил каналы со входными данными, а потом уже делал вычисления. Тогда надо тупо создать два новых канала на n элементов, считать-записать в них. Но вопрос в том, какого размера n, может там поток на миллионы чисел. Я же не могу закладываться на то, что n будет небольшим.

А есть какая-нибудь онлайн тест-платформа?
Аноним 25/05/20 Пнд 20:37:07 #74 №1702369 
>>1702132
Там на самом деле или описание задания пиздит, или тесты кривые. Я склоняюсь к второму и уверен, что это намеренно и править они это не станут. Даже понял, что они там протестить пытаются. Просто забейте хуй.
Аноним 25/05/20 Пнд 20:55:09 #75 №1702380 
>>1702369
А где эта тест-платформа?

Я бы тут несколько потенциальных проблем выделил:
1) n может быть очень-очень большим, заведомо не вариант запускать n горутин, тут проблема синхронизации и памяти. Может даже выделить канал на n элементов сложно.
2) блокировки входных каналов. Если попытаться сначала считать все n значений в буфер, то может ждать облом. Их там не будет, пока не будет данных в out.

3) если делать вычисления последовательно, в один поток, то можно не пройти по времени. Если параллельно, то надо синхронизировать вывод.

Я бы чисто из спортивного интереса поупражнялся, если бы платформа для теста была. Но сами курсы Озона мне нахуй не нужны.

Идея устойчивого хайлоад-решения в том, чтобы держать пул воркеров, штук 16, делать отдельные горутины, которые будут читать данные из входящего канала и складывать в буферный канал умеренной ёмкости. Воркеры будут брать данные из буферных каналов, считать, и выдавать результат в буферный канал с результатом. При этом дополнительно надо id-таски складывать.

Отдельная горутина будет читать данные из буфера результатов, ждать там i-ю таску, как она придёт, выплёвывать её в исходящий канал.

Но, блин, это продакшн извращения, их надо делать по ТЗ. Когда известно примерно, что там может быть в каналах, характер вычислений и т.п. Делать решение под неизвестную задачу несерьёзно. Особенно когда идёт набор на курсы по языку, на котором тебе это устойчивое хайлоад-решение надо реазизовать.
Аноним 25/05/20 Пнд 20:58:08 #76 №1702382 
>>1702380
Да там первый же тест не проходится, при этом все входные и выходные данные логятся на раз (они никакие не крайние) и правильность выполнения очевидна.
Офк, тесты на всю хуйню понаписаны уже на локалке и все до дыр проверено, ни прибавить ни убавить.
Аноним 25/05/20 Пнд 20:58:27 #77 №1702383 
>>1702380
не понял, как ты через канал будешь синхронизировать порядок
Аноним 25/05/20 Пнд 21:37:41 #78 №1702417 
>>1701646
Она же открыта ещё
Аноним 25/05/20 Пнд 21:47:07 #79 №1702435 
>>1702129
результаты в out должен передаваться в том же порядке, как приходят в in, или не обязательно?
Аноним 25/05/20 Пнд 21:49:05 #80 №1702438 
>>1701824
В комментах на хабре всегда сидят хейтеры прямо как здесь, почитай там еще обсуждения раста.
Аноним 25/05/20 Пнд 21:51:55 #81 №1702445 
>>1702383
Короче, идея такая. Создаётся структура-"задача". В ней два инта и одноразовый канал, куда будет положен результат.

Создаётся канал задач, буферизированных, примерно по числу воркеров с запасом.

Есть горутина, которая слушает входящие каналы, берёт оттуда инты, и создаёт задачу, то создаёт одноразовый канал для результата, эти два инта туда запихивает. Помещает эту структуру в очередь задач, а одноразовый канал, дополнительно, в очередь каналов с результатами, то есть в канал типа
out_channel := make(chan chan int, 1000)

Есть горутина, которая слушает этот out_channel. Как только там появился одноразовый канал, она ждёт результат в этом канале. Этот результат и будет тем, что надо отправить пользователю.

Надо чуть подумать о ресурсах, или использованный одноразовый канал надо убивать, или, альтернатива, отправлять в специальную очередь для свободных каналов.

Можно попробовать это в коде реализовать.
Аноним 25/05/20 Пнд 21:52:54 #82 №1702447 
>>1702435
Вот этом уверен, порядок обязателен, слишком естественное требование.
Аноним 25/05/20 Пнд 21:54:26 #83 №1702451 
>>1702445
По терминологии. Канал=очередь. Обычно то, что называют в голанке каналом, принято называть очередью.

Я вообще больше по питону, там очереди, нет каналов. По сути одно и то же.
Аноним 25/05/20 Пнд 21:55:52 #84 №1702454 
>>1702447
Данные из каналов берутся парами, а не кто как успеет, логично сохранять порядок.
Достигается это легко.
Так же если глянуть на входные значения - они тоже упорядочены, так себе намек, но достаточный.
Аноним 25/05/20 Пнд 22:04:05 #85 №1702469 
>>1702435
Легко придумать вполне естественные кейсы, где тебе не важен порядок результатов, но тебе важно начать принимать их и обрабатывать как можно раньше, а не ждать пока будет считать первую пару. Так что это должно быть указано в условии
Аноним 25/05/20 Пнд 22:05:08 #86 №1702471 
>>1702451
Обычно очередь, как и стек, не лимитируются. А вот канал очень даже
Аноним 25/05/20 Пнд 22:08:29 #87 №1702476 
>>1702469
В этом случае на выходе должен быть id задачи. Либо какая-то структура с входными значениями.

В принципе ты можешь считать несколько задач одновременно, но порядок выдавать корректный.

То есть, у тебя например первая задача тяжёлая, а остальные лёгкие. Ты считаешь тяжёлую задачу, параллельно лёгкие, складываешь результат в буфер. Как только посчитал первую задачу, выдаёшь её и сразу после результат остальных.

Это, на самом деле, довольно типовая вещь.
Аноним 25/05/20 Пнд 22:14:15 #88 №1702481 
>>1702471
Это скорее из-за того, что надо как-то память выделять, языки вроде го не предусматривают лёгкого пути для безлимитных массивов.

В питоне можно тоже ограниченные очереди делать, правда не сделаешь очередь с нулевым буфером, хотя бы один будет элемент (0 = без ограничений). Пожалуй в этом принципиальная разница, в го по умолчанию очередь без буфера. То есть не совсем очередь, конечно.

Аноним 25/05/20 Пнд 22:15:53 #89 №1702482 
>>1702146
Как минимум чтобы типы в рантайме не ловить
Аноним 25/05/20 Пнд 22:17:15 #90 №1702484 
>>1702476
Абсолютно типовая, как и начать отдавать поток unordered вместо буфферизации
Аноним 25/05/20 Пнд 22:17:40 #91 №1702485 
>>1702481
Slice вполне себе безлимитный
Аноним 26/05/20 Втр 00:06:48 #92 №1702610 
У кого-то получилось решить задачу?
Аноним 26/05/20 Втр 00:36:00 #93 №1702637 
ощем ситуация на озоне такая
ребята из @ozon_go_contest2020 сломали тест систему, смотрите историю про "чит"
инфы от организаторов нет
в описании недостаточно инфы о требованиях к выполнению merge2channels
смотрите примерные тесты здесь https://github.com/Gasoid/last-task-go-contest-2020/blob/master/main_test.go#L11
Аноним 26/05/20 Втр 00:36:33 #94 №1702638 
>>1702610
А что там надо, чтобы добраться до тестового задания и тестовой платформы?

Достаточно просто имя-фамилию-почту-телефон, или надо сразу резюме и т.п.?

Интересно попробовать тесты пройти, но не больше. Отсылать им лишние данные поэтому тоже не хочется.
Аноним 26/05/20 Втр 01:00:51 #95 №1702647 
>>1702638
имя-фамилию-почту-телефон + резюме + гитхаб + 2-3 дня подождать инвайт.
Аноним 26/05/20 Втр 03:15:42 #96 №1702697 
>>1702647
>>1702638
лол весь гоутред про озон, кроме него почти никому не нужен гоу этот походу.
Аноним 26/05/20 Втр 03:19:53 #97 №1702699 
>>1702697
Ща закончится набор, и опять будет по одному посту раз в три дня.
Аноним 26/05/20 Втр 03:41:40 #98 №1702702 
>>1702699
Логично, ведь вакансий в ~30+ раз меньше чем на тот же пайтон.
Аноним 26/05/20 Втр 08:20:32 #99 №1702754 
>>1702702

Но на порядок интереснее и лучше оплачиваемых.
Не хочу я больше ни одной "хайлоад" платформы на Джанго видеть.
Аноним 26/05/20 Втр 11:06:22 #100 №1702814 
>>1702754
>"хайлоад" платформы на Джанго видеть.
fastapi
Аноним 26/05/20 Втр 11:18:16 #101 №1702823 
>>1702814

fastcgi
Аноним 26/05/20 Втр 11:52:41 #102 №1702846 
>>1702823
это не из разряда хайлоад фреймворков!!
Аноним 26/05/20 Втр 14:10:12 #103 №1703008 
Начал смотреть курс по go от мфти
Нихуя не понял, что к чему. Разочаровался, что тупой
Аноним 26/05/20 Втр 14:21:53 #104 №1703041 
>>1703008
shas mnogie takie, it's ok!
Аноним 26/05/20 Втр 14:56:31 #105 №1703096 
>>1703008
Ну вот и все, не видать тебе престижной работы фрилансером за 3,6к секунд/час
Аноним 26/05/20 Втр 15:13:17 #106 №1703136 
>>1703096
Престижная работа хрелансером может быть только у фронтов да фулстек говноделов, гошники это крупные компании и узкая бэковая специализация
Аноним 26/05/20 Втр 17:23:48 #107 №1703363 
Тимлид предлагает делать хайлоад бекенд на ноде, какие подводные?
Аноним 26/05/20 Втр 18:01:19 #108 №1703429 
>>1703363
Это даже не подводные не подводные, все на поверхности - у тебя тимлид дурак.
Аноним 26/05/20 Втр 18:08:50 #109 №1703446 
>>1703363
Земля ему пухом.
Пиши по собственному
Аноним 26/05/20 Втр 18:11:23 #110 №1703450 
>>1703363
Багов будете ловить, но хотя бы не так тормозно как гоу.
Аноним 26/05/20 Втр 18:13:06 #111 №1703452 
>>1703363

Никаких. Хайлоад это про архитектуру, а не язык.
Аноним 26/05/20 Втр 21:09:13 #112 №1703635 
>>1703363
Не худшее решение, если обмажитесь typescript-ом и линтером - может даже нормально получиться
>>1703450
Толсто
Аноним 26/05/20 Втр 21:16:15 #113 №1703645 
>>1703635
>если обмажитесь typescript-ом и линтером
В том и дело, что походу обычно не обмазываются. Вообще нода производит впечатление места, куда фронты приходят тяп ляп рад говно по примерам с доков сделать. У бекендщиков от этого карточного домика агрессия и зубы скрипят. Так то можно вообще на чем угодно сделать хороший бек, кто же спорит, но из увиденных поделок фронтов на ноде - этот шанс не велик. Впрочем я живого бекендщика (именно бекендщика с опытом, а не вчерашнего фронта) пока еще и не видел. Хз почему такое решение у тимлида кроме того, что он ранее чтото радом ебанул на ней и его теплое чувство не покидает, ну и нода по правда довольно шустрая, только это не критично важно для хайлоада само по себе.
Аноним 26/05/20 Втр 21:17:22 #114 №1703646 
>>1703645
>живого бекендщика на ноде
фикс
Аноним 26/05/20 Втр 21:26:29 #115 №1703657 
>>1703645
>шустрая, только это не критично важно для хайлоада
Это не критично только если всё-всё distributed и webscaled. Но в этом случае проблем будет столько что сосание нодежысы померкнет на этом фоне.
Аноним 27/05/20 Срд 03:33:47 #116 №1704002 
для чего нужен вообще го? какие программы в нём пишут?
Аноним 27/05/20 Срд 03:45:07 #117 №1704005 
>>1704002
Микросервисы и оркестрацию. А также все средства малой механизации потребные в хозяйстве, коим несть числа в любом стартапчике.
Современные bash-портянки силами низкоквалифицированного персонала.
Аноним 27/05/20 Срд 05:44:28 #118 №1704022 
>>1703635
>>1703645
Будет TS и линтер. Предлагает потому что у него несколько лет опыта бекенда на ноде и потому что тут много людей с опытом JS/TS, много бывших фронтов. В контору его взяли в прошлом году сениором и сделали тимлидом не так давно. Сам я околомидл и как раз перекатился в го из фронтенда.
Аноним 27/05/20 Срд 06:21:11 #119 №1704027 
>>1704022
Значит правильно предлагает. Что знаете на том и делайте.
Аноним 27/05/20 Срд 08:12:35 #120 №1704045 
Какой редактор кода вы используете? Я пока сижу на саблайме. А вы? Только не надо предлагать жирны идеешки, электронные перделки.
Аноним 27/05/20 Срд 08:22:38 #121 №1704046 
>>1704045

neovim - топчик
Аноним 27/05/20 Срд 08:29:32 #122 №1704048 
>>1704046
а в чём он топчик?
Аноним 27/05/20 Срд 08:45:16 #123 №1704053 
>>1704048

Во всем?
Удобно, современно, плагины на любой вкус.
Аноним 27/05/20 Срд 09:30:23 #124 №1704069 
>>1704053
на любой вкус? да ладно. он же пока в разработке. глючит иногда. да и в сравнении с классическим вимом нехило потребляет память. откуда так много хз. удалил его к чертям. поставил православный классический вим. всё пашет как швейцарские часы. знаешь что такое швейцарские часы? в жизни когда-нибудь видел в реале? я думаю что нет.
Аноним 27/05/20 Срд 09:32:55 #125 №1704070 
>>1704069

Отдельные проблемы бывают, но это мелочи. Память непринципиально, все равно жрет в разы меньше идеи.
Аноним 27/05/20 Срд 10:46:10 #126 №1704110 
>>1701231
Еще не ответили?
Аноним 27/05/20 Срд 10:47:37 #127 №1704112 
>>1704110
Всем привет!
Как обещали, высылаем следующую партию ответов на вопросы.
1. Поступить в школу могут разработчики из любого города и региона. На момент отправки этого сообщения на школу откликнулся 3931 человек. Приоритет при отборе мы отдадим тем, кто прошел успешно все этапы отбора и готов после обучения стать сотрудником Ozon, писать на Go. Программа обучения будет проходить онлайн до момента пока не наладится эпидемиологическая обстановка. Для тех, кто пройдет в школу, но проживает не в Москве, будет организовано обучение онлайн.
2. В школу позовем около 40 человек.
3. Мы ознакомились со всеми замечаниями относительно формулировки задач. Мы считаем тот текст условий, который опубликован в задачах на текущий момент исчерпывающим. С момента начала соревнования мы внесли комментарии про формат вывода по задаче Е, разъяснения о том, как проще решить задачу F. В дополнение к этому, мы внесли поправку в лимит по времени по задаче F – теперь лимит 1,5 секунды вместо 1 секунды.
4. Проанализировав ваши посылки по задаче Е, мы пришли к выводу, что тест по этой задаче составлен слишком обще и широко. В данном случае одного теста недостаточно. Некоторые пограничные ситуации принимаются как корректные. Ошибка в системе, которая выдается в ответ на решение участника не всегда предсказуема. Доработать это в режиме реального времени у нас нет возможности: есть риск потерять уже существующие решения. Это мы будем прорабатывать уже после завершения отбора. Сложности связаны также с тем, что Go новый язык для платформы, Make как компилятор был добавлен по нашей просьбе, чтобы обработать решения задачи на Go.
5. Участниками отбора выгружен в сеть из Я.Контест тест по этой задаче. Написано и активно обсуждается несколько алгоритмов решения задачи в чатах, на форумах и т.п. Мы будем расценивать любое решение с использованием сторонних скриптов как читерское и не готовы его засчитывать. Для справедливости отбора все решения, которые поступят по задаче «Е», будут проходить код-ревью дополнительно к уже существующим этапам отбора. До момента написания чит-скрипта нами было получено 32 корректных решения этой задачи. Отборочные соревнования не предполагали никакого пентеста системы, поэтому просим вас добросовестно отнестись к решению задач отбора. Мы по-прежнему принимаем решения этой задачи на Go.
6. Поступает много писем с просьбой ответить на вопрос "что не так у меня в коде" или дать подсказку, как решить задачу. Мы не можем давать ответы на вопросы такого типа, так как у всех участников должен быть одинаковый доступ к информации об условиях.
7. Просим всех, кто не указал в качестве логина свои фамилию и имя или почту, а также решил три и более задач, прислать свой логин на [email protected]. В противном случае мы не сможем соотнести ваш результат с профилем участника.
До связи!
[email protected]
Аноним 27/05/20 Срд 11:02:56 #128 №1704121 
>>1704112
>32 корректных решения этой задачи
Как эти 32 пидора это сделали, хуле молчат.
Аноним 27/05/20 Срд 14:11:32 #129 №1704267 
20190929095249.jpg
Есть шансы на вкат в Go?
Аноним 27/05/20 Срд 14:44:56 #130 №1704296 
Почему выбираете go вместо православных java, c# итс? Говорят java медленный, он не медленный, он съедает память как сумасшедший, но не медленный.
Аноним 27/05/20 Срд 14:51:55 #131 №1704306 
>>1704121
алгоритмические гении)
на практике же один фиг программисты на память все не помнят, а используют сниппеты/гуглят как это уже было реализовано.
Аноним 27/05/20 Срд 14:56:45 #132 №1704313 
>>1704296
> c#
Но ведь Go не для написания гуёв, а для бекенда.
Аноним 27/05/20 Срд 15:04:53 #133 №1704320 
>>1704296
>Почему
Потому что хайпово, модно, кучеряво, коньпелируется to C-code, резкий как C-code.
Пайтон тоже кстати коньпелируется to C-code, но куда там ему до гоУ с хипстерами и капуччина))
Аноним 27/05/20 Срд 15:05:26 #134 №1704322 
>>1704313
>> c#
>Но ведь Go не для написания гуёв, а для бекенда.
>
C# сейчас так отдрючили в Microsoft что на бэкенде он вообще всех по скорости имеет.
Аноним 27/05/20 Срд 15:10:16 #135 №1704327 
IMG20200527150931.jpg
>>1704322
Картинко отклеилось
Аноним 27/05/20 Срд 15:15:02 #136 №1704331 
IMG20200527151417.jpg
>>1704327
Взялись за производительность прям.
Аноним 27/05/20 Срд 15:20:25 #137 №1704336 
>>1704322
Если написать бекенд на сях, будет ещё быстрее, но это не делает си языком для бекенда.
Аноним 27/05/20 Срд 15:28:00 #138 №1704344 
>>1704336
Нафига, если сабж треда и >>1704320
Такие вещи для того и лепят.

>>для бекенда.
Для высоконагружженных частей разве что, т.к. последующее сопровождение кода затратно.
Аноним 27/05/20 Срд 15:28:03 #139 №1704345 
>>1704327
Соус пикчи?
Аноним 27/05/20 Срд 15:45:42 #140 №1704368 
>>1704344
При прямых руках сишка работает быстрее сабжа, ещё быстрее будет только аппаратная реализация бекенда. Но нужны действительно прямые руки.

Ну а если за скоростью не гонимся, то и питона хватит.
Аноним 27/05/20 Срд 16:20:20 #141 №1704399 
>>1704368
Вот именно. Django в вакууме на VPS за 10$ сделает 40-100 RPS с одного инстанса Gunicorn. Дай бог чтобы у твоих проектов была посещаемость чтобы занять хотя бы 50% этих мощностей.

Если мы говорим о гигантах с RPS измеряемыми в тысячах, они используют asyncio+asyncpg, технологии уже как пару лет production-ready.

Так что тезисный ответ - скорость деливеринга фич на Python выше чем у конкурентов в этой нише, технология может успешно держать нагрузку в миллионы пользователей (смотрим опыт дропбокс, варгейминг и итс), остальное для бизнеса не важно. Не понимаю этих макак которые гонятся за хайпом, они небось, нормально программировать на прежнем своем языке так и не научились. Поддались на провокации "го круче", "го быстрее". Ну-ну...
Аноним 27/05/20 Срд 16:26:46 #142 №1704414 
>>1704368
>04368140
>>>1704344
>При прямых руках сишка работает быстрее сабжа,
Дорого.

>Ну а если за скоростью не гонимся, то
То получится шустринько и недорого, сабж треда и >>1704320
Аноним 27/05/20 Срд 16:27:19 #143 №1704415 
>>1704045
goland
Аноним 27/05/20 Срд 16:40:35 #144 №1704426 
>>1704399
>гонятся за хайпом
И кто-то же накручивает этот хайп, и окешивается неплохо.

>Django в вакууме на VPS за 10$ сделает 40-100 RPS с одного инстанса Gunicorn.
Коньпильнуть to C-code еще шустрее будет! Про всякие хайпы сразу забудешь.

>Дай бог чтобы у твоих проектов была посещаемость чтобы занять хотя бы 50% этих мощностей.
Ну так в основном лепят продукты на джанге/ларавелях/ноджс и не парятся, потом задумываются о оптимизации расходов на вычислительные мощности.


Аноним 27/05/20 Срд 16:57:38 #145 №1704448 
2020-05-27 16-53-18.mp4
>>1702129
Я сделал, переписывайте быстрее, пока в Озоне места еще есть.
Аноним 27/05/20 Срд 17:10:10 #146 №1704468 
>>1704448
Там всего 40 мест, а приняли участие 4000 вкатунов.
Аноним 27/05/20 Срд 17:12:07 #147 №1704469 
>>1704448
Это суммирование двух массивов?
мимокрок
Аноним 27/05/20 Срд 17:24:52 #148 №1704475 
>>1704469
Это динамическая обработка динамически поступающих данных.
Есть два источника (chan1 и chan2) в которых асинхронно появляются данные. Есть общая функция (CommonFunc) которая эти данные асинхронно обрабатывает.
Есть код, который должен получить n-е количество раз данные из двух источников, обработать их общей функцией ,сложить результат и поместить его в общий канал (в данном случае роль общего канала выполняется ConcurrentQueue ).
В результате в основном коде тебе не нужно ожидать последовательного выполнения обработки поступающих данных, ты можешь делать всё что тебе угодно, обрабатывая данные по мере их поступления в общий канал.
Для сравнения, если переписать всё на синхронный код, то время выполнения увеличится в несколько раз, потому что сначала у тебя будут ожидаться данные из первого источника, потом обрабатываться эти данные, потом ожидаться данные из второго источника, потом обрабатываться, и только после этого результат суммируется и добавляется в общий канал. И так несколько раз, в зависимости от первого аргумента.
Аноним 27/05/20 Срд 19:21:17 #149 №1704618 
>>1704475
>Для сравнения, если переписать всё на синхронный код, то время выполнения увеличится в несколько раз, потому что сначала у тебя будут ожидаться данные из первого источника, потом обрабатываться эти данные, потом ожидаться данные из второго источника, потом обрабатываться, и только после этого результат суммируется и добавляется в общий канал. И так несколько раз, в зависимости от первого аргумента.
Прямо как в ноде, или асинх пайтоне, только модно!

>>1704468
Такое на любителя конечно. Но если подобного плана вакансия интересует, то предвосхищаться не стоит или на что-то рассчитывать, отбор большой, как получится так получится. Проще всего нихуа не делать.

Аноним 27/05/20 Срд 20:38:58 #150 №1704712 
>>1704618
>Прямо как в ноде, или асинх пайтоне, только модно!
В твоих нодах и асинх петухоне всё хуячится одним потоком. В шарпе всё делается полноценными потоками, если того требует среда.
Аноним 27/05/20 Срд 21:01:54 #151 №1704733 
>>1704399
>Поддались на провокации "го круче", "го быстрее"
Поддались на "го типизированный".
Аноним 27/05/20 Срд 21:03:02 #152 №1704737 
>>1704415
Как его ломать?
Аноним 27/05/20 Срд 21:49:42 #153 №1704772 
Труп страуса пилил надстройку над сями, пришел к выводу, что нужны эксепшены. Надкусаное яблоко, или у кого они там купили, пилили надстройку над сями, пришли к выводу, что нужны эксепшены. Я нагуглил еще несколько малоизвестных трансляторов в си и там, где есть, эксепшены подаются как достоинство.

>>1704045
>Какой редактор кода вы используете?
Geany, там вроде даже дебаг сей раньше был. Codelite для сей, а для Golang же вроде вообще что-то свое было реккомендед типа, не помню как называлось, ставил 5 лет назад, оно после установки начинает пэкиджи обшаривать.
Аноним 27/05/20 Срд 22:18:57 #154 №1704829 
>>1704737
Китайским кряком
Аноним 27/05/20 Срд 23:45:44 #155 №1704928 
>>1704733
Го настолько типизированный, что interface{} - это норма, nil может неожиданно прилететь в ебало, а при возвращении пары ошибка-значение на два невалидных состояния этой пары забивается хуй. Ведь тип Result это слишком сложно для современного языка.
Аноним 27/05/20 Срд 23:50:34 #156 №1704931 
>>1704928
> Result
Ты откуда? Из свифта?
Аноним 28/05/20 Чтв 00:57:47 #157 №1704974 
>>1704931
Да.
sageАноним 28/05/20 Чтв 01:32:59 #158 №1705000 
1516167824862.jpg
>>1704336
nginx медленнее. На сях.

>>1704772
Exceptions это единственный zero-cost способ обработки ошибок. А всё о чем C++ это о zero-cost abstractions.
Аноним 28/05/20 Чтв 02:12:57 #159 №1705012 
>>1705000
Зачем писать руками, если zero-cost-способ есть?
Аноним 28/05/20 Чтв 03:41:49 #160 №1705028 
>>1705012
>Зачем писать руками, если zero-cost-способ есть?
Pike так сказал.
Аноним 28/05/20 Чтв 03:53:11 #161 №1705030 
>>1704712
>В твоих нодах всё хуячится одним потоком
>2020
Лол
Аноним 28/05/20 Чтв 04:55:05 #162 №1705049 
>>1705030
Двумя теперь?
Аноним 28/05/20 Чтв 10:02:38 #163 №1705140 
>>1705049
nlog(n)
Аноним 28/05/20 Чтв 11:20:59 #164 №1705223 
>>1705000
>nginx
Справедливости ради - это не бекенд. Это фронтенд-сервер. У него задача другая совершенно
Аноним 28/05/20 Чтв 13:49:51 #165 №1705567 
>>1704928
И та дикая ситуация, которую ты описал, все еще лучше, чем в питоне.

А в 2020 году, когда у нас есть быстрое железо, мы можем вместо ассемблерного вызова функции делать запрос по сети. И теперь кусок приложения можно написать на го, а кусок - на питоне, даже на котлине можно сделать компонент. Представляешь, как удобно?
Аноним 28/05/20 Чтв 14:14:10 #166 №1705591 
image.png
>>1705000
>Exceptions это единственный zero-cost способ обработки ошибок.
Exceptions это очень дорого, даже если оно и не будет выброшено код по его обработке останется, на стеке создаются структуры для перехвата и прочее.
Аноним 28/05/20 Чтв 15:36:23 #167 №1705684 
>>1705030
Что ты лолкаешь, дурачок? Смешно от того, что насрал себе в штаны и воняешь?
Аноним 28/05/20 Чтв 20:19:43 #168 №1706063 
>>1704112
Так они починили тесты в задаче Е или нет?
Если будет 40 человек из почти 4к заявок, то можно хуй забить, выходит. Вероятность попасть невысока, тем более с такими простыми заданиями.
Аноним 28/05/20 Чтв 20:36:32 #169 №1706080 
>>1706063
4к дели на 2-3, т.к. я даже две отправил, т.к. думал что система багнула и меня пропустили. Ну и больше половины забила хуй, т.к. менять свой стек на непонятный го мало кто хочет
Аноним 28/05/20 Чтв 20:39:40 #170 №1706084 
>>1706080
Скорее больше половины поняли, какого качества будет курс от озона
Аноним 28/05/20 Чтв 20:41:06 #171 №1706085 
>>1706084
Ну на курсы только дебики ходят, мне работа нужна
Аноним 28/05/20 Чтв 21:36:03 #172 №1706141 
>>1700220 (OP)
Народ, кто офисоблядок и пишет микросервисы на Go. Можете кратко расписать что сейчас в сфере используется, как поднимаете все, чем оркестрируется зоопарк, какие пакеты часто используемые и в целом что желательно знать помимо самого языка?

Я сам разработчик и решил сменить направление деятельности и перейти на Go. Хочется что-то вроде структурированного roadmap, чтобы примерно понимать в какую сторону пердолить. Благодарю.
Аноним 28/05/20 Чтв 21:38:47 #173 №1706144 
>>1706141
https://github.com/Alikhll/golang-developer-roadmap
Аноним 28/05/20 Чтв 21:42:18 #174 №1706147 
>>1706144
Отлично, как раз что хотел. Добра, анон :3
Аноним 28/05/20 Чтв 21:46:55 #175 №1706152 
>>1706144
Хотя таки от офисобыдла комменты тоже будет здорово услышать
Аноним 28/05/20 Чтв 22:35:47 #176 №1706178 
>>1706084
Да, кстати, я тоже теперь думаю, что если они курс вести будут также, как составлены описания задач и вообще всё подготовлено, то на хуй.
Аноним 29/05/20 Птн 05:48:06 #177 №1706410 
>>1706152
RethinkDB, etcd, docker, grpc - это то что надо знать лично мне помимо собственно языка.
Если я буду перечислять вообще все технологии, которые у нас используются, это будет он всем и ни о чем
Аноним 29/05/20 Птн 09:11:57 #178 №1706443 
>>1706410

Какие киллер фичи у rethink?
Аноним 29/05/20 Птн 10:31:51 #179 №1706522 
>>1706443
Главная киллер фича, что стартап который её пилил (бСССР ребята, кстати) обанкротился и теперь она на поддержке сообщества = заброшена. Но идея охуенная была, не выдержали конкуренцию с MongoDB, как сам основатель в постмортеме написал.
Аноним 29/05/20 Птн 11:57:44 #180 №1706596 
>>1706522
да рил хорошая была тема жалко что все проебалось
Аноним 29/05/20 Птн 18:37:25 #181 №1707132 
Поясните, какие ORM используются на Go. Я глянул в сторону GORM - так эта какая-то залупа кривоебая, а не ORM, куски запроса приходится писать руками, считай что Django ORM, только еще хуже.
Аноним 29/05/20 Птн 18:50:07 #182 №1707143 
>>1707132
Никаких, ОРМ для слабаков, мы пишем весь запрос руками
Аноним 29/05/20 Птн 20:11:14 #183 №1707236 
>>1707143
прямо как на пхп без фреймворков!!

>>1707132
слепил апи на фреймворке пайтона c нормальным маппером, коньпильнул to C-code, работает резко как C-code, только трудозатрат меньше х10 и без модных кучерявых хайпов.
Аноним 29/05/20 Птн 20:48:53 #184 №1707302 
>>1707132
Тут смотрел?
https://github.com/avelino/awesome-go#orm
Аноним 30/05/20 Суб 01:08:57 #185 №1707595 
Куда С++ тред дели, лишенцы???
Аноним 30/05/20 Суб 01:16:01 #186 №1707601 
Зачем нужен Go или C++, если есть JS.
Аноним 30/05/20 Суб 08:56:41 #187 №1707730 
>>1707595
https://2ch.hk/pr/res/1693081.html
Аноним 30/05/20 Суб 09:27:04 #188 №1707737 
>>1707132

Я xorm использую, но только для простых запросов. Без орм заебешься вручную запросы клеить для апишек.
Аноним 30/05/20 Суб 11:07:10 #189 №1707807 
>>1706522
Она не заброшена, новая версия вышла вот пару месяцев назад
Аноним 30/05/20 Суб 14:44:37 #190 №1707962 
>>1707601
>Зачем нужен Go или C++, если есть JS.
Фронтендель, плз
Аноним 30/05/20 Суб 15:47:07 #191 №1708037 
>>1707737
А в чем плюсы использования ОРМ?
Из минусов, я вижу следующие:
1) Сложные запросы проще написать руками, чем через ОРМ
2) Ты не знаешь явно, какой запрос отправился в базу
3) Иногда гораздо проще оттестировать запрос напрямую в базе, а потом его перенести в код, чем изначально пытаться его в код писать
Аноним 30/05/20 Суб 16:06:25 #192 №1708062 
>>1708037
То что отправилось в БД можно и посмотреть.
Если не используешь ОРМ, то бизнес логика размазывается между твоим языком и sql. Более того, ОРМ страхуют тебя от sql инъекций. SQL еще кстати достаточно плохо комбинируется. SQL позволяют А теперь представь, что у тебя большой объект со множеством ссылочных полей, селект получился сложный, со множеством джоинов и тебе нужно его упаковать в объект. Руками заебешься это делать.
Аноним 30/05/20 Суб 16:18:31 #193 №1708086 
Господа хорошие, нужно сделать такую штуку, что то типо pastebin но с автоматическим определением языка. То есть - запостил код (именно код, штука должна уметь отедлять код от текста) и он сам определил тебе что за язык, ну и самое собо уметь держать нагрузку. Чтобы два пользователя одновременно постящих что то не сломали нахуй сервер. Что рекомендуете?
анон 30/05/20 Суб 17:29:23 #194 №1708169 
Сап, нужно решить задачу на степике на go за бабки
https://stepik.org/lesson/345547/step/15?unit=329291
пишите в тг @Unholydk , о цене договоримся
Аноним 30/05/20 Суб 19:32:25 #195 №1708349 
>>1707730
Not found бля. Охуеть
Аноним 30/05/20 Суб 19:59:03 #196 №1708407 
>>1708062
>Если не используешь ОРМ, то бизнес логика размазывается между твоим языком и sql.
Очень плохо спроектированная бизнес-логика, не делай такую. >Более того, ОРМ страхуют тебя от sql инъекций.
Стандартный sql драйвер позволяет передавать аргументы через плейсхолдеры и этого достаточно. Если очень хочется, в ногу стрельнешь и через орм.
>SQL еще кстати достаточно плохо комбинируется. SQL позволяют
Вообще ничего не понял.
Аноним 30/05/20 Суб 20:58:38 #197 №1708530 
>>1708407
ORM только для этого не нужна. Ручками пишешь интерфейсы и реализации репозиториев, внутри собираешь запросы через pgx и sq. Всё, у тебя есть логика хранения данных, инкапсулированная от бизнес-логики (которая вызывает функции вида FindByID, UpdateByID, DeleteByXAndY) и при этом логика хранения кристально чиста, в отличие от этих ваших orm'ок, в которых для того, чтобы построить эффективный запрос иногда приходится бороться с самой orm'кой и всё это ради преимуществ, что не нужно писать руками save/load функции (а они пишутся за 15 минут).
Аноним 30/05/20 Суб 21:00:14 #198 №1708532 
Кстати! Отличный аргумент в тему дженериков углядел где-то в комментариях:
> Отлично! Покажете, как на классах (без дженериков) сделать параметрический полиморфизм? После этого можно будет посмотреть на то, как на классах сделать тип, например, вектора, где длина вектора была бы видна в типе, попытка zip'ования двух векторов разной длины привела бы к ошибке компиляции, но при этом можно было бы создать вектор произвольной длины, пришедшей, например, по сети или считанной из файла во время выполнения программы.
Аноним 30/05/20 Суб 21:01:46 #199 №1708534 
>>1708169
мне кажется или неосилившая обезьяна пытается сделать тестовое в школу озоновскую ?
Аноним 31/05/20 Вск 00:18:24 #200 №1708743 
>>1708169
Еще надеешься пройти отбор в озон?
Занимай очередь, 4001-ым будешь
Аноним 31/05/20 Вск 00:33:22 #201 №1708769 
>>1708532
> тип, например, вектора, где длина вектора была бы видна в типе
Я понимаю, что это эталонное нинужно, но кто-нибудь может объяснить, нахуя такой тип нужен?
Аноним 31/05/20 Вск 01:00:17 #202 №1708790 
>>1708769
Гибкие контракты для типов, если инициализация переменной прошла успешно, то все использующие ее функции могут не проверять ее значение на валидность.
Аноним 31/05/20 Вск 14:49:56 #203 №1709021 
бля, щас бы из жабы 14 в жабу 1995 года перекатываться и кастить сырые типы ручками в 2к21 году
Аноним 31/05/20 Вск 15:52:16 #204 №1709098 
>>1708769
Это, конечно, достаточно абстрактный пример, но он отлично иллюстрирует то, что называется системой типов и что с помощью этого можно делать.
Смотри, во-первых, векторы или там координаты - это вполне прикладные штуки, например, будешь работать с геокодингом (для бизнесовых нужд) - столкнешься, как миленький.
Во-вторых, система типов позволяет тебе фиксировать требования к модели на уровне описания типов и их поведения. Неправильно написанный код у тебя просто не скомпилируется. Это напрямую ведет к повышению надежности твоего кода, поскольку защищает от целого ряда ошибок (не всех, к сожалению, но что поделать).

Разница примерно такая, как между слабой и сильной типизацией. Ты же (надеюсь) не будешь спорить с тем, что код на го надежнее, чем код на каком-нибудь pure javascript? А почему так? А потому, что дополнительное описание ограничений на уровне объявления типов или поведения не даёт тебе случайно передать name вместо age и не заметить этого локально, потому что name у тебя пустая строка и она молча закастилась в 0.

Опять же, простой пример, enum'ы, которых в го, к сожалению, нет. Представь, что у тебя есть какой-нибудь userType и он может быть admin либо general. И в каком-то месте ты, конечно, будешь проверять переменную на возможный тип, конечно, сделав это через switch.
Получится у тебя как-то так:
https://play.golang.org/p/KSAcycYo7xi
А потом у тебя появляется userTypeModerator и тебе придется вручную осматривать весь код на предмет того, как он работает с этим типом и везде ли ты всё учёл! И если ты пропустишь функцию Foo, то ты узнаешь о том, что пропустил её в лучшем случае на тестах, в худшем - на проде.
Напоминает темные времена php, когда переименовав поле у класса ты не мог быть уверен, что оно переименовалось везде и приходилось просто грепом искать по имени поля по всему коду и хорошо, если имя было уникальным, а не какой-нибудь name.
А в случае с enum'ом, то добавив новое значение в enum ты не сможешь скомпилировать код, пока не добавишь во все места switch'а по типу обработку этого нового значения.
Аноним 31/05/20 Вск 17:42:40 #205 №1709238 
>>1709098
Как енум блять тебе поможет такие проверки обойти, долбаеб?
Аноним 31/05/20 Вск 17:45:50 #206 №1709241 
>>1709238
Не енум, а компилятор.
Аноним 31/05/20 Вск 18:17:21 #207 №1709280 
>>1709241
Что компилятор? Если ты забудешь про дополнительное значение твоего енума - компилятору похуй будет. Не использовал - не значит ошибка.
Аноним 31/05/20 Вск 18:22:01 #208 №1709285 
>>1709280
>компилятору похуй будет
Ты скозал? Вполне можно по этому поводу выдать хотя бы ворнинг.
Аноним 31/05/20 Вск 18:31:41 #209 №1709289 
>>1709280
Если у тебя switch с возвратом значений- то тут как раз компилятор прекрасно выдает ошибку.
понятно что в го такого нет и не будет
Аноним 31/05/20 Вск 18:33:47 #210 №1709292 
>>1709289
В каком языке на неполный свитч енума выдает ошибку, лол? джаве похуй, шарпу похуй. Или ты про плюсы?
Аноним 31/05/20 Вск 18:52:28 #211 №1709311 
image.png
>>1709292
>джаве похуй, шарпу похуй
>я люблю пиздеть про вещи, которые не знаю.
Аноним 31/05/20 Вск 19:15:11 #212 №1709328 
>>1709311
> switch без брейка
> двач, почему я обосpался?
Аноним 31/05/20 Вск 19:22:58 #213 №1709336 
image.png
>>1709328
Мудило, ты опять пиздишь о вещах которые не знаешь?
Аноним 31/05/20 Вск 19:35:02 #214 №1709351 
>>1709336
Да ну, ты троллишь. Я не верю, что джавист настолько тупым может быть. Под вами же сраные тырпрайзы держатся, а ты такую дичь пишешь.
Аноним 31/05/20 Вск 19:45:06 #215 №1709365 
>>1709292
В котлине, к примеру.
```
when (enum) {
FIRST_VALUE -> {}
}
```
Аноним 31/05/20 Вск 19:50:03 #216 №1709369 
>>1709292
>>1709365
> джаве похуй, шарпу похуй
Они к этому придут, со временем. Я сейчас посмотрел, в расте тоже не компилируется. Все языки, в которых пытаются сделать богатую систему типов, короче.
Аноним 31/05/20 Вск 19:57:12 #217 №1709376 
>>1709351
Вот ты дебил. Возьми последнюю версию и провери сам.
Аноним 31/05/20 Вск 20:01:29 #218 №1709379 
>>1709376
> последнюю версию
сколько там производств последнюю версию юзают? 0.5 процента?
Аноним 31/05/20 Вск 20:23:33 #219 №1709398 
>>1709379
>сколько там производств последнюю версию юзают? 0.5 процента?
А вот и оправдания подъехали.
Кому нужны новые плюшки - используют, кому не нужны могуть хоть на 1.5 сидеть.
Аноним 31/05/20 Вск 20:33:41 #220 №1709412 
> срач про енумы
В очередной раз кто-то обнаружил, что в го нет того, что есть во всех нормальных языках?
Аноним 31/05/20 Вск 21:07:21 #221 №1709436 
>>1709412
Да :( Надеемся и ждём го2.
Аноним 31/05/20 Вск 21:48:00 #222 №1709475 
>>1709436
>ждём
Лучше бы придумали как красиво оформиьть надгробный камень для,кладбища гугл проектов на которые гугл забил хуй
Аноним 31/05/20 Вск 21:49:23 #223 №1709477 
>>1709475
Уже есть: https://killedbygoogle.com/
Аноним 31/05/20 Вск 21:54:27 #224 №1709479 
>>1709475
А что, гугл в го миллиарды вливает что ли? Откажется гугл, сделают некоммерческую организацию, которая будет поддерживать, может даже стандартизируют.
Аноним 31/05/20 Вск 22:20:30 #225 №1709501 
>>1709479
ага и будет ебаная легаси параша уровня жакарты.
Аноним 01/06/20 Пнд 15:16:21 #226 №1709998 
Поясните, как продумать архитектуру приложения? Вкратце, для той-проекта не нужно читать талмуды про архитектуре. Если что, приложение - блог с подсветкой кода. В данный момент это портянка main.go и веб-интерфейс к ней http.go.
Аноним 01/06/20 Пнд 18:38:37 #227 №1710319 
>>1704327
Это хуйня синтетическая, где сверхразумы зачастую просто отдают один и тот буфер с текстом. Т.е. от реальных задач это далеко прости пиздец, и на реальных задачах сишарп выебут. Вот как будет полноценный аналог того же nginx или haproxy со всей функциональностью - тогда и поговорим, а пока нахуй катись со своей CLR-залупой.
Аноним 01/06/20 Пнд 18:38:40 #228 №1710320 
>>1709998
>блог
>go
Ты где-то свернул не туда
Аноним 01/06/20 Пнд 18:42:21 #229 №1710323 
>>1710320
Потому что не хотят признавать, что го - DSL для микросервисов, а не язык общего назначения.
Аноним 01/06/20 Пнд 19:58:38 #230 №1710371 
>>1710320
Ну статическая генерация всего и вся, прикольно же. Не писать жеж для себя какую-то ебанину на микросервисах.
Аноним 01/06/20 Пнд 20:20:28 #231 №1710383 
>>1709998
А что тут думать?
Три слоя:
Хэндлеры - тут ендпоинты и валидация
Контроллер - тут бизнес-логика
Репозиторий - тут работа с базой
Аноним 01/06/20 Пнд 21:25:26 #232 №1710436 
>>1710371
А нахера?
С задачей блогинга справиться тот же пых
Аноним 01/06/20 Пнд 21:30:17 #233 №1710438 
>>1710436
>2020
>писать на пыхе добровольно

>>1710383
ну примерно так я и назначил, плюс еще init.go.
Аноним 01/06/20 Пнд 21:38:52 #234 №1710450 
>>1710438
>2020
>писать на пыхе добровольно

Зачем ты меня расстроил?
Чего ты добился?
Котенок.жпег
Аноним 01/06/20 Пнд 21:43:10 #235 №1710453 
>>1709998
Ебани jamstack, сейчас так модно.
Аноним 01/06/20 Пнд 21:53:11 #236 №1710469 
Для блога на го, предлагаю статический сайт на hugo Там, где нужна динамика использовать серверлес.
Аноним 01/06/20 Пнд 23:35:26 #237 №1710544 
>>1709098
>Напоминает темные времена php, когда переименовав поле у класса ты не мог быть уверен, что оно переименовалось везде и приходилось просто грепом искать по имени поля по всему коду и хорошо, если имя было уникальным, а не какой-нибудь name.
Ты там из блокнота кодишь?
Аноним 01/06/20 Пнд 23:49:03 #238 №1710553 
>>1709292
https://www.typescriptlang.org/play/#code/KYOwrgtgBASg9gG2FA3gWAFBW1AggEQFkBJAOQBpMcpCB5fAURlwBVaZKscB6bqAVQDKTTgF9MmAMZwQAZwAuUAJazcAEwhKQUALxQAFACdEwAFywTASl0A+VFWyyA7kvmSAFgeNJr6LtWxJAENZZHgkADoCElJTBwCAw2B5MENteUMwYHiA4NCLSLpGZjYYOP8EnCSUtKgAMyCEUIkK6jVgBrAEeXLK6mk5RQB9cxBgADdgQ10ob2zWyvl3YycoMdWGQ2NDfQADYhBxxqU1WZNzABIUcOAAbSGAXVFdyxzxDFEgA
Аноним 02/06/20 Втр 00:52:46 #239 №1710593 
>>1710544
Из блокнота, ха.
У меня IDEA несколько раз цепляла лишнее при переименовании, потому что какой-то идентификатор глубоко в xml-файлах показался её похожим, и из-за этого приходится перепроверять каждую "исправленную" строчку. Надёжнее переименовывать руками. И это ещё в статически типизированной джаве, что там в пхп было бы, страшно представить.

мимо
Аноним 02/06/20 Втр 16:23:03 #240 №1710950 
>>1710544

Блять, у тебя есть функция на php:
```
function foo($a) {
return $a->name
}
```

И у тебя есть класс User с полем name. Я хочу name переименовать в first_name. Рассказывай, как IDE здесь мне поможет.
Предвидя вскукареки на тему типизации - оно не всегда работает, потому что ебаное легаси и ебаные фреймворки из нулевых.

В том же го так нельзя сделать by design, даже пустой интерфейс тебе придётся закастить к типу, чтобы достать из него поле (есть варианты через рефлексию, но это уже конкретный говнокод и так к счастью никто не делает).
Аноним 03/06/20 Срд 22:41:23 #241 №1712417 
Поясните какие пакеты надо скачать и куда нажать, чтобы реализовать такое:
Есть значит структура Tachki с разнородными полями и даже с другими структурами в полях, возможно рядом с полями стоят их названия в соответствующих таблицах. Нужно, чтобы командой LoadmyShit(Tachki) структура загружалась в БД, а командой DownloadMyShit(&Tachki) заполнялась из БД.
Аноним 03/06/20 Срд 23:02:00 #242 №1712433 
>>1712417
Например, sqlite: https://github.com/mattn/go-sqlite3
Ну а в своих функция делаешь запросы, считываешь записи и заполняешь структуры.
Аноним 03/06/20 Срд 23:59:29 #243 №1712466 
>>1712433
драйвер у меня есть.

>Ну а в своих функция делаешь запросы, считываешь записи и заполняешь структуры.
Ручками писать парсер для 20 структур? это go-way?
Аноним 04/06/20 Чтв 00:04:43 #244 №1712471 
>>1712466
> это go-way?
Да. ORM есть, но их использование тут считается чем-то плохим.
Аноним 04/06/20 Чтв 02:18:45 #245 №1712544 
СУКА! 30 минут моей жизни из-за поля структуры с маленькой буквы.
Аноним 04/06/20 Чтв 02:25:42 #246 №1712546 
Есть гайды по го модулям? Ожидал примерно как в питоне, что фал с зависимостями, пополняется и обновляется. А на деле какую-то хуету вычитал, как создать модуль из своего проетка. Хочется быстро и легко управлять зависимостями. Спасибо.
Аноним 04/06/20 Чтв 03:20:38 #247 №1712560 
>>1712466
Говей это генерировать такие парсеры. Но как, я не знаю
Аноним 04/06/20 Чтв 11:11:00 #248 №1712684 
>>1712546
https://blog.golang.org/using-go-modules
Аноним 04/06/20 Чтв 15:54:03 #249 №1713019 
Является ли говеем писать (вместо наследования):
func (m Granny) Dosomething {}
func (m
Dad) Dosomething {
m.Granny.Dosomething()
}
func (s *Son) Dosomething {
m.Dad.Dosomething()
}
Аноним 04/06/20 Чтв 16:27:05 #250 №1713056 
>>1713019
Зависит от ситуации, твой пример какой-то кривой
Аноним 04/06/20 Чтв 17:01:45 #251 №1713106 
>>1713019

Пример кривой, вынеси общую функциональность в родительский класс. В какой-нибудь DoSomethinger.
Аноним 04/06/20 Чтв 17:03:39 #252 №1713112 
>>1713019
Вместо наследования тут встраивание (embedding):
https://medium.com/german-gorelkin/embedding-in-go-6739e46c1be1
Ну а раз такая фича есть, значит, говновей.
Аноним 04/06/20 Чтв 21:17:25 #253 №1713351 
>>1713112
это что-то новенькое
>Встраивания указателя
>Встраивание интерфейса

ууу, ща нагорожу private и public при помощи этих костылей.
Аноним 04/06/20 Чтв 21:39:07 #254 №1713370 
>>1713351
Почитай какой-нибудь учебник сначала, а то тоже потом будешь здесь котлином срать.
Аноним 04/06/20 Чтв 22:23:13 #255 №1713426 
>>1713370
А есть хороший? А то уже говна наворотили по 500 страниц, из разряда тех, что на полку ставишь и забываешь навсегда о нем.
Аноним 05/06/20 Птн 08:50:11 #256 №1713701 
>>1713426
Оп-пост почитай, болезный.
Аноним 05/06/20 Птн 20:20:17 #257 №1714365 
> Пока в го клубе идет обсуждение наносервисов, пятиминутка злости про С++
> Пошел вот сознательно в одну компанию, поближе познакомиться с С++ так сказать
> Помимо специфичексих вещей проекта (ну, энтерпрайз писать на плюсах это так себе сама идея) есть и несколько общих выводов
> В целом получил что хотел. А хотел собственно спуститься еще чуть ниже по стеку (начал с джавы -> go) и на шкуре почувствовать что в свое время достало авторов го в этом самом ++ И да, этого сполна...
> Потрясающая неэффективность разработки. Это про то что плюсы хороши и плохи одинаковы для проектов любой сложности ну это утрированно. Но их как языка в общем не существует есть плюсы стандарта Х/Y и даже уже, компании А/Б, со всем своим - стектрейсером, шедулллером, базовыми типами и тд. Знать с++ абстрактно хорошо непонятно можно ли вообще. Время компиляции, дааааа.....
> UB это злосчастное. Имхо это такая отмазка сказать "не знаю". (кто не в курсе - undefined behavior). шаг вправо-влево - "UB" иди кури бамбук. Ну да формально выход программы без джойна всех тредов это UB. Но в среде c++ это такая волшебная мантра которая обозначает окончание беседы и задумчивое смотрение вдаль. А откуда тут UB когда компьютер детерминисткая железка вообще? В го (бинг) нет UB, в java нет. Если копнуть рантайм того же го - ьам вызов сисколла в главном треде закрывающий все треды процесса и даже некоторый цикл, чтобы процессор стек не распахал, и вуаля - и нет UB, надо подумать просто, и сделать. Так и в плюсах можно, но у плюсовиков кажется рефлекс - UB - и дальше не думаем. Очень расстраивает(
> Импенетрабельная (извините) стандартная библиотека с этими шаблонами и принципиальным кажется отсутствием документации в коде; язык с++ не только сложный но и не способствующий изучени. Так копошишься на своем уровне без особых шансов понять как оно внутри там устроено. + Деление backend/frontend (llvm) добавляет - очень на джаву похоже
> После этого посмотришь опяь на го - все чистенько аккуратненько, внутри сделано чаще всего good enough в 99% (и в такой же степени лучше чем сам бы пытался сделать с нуля) и просто работает. Кому не хватает сложности в го, вместо того чтобы тянуть рантайм DI и прочую магию энтерпрайза - займитесь плюсами немного, там этого хватает. И возвращайтесь в го, писать чистый понятный код
Аноним 05/06/20 Птн 20:21:19 #258 №1714367 
>>1714365
я не программировал на плюсах профессионально, но много лет назад когда интересовался, мне показалось, что С++ - это язык для написания языка программирования, а не программ. Потому, что и язык, и подход к разработке сильно меняется в зависимости от подключения Qt или Boost. Ну ладно, язык не меняется, но эти библиотеки вводят столько абстракций, что уже кажется, что это другой язык.
Плюс выбор компиляторов: гцц, борланд, майкрософт, кто-то еще. Думаю, что если выучил весь С++ - ты бог. Потому, что допускаю, что в разных компиляторах и может быть разная реализация стандарта и свои баги и особенности напополам с UB.
Аноним 05/06/20 Птн 20:34:48 #259 №1714382 
>>1714367
Да вот недавно на хабре изливали боль:
https://habr.com/ru/post/497114/
Еще интересно: плюсовики индифферентно относятся к го, но при упоминании раста бросются говном, как джависты-котлинеры в этом треде.
Аноним 05/06/20 Птн 20:53:52 #260 №1714408 
>>1714365
> вуаля - и нет UB, надо подумать просто, и сделать
Если так рассуждать дальше, в плюсах вообще нет UB. Сначала думаешь, что хорошая идея - дать мусорное значение неинициализированной переменной в качестве seed рандомайзера, ведь оно непредсказуемое. Или что можно полагаться на поведение, когда после максимального значения инта идёт минимальное.
Ну а потом у тебя выполняется и if, и else одновременно. Или printf ничего не выводит.
Не представляю, как на плюсах пишут большие проекты. В плюсах и джуны, наверное, как сеньоры в остальных языках.
Аноним 06/06/20 Суб 19:14:02 #261 №1715081 
>>1714408
> Сначала думаешь, что хорошая идея - дать мусорное значение неинициализированной переменной в качестве seed рандомайзера, ведь оно непредсказуемое.
Ни один нормальный разработчик так делать не будет, как раз потому, что никто не может гарантировать случайность. Непредсказуемое тобой, не значит случайное, нужно случайное значение - бери seed по правильному адекватному пути, от времени и прочих вещей.
> Или что можно полагаться на поведение, когда после максимального значения инта идёт минимальное.
Да же фигня, ну кто так будет делать? Переполнение переменной - зло и полагаться на то, что какая-то магия там что-то сделает есть идиотизм. Явное всегда лучше неявного, если хочешь циклический счётчик - сделай блять условие нормально.

Извините, накипело. Сначала пишут эталонный говнокод на чистой магии, он становится неподдерживаемым, а потом такие "мы сеньоры, пойдём понтоваться на конфах"
Аноним 06/06/20 Суб 19:43:04 #262 №1715117 
>>1715081
> Сначала пишут эталонный говнокод на чистой магии, он становится неподдерживаемым, а потом такие "мы сеньоры, пойдём понтоваться на конфах"
А потом еще и языки с кучей ad-hoc костылей пишут и получают славу пророка "простоты" среди впечатлительных юнцов!
Аноним 06/06/20 Суб 20:37:21 #263 №1715160 
>>1715081
> Ни один нормальный разработчик так делать не будет
Нормальный разработчик не будет пытаться строить рассуждения на основе поведения UB, показавшегося ему рабочим, никогда и ни при каких условиях Он скажет: "здесь UB, и точка. Нужно переделывать". Даже если это сначала кажется безобидным.
Аноним 06/06/20 Суб 20:41:22 #264 №1715163 
>>1715081
> Явное всегда лучше неявного
Это в языке с десятью конструкторами по умолчанию и со слабой типизацией-то?
Аноним 06/06/20 Суб 21:17:36 #265 №1715188 
>>1715163
Это вообще и всегда, бесприменительно к языку. "Магия = плохо", эту истину нужно высечь на жопе у каждого джуниора, чем раньше, тем лучше.

Говоря же про го - при всех своих недостатках (а они у него есть), он ну очень явный. Никакого UB. Никакой магии аннотаций. Никакого рантайм-патчинга чего-нибудь. Никакой динамической линковки. Даже исключений нет, ошибки явно возвращаются, как значения. Всё максимально явное, что написал - то и работает, чего не написал - то не работает. Идеальный язык для энтерпрайза, чтобы любой джуномиддл сразу садился писать рабочий код, не разбираясь во всяких "сложных штуках". Да, подход спорный, но если тебе не нравится - не пиши на го, всё просто.
Аноним 06/06/20 Суб 21:21:06 #266 №1715190 
>>1715188
>если тебе не нравится - не пиши на го, всё просто
А как тогда срать в /пр?
Аноним 06/06/20 Суб 21:22:39 #267 №1715192 
>>1715163
А, да, про конструкторы. Тот же `new` не нужен, надеюсь его в go2 уберут. Остаётся var для нулевого значения, `:= сырое значение` для, собственно, сырого значения и make если нужно заранее задать размер мапы, слайса или канала (который на самом деле тоже слайс, кстати).

В го есть совсем немного вещей, которые дают избыточную сложность, это ёбаные слайсы (имхо, очень зря особенности их реализации вытащили на прикладной уровень, эталонная хуйня для собесов онли), хуйня с интерфейсами и nil (когда nil'овый интерфейс != nil), невозможность мутировать поле структуры, лежащей по значению внутри слайса или мапы и может ещё что-то.

Сравнительно немного, если посмотреть на другие языки.
Аноним 06/06/20 Суб 21:24:15 #268 №1715194 
>>1715188
> Говоря же про го
Точняк, тред же про него.
Аноним 06/06/20 Суб 21:59:23 #269 №1715224 
>>1715192
> невозможность мутировать поле структуры, лежащей по значению внутри слайса
Чо ты несёшь, поехавший?
https://play.golang.org/p/loZ-RUPvJDK
Аноним 06/06/20 Суб 22:44:54 #270 №1715251 
>>1715188
> он ну очень явный
Про то, что любая хуйня может неявно конформить протокол, ты, конечно же, умолчал.
Аноним 07/06/20 Вск 14:41:14 #271 №1715666 
Как сосется, гоколды?
https://go.googlesource.com/go/+/8157a31deb75768b5998ed925c15bf20241a3f18
Аноним 07/06/20 Вск 17:34:56 #272 №1715844 
photo2020-05-1002-12-33.jpg
>>1715666
С одной стороны нейминг мало что значит, с другой - очень плохо, что дикари и им сочуствующие могут так просто заставить крупные компании рефакторить свой код, просто по тому что им не нравяться какие-то слова. Современное западное (в широком смысле) общество болеет, и это - всего лишь один из симптомов. Олсо, аналогичное изменение 2 года назад сделал Python
Аноним 07/06/20 Вск 21:03:45 #273 №1716045 
>>1715666
Какова позиция алтайских программистов по этому поводу?
Аноним 07/06/20 Вск 22:58:02 #274 №1716190 
>>1716045
Уже начали работу над своей реализацией го, с матершиной и расовыми оскорблениями
Аноним 08/06/20 Пнд 09:33:02 #275 №1716491 
Го не пользуюсь, но чет промимировал с https://www.opennet.ru/opennews/art.shtml?num=53109 . Скоро палитры запрещать будут.
Аноним 08/06/20 Пнд 09:59:46 #276 №1716503 
>>1716491
Да это рано или поздно коснется многих


Видел обсуждение, где писалось, что надо бесплатную утилиту на руби под названием Rubycop переименовать, потому что копы - это полицейские, а они теперь плохие.
Аноним 08/06/20 Пнд 10:27:03 #277 №1716513 
>>1716491
>>1716503
Это началось давно уже, с вбрсывания code of conduct в опенсорс проекты, сейчас просто у комнатных активистов зудит в жопе на фоне событий, вот они и выискивают где ещё насрать.
Аноним 08/06/20 Пнд 11:58:29 #278 №1716640 
>>1715666

Ещё и Rus Cox лайкает ани-республиканские твиты https://twitter.com/_rsc/likes?lang=en, куда вообще сообщество катится
Аноним 08/06/20 Пнд 14:23:40 #279 №1716730 
15215752130990s.jpg
>>1715666
Надеюсь в го нет расистских супермасистских архитектур вроде Master/Slave? Работал в эмбеддеде, где эти слова встречаются в каждом первом проекте, и могу себе представить боль прогрессивных смузихлебов от поделок бородатых махарайщиков в свитерах с оленями.
у кого-нибудь есть картинка в хайрезе?
Аноним 08/06/20 Пнд 16:30:40 #280 №1716849 
Ананасы, подскажите, как обновлять модули? Написал один, выложил на гит, подключил в проект - а при коммите в мастер версия в проекте не обновляется. В чем может быть проблема?
Аноним 08/06/20 Пнд 16:33:25 #281 №1716857 
>>1716849
git tag?
Аноним 08/06/20 Пнд 21:59:33 #282 №1717141 
>>1700220 (OP)
На моей памяти это уже третий 10 тред. Неужели все хейтят это до сих пор?
Аноним 08/06/20 Пнд 22:02:17 #283 №1717145 
>>1717141
Наши треды обратно совместимы. Ентерпрайз куолити.
Аноним 08/06/20 Пнд 22:37:10 #284 №1717169 
Суп гач. Устроился джуном на пщ. Вот стараюсь лучше узнать архитектуру программ и лучшие практики на го. Наткнулся на канал Gopher School https://www.youtube.com/channel/UCQBFSUV_BdxGCxeg9Th4EjQ
и я увидел там очень много знакомых решений, которые используются в проекте над которым я работаю.

Вот хочу узнать, может есть какой-то ресурс или книги которые просто маст рид по лучшим практикам и архитектуре го приложений?
Аноним 08/06/20 Пнд 23:27:54 #285 №1717189 
>>1716849
go get -u github.com/username/projectname
Аноним 08/06/20 Пнд 23:38:54 #286 №1717193 
>>1716849
Олсо, прочитай https://habr.com/ru/company/otus/blog/503918/ - тебе при разработке может быть удобным replace
Аноним 09/06/20 Втр 00:05:32 #287 №1717198 
>>1717169
Да где вы ваки находите?
Одних синьоров-мидлов ищут с опытом 3+ года
Аноним 09/06/20 Втр 01:10:50 #288 №1717220 
>>1717198
Я просто обновил резюме, и мне предложили. Без пизды. Но не в мск. Ну у меня ещё опыт веб макаки 1.5 года
Аноним 09/06/20 Втр 01:29:34 #289 №1717226 
>>1717220
В резюме есть релевантный голенг опыт?
Заголовок резюме вида Golang Developer?
Аноним 09/06/20 Втр 08:34:37 #290 №1717310 
>>1717145
Без Илюши, го-треды это не го-треды.
Аноним 09/06/20 Втр 09:56:47 #291 №1717341 
Result.png
https://github.com/skwmium/ozon-goschool-contest/blob/master/task-E/Solution.go
Аноним 09/06/20 Втр 10:29:11 #292 №1717351 
Кто-нибудь сталкивался с подвисаниями GoLand под макосью? Даже на хеллоу ворлде постоянно происходят короткие фризы. Голанд 2020.1.3
Аноним 09/06/20 Втр 10:35:35 #293 №1717353 
>>1717341
Но ведь здесь такое же решение предлагали и оно не работало
Аноним 09/06/20 Втр 16:51:40 #294 №1717729 
>>1717351
Засрут своими if err != nil код и потом у них IDE тормозит.
Аноним 09/06/20 Втр 17:09:25 #295 №1717747 
>>1717353
Да, походу это троллинг. Я сам что-то подобное делал, и нихуя
Аноним 09/06/20 Втр 21:26:32 #296 №1718039 
>>1717729
В этих джетбрейнсовких иде пустой проект сжирает 2 гига оперативки.
Аноним 09/06/20 Втр 21:30:05 #297 №1718042 
>>1718039
псс, не хочешь немного `gopls`?
Аноним 09/06/20 Втр 21:32:54 #298 №1718044 
>>1718042
И что он сделает? Заменит jvm в голанде?
Аноним 09/06/20 Втр 21:38:50 #299 №1718048 
>>1718044
Внезапно, заменит голанд на любой редактор, который умеет в lsp
я вимом пользуюсь, мне норм
Аноним 09/06/20 Втр 21:49:02 #300 №1718062 
>>1718048
В голанде можно нажать кнопочку рефактор, и он переименует даже в гите у разработчиков го, вимы и вскоде так не умеют.
Аноним 09/06/20 Втр 23:24:31 #301 №1718147 
>>1717729
Да, охуенно. Ведь когда для JVM охуеть как сложно проанализировать 5мб текста зависимостей - виноват, конечно, текст.
>>1718048
Вим или неовим? Я хочу вкатиться, что посоветуешь кроме vim-go поставить?
sageАноним 09/06/20 Втр 23:29:49 #302 №1718157 
> голенд
> голенд
> голенд
> голенд
> голенд
Аноним 10/06/20 Срд 00:09:18 #303 №1718179 
>>1718062
Я думаю главный плюс, это отладчик. Который гоферам как бы и не нужен но очень тяжковато принтами дебажить как школьник на пхп
Аноним 10/06/20 Срд 00:26:19 #304 №1718191 
Нет каких-то простых способов uint в string перевести?
Аноним 10/06/20 Срд 00:33:35 #305 №1718196 
>>1718179
Его и без пщленда можна использовать. Просто это не так удобно. Олсо, когда речь идет о канкаренси вещах - все равно принтам нет альтернатив, дебагером ты ничего не отловишь
Аноним 10/06/20 Срд 00:41:31 #306 №1718199 
>>1718191
strconv.FormatUint(uint64(n), 10)
Аноним 10/06/20 Срд 07:10:32 #307 №1718387 
что можно почитать на русском с нуля? или пытаться книги из оп поста на английском читать?
Аноним 10/06/20 Срд 08:24:25 #308 №1718410 
>>1718387

Да не нужны никакие книжки курсы и тп.
Го тур + хабра + оф блог
И ты знаешь все.
Аноним 10/06/20 Срд 08:56:17 #309 №1718427 
>>1718147
неовим мне не зашел, vim-go тоже не пользуюсь, потому что не только на го пишу

если интересно, то плагины только эти стоят и все:
https://github.com/editorconfig/editorconfig-vim.git
https://github.com/tpope/vim-commentary.git
https://github.com/natebosch/vim-lsc.git
https://github.com/tpope/vim-fugitive.git
Аноним 10/06/20 Срд 09:07:33 #310 №1718433 
>>1718410
думаешь, этого будет достаточно?
Аноним 10/06/20 Срд 09:23:44 #311 №1718440 
Тут видосик приехал про пейпер о Featherweight Go

https://www.youtube.com/watch?v=Dq0WFigax_c
Аноним 10/06/20 Срд 10:43:37 #312 №1718460 
>>1718427
Спасибо за ответ
>vim-go тоже не пользуюсь
Он мешает при написании кода на других языках?
Аноним 10/06/20 Срд 11:33:30 #313 №1718481 
>>1718460
Нет, не мешает, просто добавляет кучу функционала, которым я не пользуюсь и не переиспользуется

а vim-lsc универсальней - он делает линтинг, автодополнение, навигацию по коду (собственно все нужные мне возможности lsp протокола) для любого языка, для которого в конфиге есть мапа "расширение файла" => "lsp executable"
Аноним 10/06/20 Срд 12:42:14 #314 №1718561 
>>1718481
А еще в виме можно забыть нажать кнопочку i перед тем как печатать, и он откроет пять новых буферов, заменит пробелы на табуляции, задидосит сосач и намайнит биткоинов.
Аноним 10/06/20 Срд 12:50:59 #315 №1718576 
>>1718561
Не юникс-вей, конечно, но звучит - охуенно
Аноним 10/06/20 Срд 12:56:25 #316 №1718581 
>>1718576
Практика показала, что простые пользователи не хотят юникс-вей, они хотят комбайн, который может всё. Им эмоционально проще освоить одну сложную прогу, чем 20 простых. Именно поэтому современные браузеры такие жирные.
Аноним 10/06/20 Срд 13:30:04 #317 №1718616 
>>1718481
Сколько не пробовал - IDEшки дают ту же кучу возможностей и даже больше, но интуитивнее (потому что специально дизайнились под то, чтобы быть IDEшками) и при этом их не нужно настолько допиливать напильником.
А вообще удачи превратить вим в полноценную IDE, где и базу можно посмотреть, и гошный дебаггер интегрирован, и тесты можно запускать, и рефакторинг проводить, и линтер у тебя встроенный (можно от одного варнинга к другому прыгать и IDE даже сама будет подсказывать тебе варианты решения варнинга) и тп.
Да даже просто гошный дебаггер. Из консоли с ним работать адски неудобно, а в то, что в виме есть нормальный гуй для дебаггера я, извините, не верю.

Короче, лично я за все мои 10 лет "программирования" ничего луже продуктов JetBrains ещё не встречал, хотя пробовал кучу разных штук. кстати никто не знает, они платят что-нибудь за рекламу их софта на дваче?
Аноним 10/06/20 Срд 13:38:10 #318 №1718619 
>>1718481
Сколько не пробовал - IDEшки дают ту же кучу возможностей и даже больше, но интуитивнее (потому что специально дизайнились под то, чтобы быть IDEшками) и при этом их не нужно настолько допиливать напильником.
А вообще удачи превратить вим в полноценную IDE, где и базу можно посмотреть, и гошный дебаггер интегрирован, и тесты можно запускать, и рефакторинг проводить, и линтер у тебя встроенный (можно от одного варнинга к другому прыгать и IDE даже сама будет подсказывать тебе варианты решения варнинга) и тп.
Да даже просто гошный дебаггер. Из консоли с ним работать адски неудобно, а в то, что в виме есть нормальный гуй для дебаггера я, извините, не верю.

Короче, лично я за все мои 10 лет "программирования" ничего луже продуктов JetBrains ещё не встречал, хотя пробовал кучу разных штук. кстати никто не знает, они платят что-нибудь за рекламу их софта на дваче?
Аноним 10/06/20 Срд 14:32:30 #319 №1718652 
>>1718619
когда твой сервис становится немного сложнее того, чтобы поднять локальную бд и стартануть сам сервис, все эти плюшки с запуском тестов из иде и дебаггером очень сильно теряют свою ценность, потому что в конфигурациях с кубом/докером и развесистой инфраструктурой все становится только сложнее

и, я осознанно не делаю иде из вима, тк мне нужны только git blame, и навигация по коду с базовым линтингом; все остальное я из консоли/CI в состоянии запустить

ps пять лет уже живу без дебаггера в абсолютно разных экосистемах, полет нормальный, код лучше писаться стал
Аноним 10/06/20 Срд 23:38:58 #320 №1719022 
>>1718652
>плюшки с запуском тестов из иде и дебаггером
Не теряют. При создании какого-то сервера ты всё равно локально только юнит-тесты запустить можешь, их и надо пилить в иде. Дебаггер вещь просто незаменимая, я всего полгода назад узнал, что есть программисты, которые им не пользуются, и я не понимаю, как и зачем вы живёте.
У меня развесистая инфраструктура в кубе, это не мешает мне запускать один сервис локально, подключать его к тем, которые в кубе и ставить брыкпонты, чтоб поотлаживаться
Аноним 11/06/20 Чтв 10:30:38 #321 №1719172 
>>1718652

Я стараюсь писать так, что бы каждый сервис можно было изолировано запустить локально и полноценно отдебажить.
Аноним 11/06/20 Чтв 14:45:38 #322 №1719365 
>>1719022
> я всего полгода назад узнал, что есть программисты, которые им не пользуются, и я не понимаю, как и зачем вы живёте.
Они дебажат принтами, медленно и печально. Но в защиту го скажу, что дебаггер там не особенно удобный и не особенно стабильный, часть стркуткур в рантайме ты даже и просто не видишь, не говоря уже о том, чтобы их менять. Не выдерживает никакого сравнения с джавой или, прости господи, с пехапе.
Поэтому _очень_ много гошников уже просто привыкли обходится без дебаггера.
Ну и в целом, кстати, многопоточный код с туевой хучей горутин очень непросто отлаживается дебаггером, потому что пока ты прокликиваешь один процесс - другие работают себе, как хотят (или нет).
Аноним 11/06/20 Чтв 14:47:26 #323 №1719369 
>>1718652
У меня всё в кубах, все линтеры и тесты обернуты в докер и запускаются в CI, но всё равно при разработке тебе придется работать с этим же локально, подебажить что-то, посмотреть базу, позапускать что-то. IDEшка реально удобнее для той же базы, чем смотреть что-то в консоли или там админер поднимать.
Аноним 12/06/20 Птн 14:53:37 #324 №1720387 
image.png
дебило вопрос. а что конкретно я узнаю или получая используя эту шнягу? [1] какие-то цифры выдаёт
Аноним 12/06/20 Птн 15:54:53 #325 №1720448 
>>1720387
Код символа
То есть "a"[0]=97
http://www.asciitable.com/
Аноним 12/06/20 Птн 16:30:58 #326 №1720495 
>>1720448
от души, братишка
Аноним 12/06/20 Птн 21:11:53 #327 №1720806 
>>1720387
Ты получаешь Rune (мог бы и сам в IDEшке посмотреть возвращаемый тип), дальше гугли.
Аноним 13/06/20 Суб 01:28:47 #328 №1721081 
>>1720806
>Rune
Не перезвоним
Аноним 13/06/20 Суб 11:12:06 #329 №1721254 
Как написать свою кодогенерацию? Кто-нибудь занимался?

Большинство существующих не очень прозрачно парсят что-то в свои структуры, а затем как-то собирают это все через темплейты.

Как-то громоздко все выглядит, может есть на других языках фреймворки, которые позволят сделать генерацию более лаконичной?
Аноним 13/06/20 Суб 19:00:52 #330 №1721694 
b.png
Здравствуйте. Чёрная Живая Материя. Поддержать инициативу равного правосудия. Пожалуйста подтвердите что вы не расист.
Ваш вклад имеет решающее значение для наших усилий по прекращению массовых тюремных заключений и чрезмерного наказания в Соединенных Штатах, борьбе с расовой и экономической несправедливостью и защите основных прав человека для наиболее уязвимых слоев населения американского общества. Спасибо!
Аноним 13/06/20 Суб 19:15:55 #331 №1721711 
>>1700220 (OP)
Нужен совет сеньёров-помидоров. Берут в Go джунов? Насколько жесткие требования по сравнению с другими стеками?
Аноним 13/06/20 Суб 19:23:02 #332 №1721721 
>>1718410
>Да не нужны никакие книжки курсы и тп.
>Го тур + хабра + оф блог
>И ты знаешь все.
Ты работаешь? Го маленький язык получается, проще даже PHP?
Аноним 13/06/20 Суб 19:51:29 #333 №1721765 
>>1721721
Говнокод на любом языке просто написать.
Аноним 13/06/20 Суб 19:57:41 #334 №1721782 
>>1721765
Это понятно. Я про минимальынй объем знаний. Минимум синтаксиса, ООП нет, простая экосистема и деплой, простая модель конкаренси. Из этого должно следовать, что в Go низкий порог входа, и поидее требования в вакансиях должны быть меньше чем для тех же джавистов. Я прав?
Аноним 13/06/20 Суб 19:59:47 #335 №1721786 
>>1721782
Стать джавистом джуном проще, чем джуниор гошником
Аноним 13/06/20 Суб 20:04:13 #336 №1721799 
>>1721254
Парсеры как правило пишутся на основе парсера из стандартной библиотеки, в интернете можешь найти примеры, он довольно простой в использовании. Главное учитывать, что он возвращает именно спарсенный текст, а не сигнатуры, к сожалению. То есть, `foo(a, b string)` спарсится как функция с аргументами `a` и `b string`, что не очень удобно.

Кодогенерация в большинстве случаев решается через шаблон с кодом, в который через gotemplate подставляется то, что тебе нужно. Естественно, никакой подсветки результирующего синтаксиса там нет, отлаживаться приходится "на глазок" и всё такое. Особенно бесят отступы. Некоторые из моих знакомых вообще на эти отступы забивают и генерируют код, как придётся, просто проходясь по нему потом gofmt.
Ещё есть gennifer, это кодогенератор, построенный на объектной модели. Кода получается многовато, но идея не так уж и плоха. Жаль, используется редко.
Аноним 13/06/20 Суб 20:05:14 #337 №1721802 
>>1721782
По идее прав (но всё всегда зависит от конкретной вакансии и злоебучести конкретного собеседующего), не слушай этого поехавшего.
Аноним 13/06/20 Суб 20:25:32 #338 №1721828 
>>1721786
>Стать джавистом джуном проще, чем джуниор гошником
Объясни почему?
Аноним 13/06/20 Суб 20:40:51 #339 №1721844 
>>1721828
Набор джавистов больше, конторе проще курсы по джаве организовать, команды по джаве больше, значит можно джунов проще добавить в команду
Аноним 13/06/20 Суб 20:43:46 #340 №1721850 
>>1721844
Ты не работешь и кроме джавы ни на чем не писал, я прав?
Аноним 13/06/20 Суб 20:47:18 #341 №1721855 
>>1721850
Я работаю и пишу на го, и говорю как есть
Аноним 13/06/20 Суб 20:57:54 #342 №1721862 
>>1721855
Тогда ты должен понимать, что объем знаний для джуна в джаве в 2-3 раза выше чем для джуна в го. Большие команды и проекты скорее минус чем плюс. В джаве многабукф, паттерны/ООП головного мозга, миллионы строк лапшекода, тысячи классов, новичкка кинут разгребать кучи говна за всеми, одни минусы. Количество вакансий не о чем не говорит. Чем меньше вакансий, тем меньше конкуренции.
Аноним 13/06/20 Суб 20:59:50 #343 №1721866 
>>1721862
Не знаю, я не мерял объем знаний, но знаю, что джаве в универе учат и курсов по джаве гораздо больше.
А на го в первую очередь берут тех, кто готов переучиваться.
Аноним 13/06/20 Суб 21:01:06 #344 №1721867 
>>1721802
Спасибо
Аноним 13/06/20 Суб 22:50:26 #345 №1721969 
>>1721254
На сколько я знаю - нет полноценного фремворка для этого, но можно вместо темплейтов использовать https://github.com/dave/jennifer
Аноним 13/06/20 Суб 23:07:28 #346 №1721978 
>>1721694
Ой какой пиздец. Когда уже маятник качнеться вправо?
Аноним 14/06/20 Вск 01:16:48 #347 №1722086 
>>1721862
Ну, не сказал бы.
Джава она разная. Формошлепство, тырпрайз на шестой джаве, монолиты на спринге. Всё это требует минимум знаний.
От гошника ожидается многопоточность, понимание низкоуровнего железа, cloud native, россыпь бд, микросервисы, ...
Аноним 14/06/20 Вск 08:32:12 #348 №1722168 
Screenshot2020-06-14 The Go Playground.png
Начал читать Кернигана. Не могу понять пару моментов. Что такое arg и range? Понятно что arg переменная, но почему она не объявлена? Не понимаю что представляет из себя range, и на функцию не похоже нет скобок, и на переменную, что это?
Аноним 14/06/20 Вск 12:08:22 #349 №1722266 
>>1722168
Начинал бы ты с питона
Аноним 14/06/20 Вск 12:42:26 #350 №1722279 
>>1722266
Нахой мне питон. У меня есть опыт программирования. Просто синтаксис не знакомый, а книге Кернигана тупо оставляют некоторые строчки кода без объяснения.
Аноним 14/06/20 Вск 12:44:47 #351 №1722282 
>>1722086
>многопоточность
А джавистам типа не нужно
>понимание низкоуровнего железа
Причем тут вообще Го?
>Россыпь бд
Как БД связана с языком программирования веб-бэкенда?
Типа у джавистов одна БД, у гошников - другие?
Аноним 14/06/20 Вск 12:46:45 #352 №1722285 
>>1721862
>Чем меньше вакансий, тем меньше конкуренции.
Топ-логика. Пойду учить Brainfuck.
Аноним 14/06/20 Вск 13:10:56 #353 №1722303 
>>1722168
Пройди сначала go tour.
variableName := value это краткая форма записи var variableName variableType = value
range - это ключевое слово для итерации по массивам, слайсам, мапам и каналам
Аноним 14/06/20 Вск 13:11:26 #354 №1722305 
>>1722168
range - это оператор прохода по массиву.
Переменная arg объявляется через :=
Аноним 14/06/20 Вск 13:21:13 #355 №1722309 
>>1722285
На брейнфаке не пишут за деньги.
Аноним 14/06/20 Вск 13:21:40 #356 №1722310 
>>1722303
>>1722305
Я уже нагуглил, но спасибо.
Аноним 14/06/20 Вск 13:30:42 #357 №1722315 
- угадайте язык
Аноним 14/06/20 Вск 13:41:19 #358 №1722327 
>>1722310
Если умеешь гуглить, то зачем изначально такой тупняк спрашивал?
Аноним 14/06/20 Вск 13:55:29 #359 №1722334 
>>1722327
Сразу не нагуглилось
Аноним 14/06/20 Вск 14:31:27 #360 №1722391 
>>1722282

В го изначально высокие требования и однообразные задачи, которые им решают.
В более массовых языках задачи разные, и много тех, где не нужно такого объема знаний.

Мне питон ближе.
Разве можно сравнивать требования к джангисту, пилябщк у монолит на одной postgre + redis и питонщику пилящему микросервисы на aiohttp, где сразу россыпь всего - кликхаус, постргя, редис, эластик, Кафка, Кассандра?
И на го только требования второго плана.
Аноним 14/06/20 Вск 15:03:38 #361 №1722439 
Стоит ли учить go, как первый язык? в принципе основы как масивы, циклы и тд знаю, но с языком не могу определиться
Аноним 14/06/20 Вск 15:04:08 #362 №1722440 
>>1722391
>В го изначально высокие требования
К чему?

>однообразные задачи
Например? Го язык общего назначения.

>В более массовых языках задачи разные, и много тех, где не нужно такого объема знаний.
Какого объема? В Питоне языковых конструкций в 2 раза больше. Плюс большая и разрозненная экосистема.

Аноним 14/06/20 Вск 15:07:06 #363 №1722449 
>>1722439
>с языком не могу определиться
Любой язык бери. Go довольно простой и удобный. Меньше будешь тратить времени и сил на ненужное. В JS к примеру кроме языка нужно еще изучить кучу инструментов, так как экосистема большая и сложная.
Аноним 14/06/20 Вск 15:11:10 #364 №1722457 
>>1722449
значит если я буду го учить, то подводных не будет
Аноним 14/06/20 Вск 15:18:07 #365 №1722471 
>>1722457
Программирование это сложно, начнем с этого. Язык не важен, потому что программируют алгоритмы в голове, а язык используют только для выражения этих алгоритмов в виде кода. Я тебе уже написал, что Go довольно простой, в других языках требуется больше знать чтобы их использовать. Еще простой PHP, но он только для веба.
Аноним 14/06/20 Вск 15:19:15 #366 №1722475 
>>1722471
спасибо
Аноним 14/06/20 Вск 15:23:11 #367 №1722484 
Начинать правильнее всего с C++.
Аноним 14/06/20 Вск 15:35:32 #368 №1722515 
>>1722471

С каких пор пыха простая?
Вот php4 был простым языком, а в последние версии они столько говна натащили, что бы сгладить его изначальное уебство, что долбанешься.
Аноним 14/06/20 Вск 15:37:52 #369 №1722522 
>>1722440

Иди нахуй, я привел пример.
Аноним 14/06/20 Вск 18:31:56 #370 №1722840 
Как работать с файлами, какой пакет использовать?
1. os
2. io
3. ioutil
4. другое
Аноним 14/06/20 Вск 18:34:57 #371 №1722843 
>>1722515
Проще чем Питон как язык + упрощает работу с вебом

>>1722522
>Иди нахуй
Нахуй твоя жопа хороша
Аноним 14/06/20 Вск 18:58:10 #372 №1722866 
>>1722843

Ты, определенно, альтернативно одаренный.
Аноним 14/06/20 Вск 19:20:34 #373 №1722888 
>>1722866
Если бы у питона и пхп были спецификации, то пиновская была бы в 2-3 раза больше
Аноним 14/06/20 Вск 21:53:01 #374 №1723029 
>>1722285
Нормальная логика. Выучил эликсир, вкатился на позицию джуна за 130к, хотя по факту я больше типикал джуна знаю.
Аноним 14/06/20 Вск 22:01:38 #375 №1723042 
>>1722285
>>1723029
>Нормальная логика. Выучил эликсир, вкатился на позицию джуна за 130к
Двачую. Один чувак из чата джуном в Clojure вкатился, не имея до этого опыта программирования за деньги.
Аноним 14/06/20 Вск 22:27:32 #376 №1723059 
>>1723042
Что за чат?
Аноним 14/06/20 Вск 22:35:16 #377 №1723069 
>>1723059
>Что за чат?
С какой целью интересуешься?
Аноним 14/06/20 Вск 23:21:48 #378 №1723110 
>>1723029
>джун 130к
Прохладная история
Аноним 15/06/20 Пнд 00:33:06 #379 №1723133 
>>1723110

Джун го +-100.
Эликсир поебанутей, вот и за повыше.
Аноним 15/06/20 Пнд 01:31:02 #380 №1723146 
>>1723069
Хочется пообщаться в чате.
Аноним 15/06/20 Пнд 01:39:41 #381 №1723148 
>>1723146
Если это чат гошников в телеге, то осторожнее, там какое-то запредельное число даунов тусит.
Аноним 15/06/20 Пнд 02:32:22 #382 №1723154 
>>1723148
> чат гошников
> запредельное число даунов
Какая неожиданность!
Аноним 15/06/20 Пнд 03:53:57 #383 №1723163 
>>1723154
Скорее
> чат
> запредельное число даунов
Аноним 15/06/20 Пнд 06:40:46 #384 №1723205 
>>1723146
https://slack-ru.hexlet.io/
Аноним 15/06/20 Пнд 06:50:00 #385 №1723206 
>>1723133
>джун го +-100
Что-то как-то вообще нет:
https://www.google.com/search?q=junior+go+developer&oq=junior+go+developer
Аноним 15/06/20 Пнд 07:07:26 #386 №1723211 
>>1723042
Наверное, большой стаж борщехлебства. Это все же больше, чем ничего.
Аноним 15/06/20 Пнд 07:17:11 #387 №1723216 
>>1723211
Нет, полгода год, вроде так. Он просто не ебланил, а хуярил день и ночь.
Аноним 15/06/20 Пнд 09:24:41 #388 №1723272 
>>1723206

Ну я за джунов в своей компании.
Аноним 16/06/20 Втр 11:19:56 #389 №1724501 
image.png
Аноним 16/06/20 Втр 12:23:41 #390 №1724556 
таблеточки.mp4
>>1724501
Аноним 17/06/20 Срд 00:50:43 #391 №1725513 
Чо посоны, дженерики?
https://blog.golang.org/generics-next-step
Аноним 17/06/20 Срд 00:59:39 #392 №1725524 
>>1725513
Предвкушаю, как все переобуюся из "НИНУЖНЫ" В "ВЕЛИКОЛЕПНАЯ ФИЧА ГЛОРИУС ЯЗЫКА".
Аноним 17/06/20 Срд 01:26:18 #393 №1725563 
>>1725524
Да про "нинужны" кукарекали только долбоебы. Все нормальные чуваки сразу говорили, что фича нужная.
Аноним 17/06/20 Срд 07:58:52 #394 №1725746 
Я с 2017 был в спячке. Что в Go изменилось с тех пор? Я так понял, что ничего. Язык точно прежний, а так вообще, все стало немножко быстрее или нет?
Аноним 17/06/20 Срд 08:13:33 #395 №1725756 
>>1725746
Сильно быстрее
Аноним 17/06/20 Срд 09:58:09 #396 №1725823 
>>1725746
Го модули добавились, гарбадж коллектор ускорился, а так больше вроде ничего такого
Аноним 17/06/20 Срд 10:12:06 #397 №1725833 
>The earliest that generics could be added to Go would be the Go 1.17 release, scheduled for August 2021. In reality, of course, there may be unforeseen problems, so this is an optimistic timeline; we can’t make any definite prediction.

Охуенно, еще больше года кодогенерацию дрочить
Аноним 17/06/20 Срд 10:14:02 #398 №1725834 
image.png
>>1725833
>1.17
А обратная совместимость не сломается?
Аноним 17/06/20 Срд 10:17:22 #399 №1725835 
А эксепшены уже есть, называются PANIC и RECOVER
Аноним 17/06/20 Срд 11:06:46 #400 №1725855 
15891233612920.jpg
>>1725835
Аноним 17/06/20 Срд 11:08:36 #401 №1725857 
>>1725855
Ну так это и правда другое.

panic и recover в go используется очень редко
Аноним 17/06/20 Срд 11:10:47 #402 №1725858 
>>1725857
Это была пост-метаирония
Вопрос не в том, как часто используеться, вопрос в том, какое у panic/recover назначение.
Аноним 17/06/20 Срд 11:30:24 #403 №1725865 
https://go2goplay.golang.org/p/OdjDyDpjofa
ну чо, как вам?
Аноним 17/06/20 Срд 11:42:30 #404 №1725878 
>>1725834
Для старых версий го можно будет специальной тулзой сгенерить прям статический код, если я ничего не напутал.
Аноним 17/06/20 Срд 12:07:38 #405 №1725908 
>>1725858
>какое у panic/recover назначение
Уж точно не передавать информацию вверх по стеку.
Аноним 17/06/20 Срд 12:19:37 #406 №1725911 
GO - говно https://www.youtube.com/watch?v=eIiyTq4VHK4
Аноним 17/06/20 Срд 12:20:03 #407 №1725912 
>>1725756
>Сильно быстрее
За счет чего?

Аноним 17/06/20 Срд 13:18:17 #408 №1725984 
>>1725912
За счет развития компилятора
Аноним 17/06/20 Срд 13:21:08 #409 №1725990 
>>1725911
Счас бы этого дебила слушать. Напомню, что Немчинский лет 5 назад пизданул, что Питон хуета, и вообще непонятно кто и что на нем пишет. Сказал, что ближайшее время он сдохнет. Что видим сейчас, Питон в 5 самых популярных языков, а Джава начала терять позиции.
Аноним 17/06/20 Срд 14:02:32 #410 №1726071 
>>1725563
ну давай, расскажи свои кейсы, где без женериков никак
Аноним 17/06/20 Срд 14:17:32 #411 №1726100 
GORM V2 Release Note Draft
https://github.com/go-gorm/gorm/wiki/GORM-V2-Release-Note-Draft
Аноним 17/06/20 Срд 14:40:56 #412 №1726113 
>>1726100
>If everything goes well, the final release date will be the time we reach 20k stars!
Пиздец рачье.
Аноним 17/06/20 Срд 14:45:20 #413 №1726117 
>>1725990
Сейчас нормально он о Питоне отзывается
https://www.youtube.com/watch?v=1bhvP1CZI5A
Аноним 17/06/20 Срд 14:53:06 #414 №1726123 
>>1726117
>Сейчас нормально он о Питоне отзывается
Переобулся сучок
Аноним 17/06/20 Срд 18:18:28 #415 №1726300 
image.png
Сап дващ, я тупой, как параллельно запускать тесты с пармаетрами? горутинами, полагаю?
Аноним 17/06/20 Срд 18:24:43 #416 №1726316 
Так правда, что можно на элексире рубить 135к в месяц?
А можно тысяч 40, но на удаленке?
Аноним 17/06/20 Срд 18:25:16 #417 №1726320 
>>1726071
Это твоя задача. Когда фичу завезут, тебе придётся придумать оправдание, почему её всё же завезли, несмотря на крики "РЯЯ НИНУЖНА".
Аноним 17/06/20 Срд 18:32:00 #418 №1726328 
>>1726300
а, я долбаеб походу, просто добавить t.Parallel()
Аноним 17/06/20 Срд 20:15:02 #419 №1726415 
>>1726316
>А можно тысяч 40, но на удаленке?
Там где Эликсир обычно есть код на Руби или Эрланг. В обоих случаях зарплаты топовые.
Аноним 17/06/20 Срд 20:56:02 #420 №1726447 
>>1726071
Как насчет context.Context, чтобы там `interface{}`не использовать. Да и вообще у тебя есть `grep -rc 'interface\{\}' $GOPATH` причин использовать дженерики.

Дженерики хороши тем, что ты блять можешь статически проверить свой код на валидность, используя какие-то структуры данных, те же векторы. Вместо того, чтобы сначала пихать данные хуй знает куда, а потом ассертить типы, постоянно рискуя словить панику, nil и всё такое.
Аноним 17/06/20 Срд 23:37:31 #421 №1726591 
>Вкусовщина, конечно, но с круглыми скобочками уже перебор. Ну блин, символов-то куча, есть угловые скобки, двоеточия, можно много чего придумать. Но нет, давайте сделаем из функции связку сарделек. ‍‍
> func(r reciecer) do(type T) (in T) (string, error) {...}
Аноним 18/06/20 Чтв 00:31:17 #422 №1726617 
>>1726591
Причем фактически в языке уже есть прообраз дженериков (встроенные карты, массивы, слайсы) и там нет такого безумия со скобками
Аноним 18/06/20 Чтв 00:35:25 #423 №1726618 
>>1726591
почитай внимательно, в го-блоге пишут почему не угловые скобочки и тд

>>1726447
один фанатик, не понимающий как работают дженерики и какую проблему они решают, детектед
Аноним 18/06/20 Чтв 01:35:24 #424 №1726636 
>>1726618
Ну давай, просвети меня тогда. Вангую, ты или сейчас повторишь мои же слова про статическое связывание типов, или скажешь что-нибудь про копипаст.
Аноним 18/06/20 Чтв 02:54:47 #425 №1726656 
>>1726617
Всегда горю когда "отображение" картой называют
Аноним 18/06/20 Чтв 03:15:45 #426 №1726665 
>>1726300
Но нахуя?? Ты серьёзно полагаешь, что проверку 6 массивов по 6 элементов нужно распараллеливать?
Аноним 18/06/20 Чтв 08:51:19 #427 №1726725 
>>1726656
Всегда горю когда "словарь" отображением называют
Аноним 18/06/20 Чтв 10:27:53 #428 №1726795 
>>1726665
этот код для примера, у меня в тестах запросы для фильтров на сайте, я не хочу, чтоб тест длился больше 20-30 сек
Аноним 18/06/20 Чтв 11:07:34 #429 №1726848 
>>1726618
Я тоже не понимаю какую проблему они решают.
За пять лет на крестах я написал один шаблон и то ради того чтоб выебнуться
Аноним 18/06/20 Чтв 11:42:09 #430 №1726883 
>>1726848
На горм посмотри, там всё в пустых интерфейсах. Нравится? Вот это они и решают.
Полюбому, ты под капотом использовал их множество раз, просто не осознавал этого.
Аноним 18/06/20 Чтв 19:14:19 #431 №1727511 
>>1726725
Всегда горю, когда "ассоциативный массив" называют как-то по-другому.
Аноним 18/06/20 Чтв 19:41:48 #432 №1727539 
>>1727511

Теперь и я горю. Как эти пидрилы пыхеры могли в одном типе уместить вектор и мапу, но назвать это массивом :-(
Аноним 18/06/20 Чтв 20:17:30 #433 №1727564 
>>1700220 (OP)
Здарова гач. Вкатился в пщ из пистона, недавно получил первую работу гачером. Вот намедни получил задание с байтоёбством и жидко пернув обмяк. К такому в пистоне я даже не притрагивался.

Посоветуй с чего начать, какой минимум для байтоёбства нужен? Мне для начала хотя бы общее представление заиметь. Я его имею, конечно, но сейчас оно очень туманное.

Думаю надо будет еще в каких-нибудь C, C++ тредах спросить
Аноним 18/06/20 Чтв 20:53:49 #434 №1727581 
>>1727564
>>1727564
Задача кстати описать протокол сериализации указанного формата данных в бинарник. Написать энкодер и декодер.
Мне кажется для этого какая-то своя отдельная тема должна быть. Или толстые разделы в бородатых книгах, если уже всякие теории типов есть.
Аноним 18/06/20 Чтв 21:03:48 #435 №1727583 
>>1727581
А зачем?
Скорее всего уже есть готовые сериализаторы в бинарные данные.
Аноним 18/06/20 Чтв 21:56:40 #436 №1727607 
>>1727583
Ну типа нужно чтобы это было максимально универсальным, легким и дешевым на преобразование из существующих форматов данных.
Аноним 18/06/20 Чтв 22:00:35 #437 №1727609 
>>1727607
Главный вопрос - зачем?
Ты ведущий инженер гугла, которого попросили разработать алгоритм новый?

Выглядит больше, как тестовое задание,чтобы ты запарился
Аноним 18/06/20 Чтв 22:03:34 #438 №1727610 
>>1727609
Да хуй знает. Мне тоже так кажется, но задача вполне осязаема. А вопросы "зачем" скорее не ко мне. Я бы тоже использовал что-то готовое.
Аноним 18/06/20 Чтв 22:29:34 #439 №1727631 
>>1727609

Да потому что докуя проприетарных бинарных форматов, готовую лиьу для которых куй найдешь. И даже полноценную доку куй найдешь. А кто писал этот сраный формат, давно за это говно сослали в Сибирь.

>>1727610

Доки по unsafe и вперёд. Нужно просто взять кусок памяти и заставить гошечку думать, что это структура. Дальше все просто.
Аноним 18/06/20 Чтв 22:34:33 #440 №1727634 
>>1727631
А как же информатика и лучшие практики. Например как обеспечить валидацию целостности данных, как лучше указывать типы, как разделять данные. У меня куча вопросов.
Аноним 18/06/20 Чтв 22:54:08 #441 №1727650 
>>1726883
разочаровываешь

>>1727631
> Доки по unsafe и вперёд
ты какой-то ебнутый

>>1727634
от тебя там скорее всего хотят что-то такое https://medium.com/learning-the-go-programming-language/encoding-data-with-the-go-binary-package-42c7c0eb3e73

ну или руками навелосипедь fixed-size заголовок, в нем длина тела сообщения, а дальше уже сообщение можно как угодно сериализовать
Аноним 18/06/20 Чтв 23:10:24 #442 №1727659 
>>1727634

Так задача какая? В,ы долбоебы, очередной формат изобретаете? Или нужно декодить/энкодить в уже разработанный по докам?
Если изобретаете - всерьез обсуди накуя. В любой области есть стандарты и протоколы под них.
Если чужой, то это все есть, не еби себе мозги. Я говорю, самое простое, взять память и отобразить ее на структуру. Все так делают, и это даёт максимальный перфоманс. Но, если хочешь убить производительность, бери ссылку второго Антона.
Аноним 19/06/20 Птн 06:37:31 #443 №1727795 
>>1727650
Тоже находил эту статью, так и не успел прочитать, но судя по всему это очень близко к тому, что мне нужно.
Спасибо.
>>1727659
> Если изобретаете - всерьез обсуди накуя.
Я уже пытался, несколько раз предлагал другие варианты, но все тщетно.
> Я говорю, самое простое, взять память и отобразить ее на структуру.
В том то и дело что у меня базовых знаний не хватает чтобы это сделать качественно.
Аноним 19/06/20 Птн 09:19:23 #444 №1727833 
>>1727795

Прям загугли "iso protocol + название предметной области". И скинь найденный стандарт лиду и cc архитектору.
Аноним 19/06/20 Птн 16:42:25 #445 №1728171 
Куколдский язык для куколдов. Там СЖВшники решили, что этот ваш ПЩ огорчает негров https://habr.com/ru/news/t/505734/ так что вы давайте, это, на колени.
Аноним 19/06/20 Птн 19:02:42 #446 №1728310 
>>1728171
ты еще про баннер-попрошайку забыл https://golang.org/
Аноним 20/06/20 Суб 00:30:15 #447 №1728597 
>>1727833
Хотел бы я работать в том месте где такие люди есть. Короче протокол нужен для передачи таблиц из одной бд в другую с небольшим набором данных.

В принципе это интересная практика.
Аноним 20/06/20 Суб 01:30:30 #448 №1728627 
>>1728597
Раз не знаешь, делай в лоб и решу проблемы по ходу поступления.
Типы пронумеровать, целостность контрольной суммой, можно коды рида-соломона
Аноним 20/06/20 Суб 01:32:28 #449 №1728631 
>>1728597
Алсо, protobuf как раз твою задачу решает, можно его взять, а можно просто почитать, как он сериализует и адаптировать. Протобуф как раз и есть бест практис в гомирке
Аноним 20/06/20 Суб 16:19:37 #450 №1729010 
А вы тут все чисто для себя приколы пилите всякие? Работы же на говноланге не существует почти.
Аноним 20/06/20 Суб 19:38:46 #451 №1729154 
>>1729010
О чём ты?
Уже два раза менял работу даже без удалёнки, фуллтайм-гошник, зарабатывает 300к до налогов, в последний раз собеседовался в 6 компаний, получил 3 оффера
Аноним 20/06/20 Суб 20:03:17 #452 №1729169 
>>1727581
protobuf, thrift, flatbuffers
Аноним 20/06/20 Суб 20:06:30 #453 №1729173 
>>1729010
Её дохуя к сожалению
Аноним 20/06/20 Суб 20:19:21 #454 №1729188 
>>1726591
Угловые скобки уложняют парсинг. К тому же круглые скобки уже есть в d и смотрятся там очень удобно.
Аноним 20/06/20 Суб 20:35:59 #455 №1729208 
>>1729188

Да ваще пох на скобочки.
Аноним 20/06/20 Суб 21:25:43 #456 №1729243 
>>1729208
Спиймав лиспера.
Аноним 20/06/20 Суб 21:45:40 #457 №1729250 
>>1729188
> уложняют парсинг
Если бы создателям компиляторов это реально мешало, они бы делали синтаксис на основе json или xml, так что мимо.
Аноним 20/06/20 Суб 21:52:06 #458 №1729253 
>>1729250
Это реально мешает, примеры можешь спросить в плюсовом треде. В зависимости от стандарта, в плюсах парсинг угловых скобок натурально зависит от пробелов вокруг и если ты не угадал - получишь ошибку компиляции. Или чего похуже.

> они бы делали синтаксис на основе json или xml
Ды ты вообще зелёный походу. Среди языков разметки сложнее чем xml распарсить только html.
Аноним 20/06/20 Суб 22:06:57 #459 №1729259 
>>1729253
> в плюсах парсинг угловых скобок
Потому что лексер был сделан через жопу.

> Среди языков разметки сложнее чем xml распарсить только html.
Кто ж будет писать эти парсеры с нуля? Они давно написаны, достаточно юзануть одну функцию и пройтись по уже готовому дереву.
Аноним 20/06/20 Суб 22:07:21 #460 №1729261 
>>1729250
Как же хочется польскую нотацию в го.
Аноним 20/06/20 Суб 22:11:08 #461 №1729264 
>>1729261
"fmt" import stmt "Hello, world!" Println call fmt mod block main no-args func
Аноним 20/06/20 Суб 22:22:31 #462 №1729277 
>>1729259
Потому что угловые скобки настольно перегружены, что тебе требуется дохуя контекста чтобы их корректно распарсить. И хоть десять раз ебись, у тебя будет жопа вместо лексера.
Аноним 20/06/20 Суб 22:43:26 #463 №1729287 
А генерики только в песочнице?
Или уже можно тащить в петпроджект?
Аноним 20/06/20 Суб 23:00:47 #464 №1729302 
>>1729277
> дохуя контекста
Над этим парсер должен думать, а не лексер. Лексер должен сказать: "угловая скобка". И уже парсер должен думать, шаблон это, операция сдвига или знак меньше.
Аноним 21/06/20 Вск 00:23:45 #465 №1729345 
>>1729287
есть экспериментальная тулза go2go , которая конвертирует твой проект с генериками в стандартную гошку. Поиграться в петпроекте наверное норм, на прод понятно катить рано, ещё могут чего-нибудь пару раз поменять
Аноним 21/06/20 Вск 00:37:54 #466 №1729357 
>>1729345
Боже, звучит как Babel.
Аноним 21/06/20 Вск 00:49:30 #467 №1729362 
>>1729357
Ну так когда прибьют драфт -- впилят в компилятор. А как эксперимент для то чтобы все попробовали и высказались -- самое то. Текущий драфт обратной совместимости особо не ломает
Аноним 21/06/20 Вск 02:33:20 #468 №1729385 
>>1729010
Как там в 2014? Работы дохуя.

>>1729173
Чего в этом плохого?
Аноним 21/06/20 Вск 03:31:41 #469 №1729394 
>>1729385
> Чего в этом плохого?
Очевидно, что не всем нравится Go, и некоторые хотели бы, чтобы он загнулся, и о нём все забыли.
Аноним 21/06/20 Вск 12:26:11 #470 №1729482 
>>1729277
А что насчет квадратных скобок? Они уже используються в мапах, например
Аноним 21/06/20 Вск 15:12:40 #471 №1729627 
Роб Пайк написал лисп на го, перекатываемся.
https://github.com/robpike/lisp
Аноним 21/06/20 Вск 16:28:36 #472 №1729678 
>>1729627
Этот мудила в рабочее время хуйней страдает, вместо работы над гошечкой?!
Аноним 21/06/20 Вск 18:10:39 #473 №1729731 
>>1729394
Шизики какие-то. Когда мне что-то не нравится, я просто прохожу мимо.
Аноним 22/06/20 Пнд 10:27:21 #474 №1730368 
Я правильно понимаю, что в текущем драфте дженериков невозможно написать функцию, которая бы работала для array'ев любой длины? Не говоря уже о том, чтобы и для array'ев и для slice'ов.
Аноним 22/06/20 Пнд 10:55:45 #475 №1730379 
>>1730368
>Я правильно понимаю, что в текущем драфте дженериков невозможно написать функцию, которая бы работала для array'ев любой длины?
А зачем, когда есть слайсы?
Аноним 22/06/20 Пнд 11:58:20 #476 №1730417 
>>1730368
Лол, даже дженерики в конце концов сделали со своим "авторским" видением. Не удивлюсь, что когда завезут эксепшены, они будут выглядеть так:
result = try(handler, function, arg1, arg2)
Аноним 22/06/20 Пнд 12:08:01 #477 №1730428 
>>1729678
Он и над го особо не парился.
Теперь сидите ручками эксепшены перебрасывайте.
Аноним 22/06/20 Пнд 14:20:12 #478 №1730569 
>>1730368
Но ведь в го преобразование массива в слайс бесплатное, ты сейчас до мышей доебался.
Аноним 22/06/20 Пнд 15:01:48 #479 №1730614 
>>1700220 (OP)
Стоит ли учить Go как первый язык? Хочу зашибать 300к/неделя и больше на высоких технологиях. Короче, я не совсем офисную РАБоту хочу, а прикладывать Go к чему-то высокотехнологичному, в производстве каком-нибудь.
С программированием не знаком, вылетел с третьего курса мехмата
Аноним 22/06/20 Пнд 15:39:35 #480 №1730658 
>>1730428

К чему чему, а к этому у меня нет претензий. Ошибка как значение - очень удобная концепция для многопотчного кода.
Аноним 22/06/20 Пнд 15:52:30 #481 №1730673 
>>1730658
То что ты ошибку наделили каким-то контекстом "свойством", как физически это меняет ошибку? Ты начинаешь их хранить в массиве и складировать в базу данных или что?
Аноним 22/06/20 Пнд 16:00:56 #482 №1730679 
>>1730614
С такой мотивацией лучше иди впаривать лохам курсы "как разбогатеть". Программирование - это тяжелый интеллектуальный труд, необходимость работать даже дома, постоянно учить новое и постоянная работа со своими же ошибками, что тяжело психологически.
12 часовая смена на заводе проще, потому что ты можешь стоять, не думать, или даже работать "на отъебись". В "дорогом" программировании ты не можешь думать "на отъебись", сразу хуйня выйдет, и ты должен постоянно, весь день, загружать свой мозг (самый энергозатратный орган, между прочим) на 100%, что очень, очень тяжело. К концу дня ты натурально ощущаешь, что не в силах даже думать о чём-то, просто залипаешь в одну точку и всё (а ещё нужно нагружаться дома, чтобы учить что-то новое, ты понел).
Короче, если ты хочешь "войти в айти" ради бабосиков, то ты быстро вылетишь отсюда, охуев от того, насколько это тяжело и сложно.
А ещё до бабосиков нужно будет доползти, первые года три-пять их будет не особо много.
а как первый язык учи java или c#, го берут вторым или третьим языком к уже имеющейся базе
Аноним 22/06/20 Пнд 16:30:21 #483 №1730690 
>>1730679
> а как первый язык учи java или c#
Лїл
Аноним 22/06/20 Пнд 18:47:32 #484 №1730742 
>>1730690
why
Аноним 23/06/20 Втр 01:58:31 #485 №1731085 
>>1730614
Если ты так ставишь вопрос - то точно нет.
Ты сначала выбери область, посмотри какие там используются инструменты и почему, и изучай их
Аноним 24/06/20 Срд 11:36:13 #486 №1732405 
Тут какое-то время назад спрашивали по GUI

Hands-On GUI Application Development in Go (2019)

https://dropmefiles.com/Nvupy
Аноним 24/06/20 Срд 15:14:26 #487 №1732608 
Уже листал? Имеет смысл?

Вроде как уже появился fyne, который прям приличный фреймворк. И смотреть на биндинги как-то странно.
Аноним 25/06/20 Чтв 09:14:43 #488 №1733308 
Digitalocean выпустили свою книгу по го.
https://assets.digitalocean.com/books/how-to-code-in-go.pdf
Аноним 25/06/20 Чтв 10:47:35 #489 №1733358 
>>1733308

прикольно, она вышла уже устаревшей

а вообще из интереса полистал - это ребята из https://www.gopherguides.com пиарятся, не создавая никакой дополнительной ценности; лучше читайте go tour, офицальную документацию и исходники - пользы будет больше.
Аноним 25/06/20 Чтв 11:47:12 #490 №1733416 
>>1732608
Полистал, позапускал примеры. Мне эта тема не то чтобы супер интересна, но прочитав по диагонали понял, что все эти фреймворки плюс минус об одном и том же.
>Вроде как уже появился fyne
Про него там тоже есть
Аноним 25/06/20 Чтв 11:50:13 #491 №1733420 
>>1733358
>исходники
Ну хуй знает, всякие runtime и ос-специфик вещи требуют довольно хорошего понимания работы OS чтобы вообще понимать что, КАВО и куда. Не говоря уже о том, что там код не являеться эталоном читаемого кода.
Аноним 25/06/20 Чтв 12:13:35 #492 №1733463 
>>1733308
Ребятам, маркетологам, уже надо объяснить что язык больше не на волне хайпа. хорошо что книга еще не по руби
Аноним 25/06/20 Чтв 21:27:33 #493 №1733987 
>>1733463
Ну так иди объясняй, а то сидишь здесь как фуфел.
Аноним 25/06/20 Чтв 23:57:19 #494 №1734066 
22222222222222222222222222222222222.jpg
>>1733987
А ты чего такой злой?
Аноним 26/06/20 Птн 00:30:52 #495 №1734078 
>>1734066

А какие языки дозволяют и как разруливают циклические импорты?
Аноним 26/06/20 Птн 07:32:22 #496 №1734226 
>>1733358
А что именно там устарело?
>>1733463
Ну как не на волне, всё больше компаний начинают использовать его, зарплаты всё выше и одни из самых высоких в сравнении с другими языками, а после выхода 2 версии так вообще индустрия кипяточком писать начнёт.
Аноним 26/06/20 Птн 08:09:43 #497 №1734238 
>>1734078
Все нормальные языки разруливают циклические импорты, они просто не импортируют одно и тоже два раза.
Аноним 26/06/20 Птн 08:10:49 #498 №1734239 
>>1734226
>а после выхода 2 версии
Стоит только подождать и потерпеть.
Аноним 26/06/20 Птн 08:17:08 #499 №1734245 
>>1734238

Какие нормальные?
Питон, Шарп, луа, это то, что сходу пришло в голову.

Да и вообще, если появились циклические импорты, то программист - говноед.
Аноним 26/06/20 Птн 14:47:43 #500 №1734509 
>>1734245
>Питон, луа
>нормальные языки
Аноним 26/06/20 Птн 14:59:20 #501 №1734514 
>>1734245
> Да и вообще, если появились циклические импорты, то программист - говноед.
Ага, ведь не-говноед предпочтёт держать овер 9000 файлов в одном пакете.
Аноним 26/06/20 Птн 15:37:51 #502 №1734546 
>>1734514

Если две сущности зависят друг друга, то они должны быть одной сущностью.
Аноним 26/06/20 Птн 15:39:08 #503 №1734547 
>>1734509

Какие претензии к самому популярному (по некоторым рейтингам) и самому популярному встраиваемогу япам?
Аноним 26/06/20 Птн 16:12:22 #504 №1734583 
Что сейчас в мейнстриме по ковырянию sql (постгрес в частности)?
Аноним 26/06/20 Птн 16:13:31 #505 №1734584 
>>1734583

Sql
Аноним 26/06/20 Птн 17:07:27 #506 №1734629 
>>1734547
>Какие претензии к самому популярному
>(по некоторым рейтингам)
Популярен он только по поиску, а поиск дергают либо студенты либо вкатывальщики. То есть, инфоцыгане, на хайпе ИИ и простоты языка, просто взяли и продали для хочух-в-айти это гуана. ну и студентам тоже, потому что позволяет хоть что-то объяснить и главное показать на минимальном уровне за счет фасадных либ

>Какие претензии к ... самому популярному встраиваемогу япам?
Что этот язык огрызок и годиться только для встраивания?
Что
Аноним 26/06/20 Птн 17:08:23 #507 №1734630 
>>1734583
Мускуль как был, так и остался так и будет в будущем.
Аноним 26/06/20 Птн 17:22:46 #508 №1734640 
>>1734630
Да я про тулзы
Самый популярный pq неактуален, про орм уже успел начитаться негатива
Попытался в reform, но ничего не понял
Аноним 26/06/20 Птн 17:36:57 #509 №1734657 
>>1734640
plain SQL
Аноним 26/06/20 Птн 18:20:02 #510 №1734689 
>>1734640

Sql + pgx
Аноним 26/06/20 Птн 18:21:34 #511 №1734690 
>>1734689

А вообще, меня заебал sql и клеить запросы. Хочу написать свой orm с покером и эскортницами.
Аноним 26/06/20 Птн 19:03:27 #512 №1734726 
>>1734239
Ну да, скоро уже релиз будет.
sageАноним 27/06/20 Суб 03:19:11 #513 №1735007 
Заебали тащить ORM в Go. Запомните, не принято здесь их использовать, и точка. Как и MVC. GORM и прочее существует только потому, что их написали.
Аноним 27/06/20 Суб 05:16:24 #514 №1735013 
>>1735007
И чё ты сделаешь?
Аноним 27/06/20 Суб 06:53:19 #515 №1735024 
Screenshot2020-06-2522-51-10.png
Сап, ГОспода.
Такой вопрос. Можно ли переписать этот фрагмент пизже?

Сам из пайтона.
Аноним 27/06/20 Суб 07:36:47 #516 №1735033 
>>1735024
Всё нормально написано.
Аноним 27/06/20 Суб 08:56:15 #517 №1735052 
>>1735024

viper
Аноним 27/06/20 Суб 08:56:46 #518 №1735053 
Когда там уже дженерики и контракты?
Аноним 27/06/20 Суб 09:59:33 #519 №1735061 
>>1735053
Завтра в 20:00.
Аноним 27/06/20 Суб 12:33:45 #520 №1735119 
>>1735024
Ошибки это значения, наслаждайся
Аноним 27/06/20 Суб 15:06:39 #521 №1735202 
>>1735024
Заметь, что у тебя в первом случае вызывается os.LookupEnv, а потом os.GetEnv. В первом случае у тебя есть проверка на то, что переменную засетили, во втором нету. Значит во втором и дальше случаях нет смысла проверять if !ok{}.
Либо везде меняй на os.LookupEnv или везде удаляй этот блок с if !ok{}

Также ты можешь заменить fmt.Printf() ,os.Exit(1) на log.Fatalf()
Аноним 27/06/20 Суб 18:40:42 #522 №1735350 
>>1735024
контекст с таймаутом сделай, а в остальном - идиоматичный код, все так, но есть куча готовых библиотек, которые умеют env маппить на конфиг - поэтому можно сделать конфиг, у него метод типо GetURI, может быть оно тебе и не надо
Аноним 28/06/20 Вск 15:25:32 #523 №1735967 
>>1704267
Ебать ты говнокод нахуярил. Я уже не помню конкретно, но решение не больше, чем в строчек 5 дополнительных вкладывается. Там же для долбаебов написано как это делать.
Аноним 28/06/20 Вск 17:47:39 #524 №1736058 
НУ ЧО. ГДЕ НОВЫЙ ТРЕД?
Аноним 28/06/20 Вск 18:40:39 #525 №1736090 
>>1736058
до го2 нельзя
Аноним 28/06/20 Вск 20:30:30 #526 №1736182 
ПЕРЕКАТ
>>1736180 (OP)
>>1736180 (OP)
>>1736180 (OP)
>>1736180 (OP)
>>1736180 (OP)
ПЕРЕКАТ
comments powered by Disqus

Отзывы и предложения