Программирование

Ответить в тред Ответить в тред
Тред про лучший в мире язык GO №10 (юбилейный) /go/ Аноним # OP 24/05/20 Вск 16:56:24 17002201
g1.jpg 95Кб, 500x713
500x713
g2.png 301Кб, 500x499
500x499
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 17002252
А разве не будет в go 2 обратной совместимости с go 1 ?
Аноним 24/05/20 Вск 17:04:08 17002473
>>1700225
В семвере разработчик не обязан сохранять обратную совместимость при смене мажорной версии.
Аноним 24/05/20 Вск 17:07:08 17002514
>>1700225
На данный момент - неизвестно, но было заявление, что возможно - да.
Аноним 24/05/20 Вск 17:14:26 17002635
>>1700200 →
Я так-то так и делал, только в слайс сохранял, т.к. в задаче сказано
>числа могут содержать до 1000 цифр
Пока писал - понял где обосрался:
echo 102 201 | go run solution.go
У меня выдает 3
Аноним 24/05/20 Вск 17:23:35 17002726
в прошлом спрашивал про аллюр и аналоги для Го, есть какие-то либы с количество звезд больше 15?
Аноним 24/05/20 Вск 17:48:33 17003017
>>1700247
А релизы голанга точно придерживаются семвера? То, что в модулях принят семвер, ещё ничего не значит.
Аноним 24/05/20 Вск 17:58:07 17003178
>>1700301
>А релизы голанга точно придерживаются семвера?
А кто их знает, мажорная версия не менялась еще.
Аноним 24/05/20 Вск 19:20:16 17003989
Зарегался на озоне, а на почте пусто. Вам долго приходил ответ?
Аноним 24/05/20 Вск 19:24:08 170040510
Аноним 24/05/20 Вск 20:45:37 170051811
>>1700398
А мне три, кто каналы решил?
Аноним 24/05/20 Вск 20:55:40 170052112
Кто каналы не могет решить го в тележку @Go2Ch конфа
Аноним 24/05/20 Вск 21:31:54 170055013
>>1700521
Добавил всех оттуда в блеклист.
мимо hr озона
Аноним 24/05/20 Вск 22:27:21 170062814
Screenshot 2020[...].png 281Кб, 748x1504
748x1504
Аноним 25/05/20 Пнд 00:15:20 170087915
>>1700521
У меня есть ответ про каналы, но где задача-то?
Аноним 25/05/20 Пнд 00:47:11 170091616
>>1700521
пересоздал группу залетайте.
Аноним 25/05/20 Пнд 00:47:32 170091717
Аноним 25/05/20 Пнд 01:54:10 170098118
Что там у вас. Подгружаемые в рантайме модули до сих ор не реализовали?
Аноним 25/05/20 Пнд 03:17:28 170103819
Аноним 25/05/20 Пнд 03:26:31 170104220
>>1700521
Уже решили про каналы
Аноним 25/05/20 Пнд 03:31:54 170104521
>>1700981
Тут динамическую линковку-то ненавидят, а ты про рантайм.

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

Дык есть. Не супер удобно, но систему плагинов сверять можно.
Аноним 25/05/20 Пнд 08:50:14 170114825
Аноним 25/05/20 Пнд 09:26:55 170116726
>>1701042
Нихуя не решили, ответа как будто и нет
Аноним 25/05/20 Пнд 09:31:42 170117327
>>1701167
Меня, кстати, напрягает лог компиляции:
stdout:
'/temp/compiling/source' cannot be extracted via extract ()
/bin/sh ./build.sh


stderr:
Аноним 25/05/20 Пнд 09:42:46 170118428
image.png 217Кб, 921x553
921x553
>>1701173
А меня, что функция два раза запускается
Аноним 25/05/20 Пнд 09:44:49 170118829
>>1701184
Это stderr во время исполнения, если я не ошибаюсь. А то что я скинул - это то, что мне выдает если нажать на "Лог компиляции"
Аноним 25/05/20 Пнд 09:45:23 170118930
Поясните почему гоуланг, а не хаскелл/скала/раст/или пайтон компилируемый to С? гоуланг же в принципе даже не самый быстрый.
Аноним 25/05/20 Пнд 09:45:24 170119031
>>1701188
Во всех задачах такой лог почти
Аноним 25/05/20 Пнд 09:45:59 170119432
>>1700220 (OP)
>2 пик
А что, в этом вашем Го нет дженериков?
Аноним 25/05/20 Пнд 09:46:46 170119533
>>1701188
Хотя да, чекнул, странная херота
Аноним 25/05/20 Пнд 09:48:09 170119734
>>1701190
В остальных задачах у меня там нихера:
stdout:


stderr:
Аноним 25/05/20 Пнд 09:54:35 170120335
>>1701189
>хаскелл/скала
Редко используются
>раст
Не факт, что взлетит, замудренный синтаксис
>гоуланг же в принципе даже не самый быстрый.
Зато просто в обучении
Аноним 25/05/20 Пнд 09:55:41 170120636
>>1701197
Я с 50 попытки начал задумываться что проблема на стороне ОЗОН
Аноним 25/05/20 Пнд 10:05:06 170122237
>>1701206
Чекните "объявления жюри", вдруг там написано, что тест сломан и тд.
Ну и вообще, поищите емейлы оргов, вдруг чего ответят.
Аноним 25/05/20 Пнд 10:09:19 170122938
>Несколько предложений и замечаний по задачам Е и F, которыми вы поделились, мы не смогли отловить на внутреннем тестировании задач. Вместе с авторами задач работаем над тем, чтобы прислать ответы как можно быстрее. Но сейчас понимаем, что нам нужно время, чтобы дать вам максимально полезные ответы по заданиям. Ниже будут текущие советы.
>Задание E необходимо решать на Go. По техническим причинам, тестирующая система выдает ошибку во всех случаях (программа считывает слишком много или мало чисел, вызов функции блокирующий и т.д.) кроме:
>IL = Idleness limit = функция работает слишком медленно
>OK = программа верно работает
Аноним 25/05/20 Пнд 10:10:36 170123139
>>1701222
Я писал им уже. жду ответ
Аноним 25/05/20 Пнд 10:11:06 170123340
>>1701231
А что именно ты им написал?
Аноним 25/05/20 Пнд 10:59:49 170127941
Аноним 25/05/20 Пнд 14:22:00 170164142
Аноны, какие задачи на го делают? Сам я плюсовик базовый пришел тимлид и отменил с++, Python, ruby и perl. Сказал - теперь все будет на пхп и вот мы переписываем код с божественных языков на пхп, кроме того стали вебельщиками. Планирую на го спрыгнуть. Питон - за язык не считаю, его и так все знают, он что-то вроде помошника, а не языка.
Аноним 25/05/20 Пнд 14:24:29 170164643
Школу гоу я проебал, а что там за тест был?
>>Для Python, PHP, Node.js, Java или C# разработчиков с опытом больше года.
пиздец, а я на ++ писал и куда бля мне теперь?
Аноним 25/05/20 Пнд 14:44:22 170169144
>>1701641
>пришел тимлид и отменил с++, Python, ruby и perl.
Охуенный тимлид, лол.
Ладно еще перловку переписать на нормальный язык - это вполне нормальное решение. Код, который изначально на плюсах написан переписывать на язык с GC - явно деграднул у вас проект, конечно. А отруби и змеюку на язык для РазНоРабочих - это вообще ход гения, просто шило на мыло, только при этом наевшись говна. Я бы хер забил на этот проект сразу же.
> Питон - за язык не считаю, его и так все знают, он что-то вроде помошника, а не языка.
Так все говорят, но как только начинаешь на собеседовании спрашивать что-то сложнее хелоуворолда - все сразу сыплются
Тоже самое и про баш говорят, но по итогу мало кто может написать нормальный скрипт
Аноним 25/05/20 Пнд 15:03:05 170173745
>>1701691

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

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

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

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

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

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

Проходил мимо, решил спросить, думал тут знаюшие. ))
Аноним 25/05/20 Пнд 17:30:57 170205554
>>1701194
И эксепшенов нет. И классов нет. И полиморфизма нет. По семантике это немного продвинутая сишка.
Аноним 25/05/20 Пнд 17:58:57 170210955
Может кто скинуть тестовое от школы озона?
Поступать к ним лень, я и так все знаю. Но интересно, откуда нытье и здесь и на Хабре.
Аноним 25/05/20 Пнд 18:07:39 170212556
>>1702048
В го удобная работа с асинхронными задачами. Полезно на серверах, всяких утилитах, которые работают с io, например. Удобен с точки зрения админа - из зависимостей зачастую только libc в системе, и то - опционально.
Аноним 25/05/20 Пнд 18:09:07 170212957
>>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 170213258
Только проблема в том, что решение "в лоб" - падает по таймауту, а остальные решения со спавном горутин для параллельности - падают на тестах.
Аноним 25/05/20 Пнд 18:13:40 170213559
Научите пользоваться документацией по гошке. Вот есть интерфейс io.Write. Как найти все типы, что поддерживают вот этот интерфейс?
Аноним 25/05/20 Пнд 18:20:30 170214660
>>1702125
Зачем гоуланг если есть python to C-code?
Аноним 25/05/20 Пнд 18:45:44 170218261
>>1702146
Не нравиться - не ешь
Аноним 25/05/20 Пнд 18:47:49 170218662
Аноним 25/05/20 Пнд 18:57:19 170220663
>>1702135
Поставь Goland, он подсветит
Аноним 25/05/20 Пнд 19:04:14 170222964
Аноним 25/05/20 Пнд 19:29:25 170227365
>>1702129
Больше вопросов, а решение на три строчки.

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

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

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

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

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

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

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

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

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

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

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

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

Но, блин, это продакшн извращения, их надо делать по ТЗ. Когда известно примерно, что там может быть в каналах, характер вычислений и т.п. Делать решение под неизвестную задачу несерьёзно. Особенно когда идёт набор на курсы по языку, на котором тебе это устойчивое хайлоад-решение надо реазизовать.
Аноним 25/05/20 Пнд 20:58:08 170238276
>>1702380
Да там первый же тест не проходится, при этом все входные и выходные данные логятся на раз (они никакие не крайние) и правильность выполнения очевидна.
Офк, тесты на всю хуйню понаписаны уже на локалке и все до дыр проверено, ни прибавить ни убавить.
Аноним 25/05/20 Пнд 20:58:27 170238377
>>1702380
не понял, как ты через канал будешь синхронизировать порядок
Аноним 25/05/20 Пнд 21:37:41 170241778
Аноним 25/05/20 Пнд 21:47:07 170243579
>>1702129
результаты в out должен передаваться в том же порядке, как приходят в in, или не обязательно?
Аноним 25/05/20 Пнд 21:49:05 170243880
>>1701824
В комментах на хабре всегда сидят хейтеры прямо как здесь, почитай там еще обсуждения раста.
Аноним 25/05/20 Пнд 21:51:55 170244581
>>1702383
Короче, идея такая. Создаётся структура-"задача". В ней два инта и одноразовый канал, куда будет положен результат.

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

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

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

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

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

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

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

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

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

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

Аноним 25/05/20 Пнд 22:15:53 170248289
>>1702146
Как минимум чтобы типы в рантайме не ловить
Аноним 25/05/20 Пнд 22:17:15 170248490
>>1702476
Абсолютно типовая, как и начать отдавать поток unordered вместо буфферизации
Аноним 25/05/20 Пнд 22:17:40 170248591
>>1702481
Slice вполне себе безлимитный
Аноним 26/05/20 Втр 00:06:48 170261092
У кого-то получилось решить задачу?
Аноним 26/05/20 Втр 00:36:00 170263793
ощем ситуация на озоне такая
ребята из @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 170263894
>>1702610
А что там надо, чтобы добраться до тестового задания и тестовой платформы?

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

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

Но на порядок интереснее и лучше оплачиваемых.
Не хочу я больше ни одной "хайлоад" платформы на Джанго видеть.
Аноним 26/05/20 Втр 11:06:22 1702814100
>>1702754
>"хайлоад" платформы на Джанго видеть.
fastapi
Аноним 26/05/20 Втр 11:18:16 1702823101
Аноним 26/05/20 Втр 11:52:41 1702846102
>>1702823
это не из разряда хайлоад фреймворков!!
Аноним 26/05/20 Втр 14:10:12 1703008103
Начал смотреть курс по go от мфти
Нихуя не понял, что к чему. Разочаровался, что тупой
Аноним 26/05/20 Втр 14:21:53 1703041104
Аноним 26/05/20 Втр 14:56:31 1703096105
>>1703008
Ну вот и все, не видать тебе престижной работы фрилансером за 3,6к секунд/час
Аноним 26/05/20 Втр 15:13:17 1703136106
>>1703096
Престижная работа хрелансером может быть только у фронтов да фулстек говноделов, гошники это крупные компании и узкая бэковая специализация
Аноним 26/05/20 Втр 17:23:48 1703363107
Тимлид предлагает делать хайлоад бекенд на ноде, какие подводные?
Аноним 26/05/20 Втр 18:01:19 1703429108
>>1703363
Это даже не подводные не подводные, все на поверхности - у тебя тимлид дурак.
Аноним 26/05/20 Втр 18:08:50 1703446109
>>1703363
Земля ему пухом.
Пиши по собственному
Аноним 26/05/20 Втр 18:11:23 1703450110
>>1703363
Багов будете ловить, но хотя бы не так тормозно как гоу.
Аноним 26/05/20 Втр 18:13:06 1703452111
>>1703363

Никаких. Хайлоад это про архитектуру, а не язык.
Аноним 26/05/20 Втр 21:09:13 1703635112
>>1703363
Не худшее решение, если обмажитесь typescript-ом и линтером - может даже нормально получиться
>>1703450
Толсто
Аноним 26/05/20 Втр 21:16:15 1703645113
>>1703635
>если обмажитесь typescript-ом и линтером
В том и дело, что походу обычно не обмазываются. Вообще нода производит впечатление места, куда фронты приходят тяп ляп рад говно по примерам с доков сделать. У бекендщиков от этого карточного домика агрессия и зубы скрипят. Так то можно вообще на чем угодно сделать хороший бек, кто же спорит, но из увиденных поделок фронтов на ноде - этот шанс не велик. Впрочем я живого бекендщика (именно бекендщика с опытом, а не вчерашнего фронта) пока еще и не видел. Хз почему такое решение у тимлида кроме того, что он ранее чтото радом ебанул на ней и его теплое чувство не покидает, ну и нода по правда довольно шустрая, только это не критично важно для хайлоада само по себе.
Аноним 26/05/20 Втр 21:17:22 1703646114
>>1703645
>живого бекендщика на ноде
фикс
Аноним 26/05/20 Втр 21:26:29 1703657115
>>1703645
>шустрая, только это не критично важно для хайлоада
Это не критично только если всё-всё distributed и webscaled. Но в этом случае проблем будет столько что сосание нодежысы померкнет на этом фоне.
Аноним 27/05/20 Срд 03:33:47 1704002116
для чего нужен вообще го? какие программы в нём пишут?
Аноним 27/05/20 Срд 03:45:07 1704005117
>>1704002
Микросервисы и оркестрацию. А также все средства малой механизации потребные в хозяйстве, коим несть числа в любом стартапчике.
Современные bash-портянки силами низкоквалифицированного персонала.
Аноним 27/05/20 Срд 05:44:28 1704022118
>>1703635
>>1703645
Будет TS и линтер. Предлагает потому что у него несколько лет опыта бекенда на ноде и потому что тут много людей с опытом JS/TS, много бывших фронтов. В контору его взяли в прошлом году сениором и сделали тимлидом не так давно. Сам я околомидл и как раз перекатился в го из фронтенда.
Аноним 27/05/20 Срд 06:21:11 1704027119
>>1704022
Значит правильно предлагает. Что знаете на том и делайте.
Аноним 27/05/20 Срд 08:12:35 1704045120
Какой редактор кода вы используете? Я пока сижу на саблайме. А вы? Только не надо предлагать жирны идеешки, электронные перделки.
Аноним 27/05/20 Срд 08:22:38 1704046121
Аноним 27/05/20 Срд 08:29:32 1704048122
Аноним 27/05/20 Срд 08:45:16 1704053123
>>1704048

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

Отдельные проблемы бывают, но это мелочи. Память непринципиально, все равно жрет в разы меньше идеи.
Аноним 27/05/20 Срд 10:46:10 1704110126
Аноним 27/05/20 Срд 10:47:37 1704112127
>>1704110
Всем привет!
Как обещали, высылаем следующую партию ответов на вопросы.
1. Поступить в школу могут разработчики из любого города и региона. На момент отправки этого сообщения на школу откликнулся 3931 человек. Приоритет при отборе мы отдадим тем, кто прошел успешно все этапы отбора и готов после обучения стать сотрудником Ozon, писать на Go. Программа обучения будет проходить онлайн до момента пока не наладится эпидемиологическая обстановка. Для тех, кто пройдет в школу, но проживает не в Москве, будет организовано обучение онлайн.
2. В школу позовем около 40 человек.
3. Мы ознакомились со всеми замечаниями относительно формулировки задач. Мы считаем тот текст условий, который опубликован в задачах на текущий момент исчерпывающим. С момента начала соревнования мы внесли комментарии про формат вывода по задаче Е, разъяснения о том, как проще решить задачу F. В дополнение к этому, мы внесли поправку в лимит по времени по задаче F – теперь лимит 1,5 секунды вместо 1 секунды.
4. Проанализировав ваши посылки по задаче Е, мы пришли к выводу, что тест по этой задаче составлен слишком обще и широко. В данном случае одного теста недостаточно. Некоторые пограничные ситуации принимаются как корректные. Ошибка в системе, которая выдается в ответ на решение участника не всегда предсказуема. Доработать это в режиме реального времени у нас нет возможности: есть риск потерять уже существующие решения. Это мы будем прорабатывать уже после завершения отбора. Сложности связаны также с тем, что Go новый язык для платформы, Make как компилятор был добавлен по нашей просьбе, чтобы обработать решения задачи на Go.
5. Участниками отбора выгружен в сеть из Я.Контест тест по этой задаче. Написано и активно обсуждается несколько алгоритмов решения задачи в чатах, на форумах и т.п. Мы будем расценивать любое решение с использованием сторонних скриптов как читерское и не готовы его засчитывать. Для справедливости отбора все решения, которые поступят по задаче «Е», будут проходить код-ревью дополнительно к уже существующим этапам отбора. До момента написания чит-скрипта нами было получено 32 корректных решения этой задачи. Отборочные соревнования не предполагали никакого пентеста системы, поэтому просим вас добросовестно отнестись к решению задач отбора. Мы по-прежнему принимаем решения этой задачи на Go.
6. Поступает много писем с просьбой ответить на вопрос "что не так у меня в коде" или дать подсказку, как решить задачу. Мы не можем давать ответы на вопросы такого типа, так как у всех участников должен быть одинаковый доступ к информации об условиях.
7. Просим всех, кто не указал в качестве логина свои фамилию и имя или почту, а также решил три и более задач, прислать свой логин на go@ozon.ru. В противном случае мы не сможем соотнести ваш результат с профилем участника.
До связи!
go@ozon.ru
Аноним 27/05/20 Срд 11:02:56 1704121128
>>1704112
>32 корректных решения этой задачи
Как эти 32 пидора это сделали, хуле молчат.
Аноним 27/05/20 Срд 14:11:32 1704267129
20190929095249.jpg 366Кб, 1920x938
1920x938
Есть шансы на вкат в Go?
Аноним 27/05/20 Срд 14:44:56 1704296130
Почему выбираете go вместо православных java, c# итс? Говорят java медленный, он не медленный, он съедает память как сумасшедший, но не медленный.
Аноним 27/05/20 Срд 14:51:55 1704306131
>>1704121
алгоритмические гении)
на практике же один фиг программисты на память все не помнят, а используют сниппеты/гуглят как это уже было реализовано.
Аноним 27/05/20 Срд 14:56:45 1704313132
>>1704296
> c#
Но ведь Go не для написания гуёв, а для бекенда.
Аноним 27/05/20 Срд 15:04:53 1704320133
>>1704296
>Почему
Потому что хайпово, модно, кучеряво, коньпелируется to C-code, резкий как C-code.
Пайтон тоже кстати коньпелируется to C-code, но куда там ему до гоУ с хипстерами и капуччина))
Аноним 27/05/20 Срд 15:05:26 1704322134
>>1704313
>> c#
>Но ведь Go не для написания гуёв, а для бекенда.
>
C# сейчас так отдрючили в Microsoft что на бэкенде он вообще всех по скорости имеет.
Аноним 27/05/20 Срд 15:10:16 1704327135
IMG202005271509[...].jpg 175Кб, 1080x1004
1080x1004
>>1704322
Картинко отклеилось
Аноним 27/05/20 Срд 15:15:02 1704331136
IMG202005271514[...].jpg 250Кб, 1080x1425
1080x1425
>>1704327
Взялись за производительность прям.
Аноним 27/05/20 Срд 15:20:25 1704336137
>>1704322
Если написать бекенд на сях, будет ещё быстрее, но это не делает си языком для бекенда.
Аноним 27/05/20 Срд 15:28:00 1704344138
>>1704336
Нафига, если сабж треда и >>1704320
Такие вещи для того и лепят.

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

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

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

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

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

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

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


Аноним 27/05/20 Срд 16:57:38 1704448145
2020-05-27 16-5[...].mp4 1908Кб, 1324x868, 00:00:25
1324x868
>>1702129
Я сделал, переписывайте быстрее, пока в Озоне места еще есть.
Аноним 27/05/20 Срд 17:10:10 1704468146
>>1704448
Там всего 40 мест, а приняли участие 4000 вкатунов.
Аноним 27/05/20 Срд 17:12:07 1704469147
>>1704448
Это суммирование двух массивов?
мимокрок
Аноним 27/05/20 Срд 17:24:52 1704475148
>>1704469
Это динамическая обработка динамически поступающих данных.
Есть два источника (chan1 и chan2) в которых асинхронно появляются данные. Есть общая функция (CommonFunc) которая эти данные асинхронно обрабатывает.
Есть код, который должен получить n-е количество раз данные из двух источников, обработать их общей функцией ,сложить результат и поместить его в общий канал (в данном случае роль общего канала выполняется ConcurrentQueue ).
В результате в основном коде тебе не нужно ожидать последовательного выполнения обработки поступающих данных, ты можешь делать всё что тебе угодно, обрабатывая данные по мере их поступления в общий канал.
Для сравнения, если переписать всё на синхронный код, то время выполнения увеличится в несколько раз, потому что сначала у тебя будут ожидаться данные из первого источника, потом обрабатываться эти данные, потом ожидаться данные из второго источника, потом обрабатываться, и только после этого результат суммируется и добавляется в общий канал. И так несколько раз, в зависимости от первого аргумента.
Аноним 27/05/20 Срд 19:21:17 1704618149
>>1704475
>Для сравнения, если переписать всё на синхронный код, то время выполнения увеличится в несколько раз, потому что сначала у тебя будут ожидаться данные из первого источника, потом обрабатываться эти данные, потом ожидаться данные из второго источника, потом обрабатываться, и только после этого результат суммируется и добавляется в общий канал. И так несколько раз, в зависимости от первого аргумента.
Прямо как в ноде, или асинх пайтоне, только модно!

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

Аноним 27/05/20 Срд 20:38:58 1704712150
>>1704618
>Прямо как в ноде, или асинх пайтоне, только модно!
В твоих нодах и асинх петухоне всё хуячится одним потоком. В шарпе всё делается полноценными потоками, если того требует среда.
Аноним 27/05/20 Срд 21:01:54 1704733151
>>1704399
>Поддались на провокации "го круче", "го быстрее"
Поддались на "го типизированный".
Аноним 27/05/20 Срд 21:03:02 1704737152
Аноним 27/05/20 Срд 21:49:42 1704772153
Труп страуса пилил надстройку над сями, пришел к выводу, что нужны эксепшены. Надкусаное яблоко, или у кого они там купили, пилили надстройку над сями, пришли к выводу, что нужны эксепшены. Я нагуглил еще несколько малоизвестных трансляторов в си и там, где есть, эксепшены подаются как достоинство.

>>1704045
>Какой редактор кода вы используете?
Geany, там вроде даже дебаг сей раньше был. Codelite для сей, а для Golang же вроде вообще что-то свое было реккомендед типа, не помню как называлось, ставил 5 лет назад, оно после установки начинает пэкиджи обшаривать.
Аноним 27/05/20 Срд 22:18:57 1704829154
Аноним 27/05/20 Срд 23:45:44 1704928155
>>1704733
Го настолько типизированный, что interface{} - это норма, nil может неожиданно прилететь в ебало, а при возвращении пары ошибка-значение на два невалидных состояния этой пары забивается хуй. Ведь тип Result это слишком сложно для современного языка.
Аноним 27/05/20 Срд 23:50:34 1704931156
>>1704928
> Result
Ты откуда? Из свифта?
Аноним 28/05/20 Чтв 00:57:47 1704974157
28/05/20 Чтв 01:32:59 1705000158
1516167824862.jpg 49Кб, 665x574
665x574
>>1704336
nginx медленнее. На сях.

>>1704772
Exceptions это единственный zero-cost способ обработки ошибок. А всё о чем C++ это о zero-cost abstractions.
Аноним 28/05/20 Чтв 02:12:57 1705012159
>>1705000
Зачем писать руками, если zero-cost-способ есть?
Аноним 28/05/20 Чтв 03:41:49 1705028160
>>1705012
>Зачем писать руками, если zero-cost-способ есть?
Pike так сказал.
Аноним 28/05/20 Чтв 03:53:11 1705030161
>>1704712
>В твоих нодах всё хуячится одним потоком
>2020
Лол
Аноним 28/05/20 Чтв 04:55:05 1705049162
Аноним 28/05/20 Чтв 10:02:38 1705140163
Аноним 28/05/20 Чтв 11:20:59 1705223164
>>1705000
>nginx
Справедливости ради - это не бекенд. Это фронтенд-сервер. У него задача другая совершенно
Аноним 28/05/20 Чтв 13:49:51 1705567165
>>1704928
И та дикая ситуация, которую ты описал, все еще лучше, чем в питоне.

А в 2020 году, когда у нас есть быстрое железо, мы можем вместо ассемблерного вызова функции делать запрос по сети. И теперь кусок приложения можно написать на го, а кусок - на питоне, даже на котлине можно сделать компонент. Представляешь, как удобно?
Аноним 28/05/20 Чтв 14:14:10 1705591166
image.png 1090Кб, 1000x676
1000x676
>>1705000
>Exceptions это единственный zero-cost способ обработки ошибок.
Exceptions это очень дорого, даже если оно и не будет выброшено код по его обработке останется, на стеке создаются структуры для перехвата и прочее.
Аноним 28/05/20 Чтв 15:36:23 1705684167
>>1705030
Что ты лолкаешь, дурачок? Смешно от того, что насрал себе в штаны и воняешь?
Аноним 28/05/20 Чтв 20:19:43 1706063168
>>1704112
Так они починили тесты в задаче Е или нет?
Если будет 40 человек из почти 4к заявок, то можно хуй забить, выходит. Вероятность попасть невысока, тем более с такими простыми заданиями.
Аноним 28/05/20 Чтв 20:36:32 1706080169
>>1706063
4к дели на 2-3, т.к. я даже две отправил, т.к. думал что система багнула и меня пропустили. Ну и больше половины забила хуй, т.к. менять свой стек на непонятный го мало кто хочет
Аноним 28/05/20 Чтв 20:39:40 1706084170
>>1706080
Скорее больше половины поняли, какого качества будет курс от озона
Аноним 28/05/20 Чтв 20:41:06 1706085171
>>1706084
Ну на курсы только дебики ходят, мне работа нужна
Аноним 28/05/20 Чтв 21:36:03 1706141172
>>1700220 (OP)
Народ, кто офисоблядок и пишет микросервисы на Go. Можете кратко расписать что сейчас в сфере используется, как поднимаете все, чем оркестрируется зоопарк, какие пакеты часто используемые и в целом что желательно знать помимо самого языка?

Я сам разработчик и решил сменить направление деятельности и перейти на Go. Хочется что-то вроде структурированного roadmap, чтобы примерно понимать в какую сторону пердолить. Благодарю.
Аноним 28/05/20 Чтв 21:38:47 1706144173
Аноним 28/05/20 Чтв 21:42:18 1706147174
>>1706144
Отлично, как раз что хотел. Добра, анон :3
Аноним 28/05/20 Чтв 21:46:55 1706152175
>>1706144
Хотя таки от офисобыдла комменты тоже будет здорово услышать
Аноним 28/05/20 Чтв 22:35:47 1706178176
>>1706084
Да, кстати, я тоже теперь думаю, что если они курс вести будут также, как составлены описания задач и вообще всё подготовлено, то на хуй.
Аноним 29/05/20 Птн 05:48:06 1706410177
>>1706152
RethinkDB, etcd, docker, grpc - это то что надо знать лично мне помимо собственно языка.
Если я буду перечислять вообще все технологии, которые у нас используются, это будет он всем и ни о чем
Аноним 29/05/20 Птн 09:11:57 1706443178
>>1706410

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

>>1707132
слепил апи на фреймворке пайтона c нормальным маппером, коньпильнул to C-code, работает резко как C-code, только трудозатрат меньше х10 и без модных кучерявых хайпов.
Аноним 29/05/20 Птн 20:48:53 1707302184
Аноним 30/05/20 Суб 01:08:57 1707595185
Куда С++ тред дели, лишенцы???
Аноним 30/05/20 Суб 01:16:01 1707601186
Зачем нужен Go или C++, если есть JS.
Аноним 30/05/20 Суб 08:56:41 1707730187
Аноним 30/05/20 Суб 09:27:04 1707737188
>>1707132

Я xorm использую, но только для простых запросов. Без орм заебешься вручную запросы клеить для апишек.
Аноним 30/05/20 Суб 11:07:10 1707807189
>>1706522
Она не заброшена, новая версия вышла вот пару месяцев назад
Аноним 30/05/20 Суб 14:44:37 1707962190
>>1707601
>Зачем нужен Go или C++, если есть JS.
Фронтендель, плз
Аноним 30/05/20 Суб 15:47:07 1708037191
>>1707737
А в чем плюсы использования ОРМ?
Из минусов, я вижу следующие:
1) Сложные запросы проще написать руками, чем через ОРМ
2) Ты не знаешь явно, какой запрос отправился в базу
3) Иногда гораздо проще оттестировать запрос напрямую в базе, а потом его перенести в код, чем изначально пытаться его в код писать
Аноним 30/05/20 Суб 16:06:25 1708062192
>>1708037
То что отправилось в БД можно и посмотреть.
Если не используешь ОРМ, то бизнес логика размазывается между твоим языком и sql. Более того, ОРМ страхуют тебя от sql инъекций. SQL еще кстати достаточно плохо комбинируется. SQL позволяют А теперь представь, что у тебя большой объект со множеством ссылочных полей, селект получился сложный, со множеством джоинов и тебе нужно его упаковать в объект. Руками заебешься это делать.
Аноним 30/05/20 Суб 16:18:31 1708086193
Господа хорошие, нужно сделать такую штуку, что то типо pastebin но с автоматическим определением языка. То есть - запостил код (именно код, штука должна уметь отедлять код от текста) и он сам определил тебе что за язык, ну и самое собо уметь держать нагрузку. Чтобы два пользователя одновременно постящих что то не сломали нахуй сервер. Что рекомендуете?
анон 30/05/20 Суб 17:29:23 1708169194
Аноним 30/05/20 Суб 19:32:25 1708349195
Аноним 30/05/20 Суб 19:59:03 1708407196
>>1708062
>Если не используешь ОРМ, то бизнес логика размазывается между твоим языком и sql.
Очень плохо спроектированная бизнес-логика, не делай такую. >Более того, ОРМ страхуют тебя от sql инъекций.
Стандартный sql драйвер позволяет передавать аргументы через плейсхолдеры и этого достаточно. Если очень хочется, в ногу стрельнешь и через орм.
>SQL еще кстати достаточно плохо комбинируется. SQL позволяют
Вообще ничего не понял.
Аноним 30/05/20 Суб 20:58:38 1708530197
>>1708407
ORM только для этого не нужна. Ручками пишешь интерфейсы и реализации репозиториев, внутри собираешь запросы через pgx и sq. Всё, у тебя есть логика хранения данных, инкапсулированная от бизнес-логики (которая вызывает функции вида FindByID, UpdateByID, DeleteByXAndY) и при этом логика хранения кристально чиста, в отличие от этих ваших orm'ок, в которых для того, чтобы построить эффективный запрос иногда приходится бороться с самой orm'кой и всё это ради преимуществ, что не нужно писать руками save/load функции (а они пишутся за 15 минут).
Аноним 30/05/20 Суб 21:00:14 1708532198
Кстати! Отличный аргумент в тему дженериков углядел где-то в комментариях:
> Отлично! Покажете, как на классах (без дженериков) сделать параметрический полиморфизм? После этого можно будет посмотреть на то, как на классах сделать тип, например, вектора, где длина вектора была бы видна в типе, попытка zip'ования двух векторов разной длины привела бы к ошибке компиляции, но при этом можно было бы создать вектор произвольной длины, пришедшей, например, по сети или считанной из файла во время выполнения программы.
Аноним 30/05/20 Суб 21:01:46 1708534199
>>1708169
мне кажется или неосилившая обезьяна пытается сделать тестовое в школу озоновскую ?
Аноним 31/05/20 Вск 00:18:24 1708743200
>>1708169
Еще надеешься пройти отбор в озон?
Занимай очередь, 4001-ым будешь
Аноним 31/05/20 Вск 00:33:22 1708769201
>>1708532
> тип, например, вектора, где длина вектора была бы видна в типе
Я понимаю, что это эталонное нинужно, но кто-нибудь может объяснить, нахуя такой тип нужен?
Аноним 31/05/20 Вск 01:00:17 1708790202
>>1708769
Гибкие контракты для типов, если инициализация переменной прошла успешно, то все использующие ее функции могут не проверять ее значение на валидность.
Аноним 31/05/20 Вск 14:49:56 1709021203
бля, щас бы из жабы 14 в жабу 1995 года перекатываться и кастить сырые типы ручками в 2к21 году
Аноним 31/05/20 Вск 15:52:16 1709098204
>>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 1709238205
>>1709098
Как енум блять тебе поможет такие проверки обойти, долбаеб?
Аноним 31/05/20 Вск 17:45:50 1709241206
>>1709238
Не енум, а компилятор.
Аноним 31/05/20 Вск 18:17:21 1709280207
>>1709241
Что компилятор? Если ты забудешь про дополнительное значение твоего енума - компилятору похуй будет. Не использовал - не значит ошибка.
Аноним 31/05/20 Вск 18:22:01 1709285208
>>1709280
>компилятору похуй будет
Ты скозал? Вполне можно по этому поводу выдать хотя бы ворнинг.
Аноним 31/05/20 Вск 18:31:41 1709289209
>>1709280
Если у тебя switch с возвратом значений- то тут как раз компилятор прекрасно выдает ошибку.
понятно что в го такого нет и не будет
Аноним 31/05/20 Вск 18:33:47 1709292210
>>1709289
В каком языке на неполный свитч енума выдает ошибку, лол? джаве похуй, шарпу похуй. Или ты про плюсы?
Аноним 31/05/20 Вск 18:52:28 1709311211
image.png 49Кб, 851x566
851x566
>>1709292
>джаве похуй, шарпу похуй
>я люблю пиздеть про вещи, которые не знаю.
Аноним 31/05/20 Вск 19:15:11 1709328212
>>1709311
> switch без брейка
> двач, почему я обосpался?
Аноним 31/05/20 Вск 19:22:58 1709336213
image.png 40Кб, 717x575
717x575
>>1709328
Мудило, ты опять пиздишь о вещах которые не знаешь?
Аноним 31/05/20 Вск 19:35:02 1709351214
>>1709336
Да ну, ты троллишь. Я не верю, что джавист настолько тупым может быть. Под вами же сраные тырпрайзы держатся, а ты такую дичь пишешь.
Аноним 31/05/20 Вск 19:45:06 1709365215
>>1709292
В котлине, к примеру.
```
when (enum) {
FIRST_VALUE -> {}
}
```
Аноним 31/05/20 Вск 19:50:03 1709369216
>>1709292
>>1709365
> джаве похуй, шарпу похуй
Они к этому придут, со временем. Я сейчас посмотрел, в расте тоже не компилируется. Все языки, в которых пытаются сделать богатую систему типов, короче.
Аноним 31/05/20 Вск 19:57:12 1709376217
>>1709351
Вот ты дебил. Возьми последнюю версию и провери сам.
Аноним 31/05/20 Вск 20:01:29 1709379218
>>1709376
> последнюю версию
сколько там производств последнюю версию юзают? 0.5 процента?
Аноним 31/05/20 Вск 20:23:33 1709398219
>>1709379
>сколько там производств последнюю версию юзают? 0.5 процента?
А вот и оправдания подъехали.
Кому нужны новые плюшки - используют, кому не нужны могуть хоть на 1.5 сидеть.
Аноним 31/05/20 Вск 20:33:41 1709412220
> срач про енумы
В очередной раз кто-то обнаружил, что в го нет того, что есть во всех нормальных языках?
Аноним 31/05/20 Вск 21:07:21 1709436221
>>1709412
Да :( Надеемся и ждём го2.
Аноним 31/05/20 Вск 21:48:00 1709475222
>>1709436
>ждём
Лучше бы придумали как красиво оформиьть надгробный камень для,кладбища гугл проектов на которые гугл забил хуй
Аноним 31/05/20 Вск 21:49:23 1709477223
Аноним 31/05/20 Вск 21:54:27 1709479224
>>1709475
А что, гугл в го миллиарды вливает что ли? Откажется гугл, сделают некоммерческую организацию, которая будет поддерживать, может даже стандартизируют.
Аноним 31/05/20 Вск 22:20:30 1709501225
>>1709479
ага и будет ебаная легаси параша уровня жакарты.
Аноним 01/06/20 Пнд 15:16:21 1709998226
Поясните, как продумать архитектуру приложения? Вкратце, для той-проекта не нужно читать талмуды про архитектуре. Если что, приложение - блог с подсветкой кода. В данный момент это портянка main.go и веб-интерфейс к ней http.go.
Аноним 01/06/20 Пнд 18:38:37 1710319227
>>1704327
Это хуйня синтетическая, где сверхразумы зачастую просто отдают один и тот буфер с текстом. Т.е. от реальных задач это далеко прости пиздец, и на реальных задачах сишарп выебут. Вот как будет полноценный аналог того же nginx или haproxy со всей функциональностью - тогда и поговорим, а пока нахуй катись со своей CLR-залупой.
Аноним 01/06/20 Пнд 18:38:40 1710320228
>>1709998
>блог
>go
Ты где-то свернул не туда
Аноним 01/06/20 Пнд 18:42:21 1710323229
>>1710320
Потому что не хотят признавать, что го - DSL для микросервисов, а не язык общего назначения.
Аноним 01/06/20 Пнд 19:58:38 1710371230
>>1710320
Ну статическая генерация всего и вся, прикольно же. Не писать жеж для себя какую-то ебанину на микросервисах.
Аноним 01/06/20 Пнд 20:20:28 1710383231
>>1709998
А что тут думать?
Три слоя:
Хэндлеры - тут ендпоинты и валидация
Контроллер - тут бизнес-логика
Репозиторий - тут работа с базой
Аноним 01/06/20 Пнд 21:25:26 1710436232
>>1710371
А нахера?
С задачей блогинга справиться тот же пых
Аноним 01/06/20 Пнд 21:30:17 1710438233
>>1710436
>2020
>писать на пыхе добровольно

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

Зачем ты меня расстроил?
Чего ты добился?
Котенок.жпег
Аноним 01/06/20 Пнд 21:43:10 1710453235
>>1709998
Ебани jamstack, сейчас так модно.
Аноним 01/06/20 Пнд 21:53:11 1710469236
Для блога на го, предлагаю статический сайт на hugo Там, где нужна динамика использовать серверлес.
Аноним 01/06/20 Пнд 23:35:26 1710544237
>>1709098
>Напоминает темные времена php, когда переименовав поле у класса ты не мог быть уверен, что оно переименовалось везде и приходилось просто грепом искать по имени поля по всему коду и хорошо, если имя было уникальным, а не какой-нибудь name.
Ты там из блокнота кодишь?
Аноним 01/06/20 Пнд 23:49:03 1710553238
Аноним 02/06/20 Втр 00:52:46 1710593239
>>1710544
Из блокнота, ха.
У меня IDEA несколько раз цепляла лишнее при переименовании, потому что какой-то идентификатор глубоко в xml-файлах показался её похожим, и из-за этого приходится перепроверять каждую "исправленную" строчку. Надёжнее переименовывать руками. И это ещё в статически типизированной джаве, что там в пхп было бы, страшно представить.

мимо
Аноним 02/06/20 Втр 16:23:03 1710950240
>>1710544

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

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

В том же го так нельзя сделать by design, даже пустой интерфейс тебе придётся закастить к типу, чтобы достать из него поле (есть варианты через рефлексию, но это уже конкретный говнокод и так к счастью никто не делает).
Аноним 03/06/20 Срд 22:41:23 1712417241
Поясните какие пакеты надо скачать и куда нажать, чтобы реализовать такое:
Есть значит структура Tachki с разнородными полями и даже с другими структурами в полях, возможно рядом с полями стоят их названия в соответствующих таблицах. Нужно, чтобы командой LoadmyShit(Tachki) структура загружалась в БД, а командой DownloadMyShit(&Tachki) заполнялась из БД.
Аноним 03/06/20 Срд 23:02:00 1712433242
Аноним 03/06/20 Срд 23:59:29 1712466243
>>1712433
драйвер у меня есть.

>Ну а в своих функция делаешь запросы, считываешь записи и заполняешь структуры.
Ручками писать парсер для 20 структур? это go-way?
Аноним 04/06/20 Чтв 00:04:43 1712471244
>>1712466
> это go-way?
Да. ORM есть, но их использование тут считается чем-то плохим.
Аноним 04/06/20 Чтв 02:18:45 1712544245
СУКА! 30 минут моей жизни из-за поля структуры с маленькой буквы.
Аноним 04/06/20 Чтв 02:25:42 1712546246
Есть гайды по го модулям? Ожидал примерно как в питоне, что фал с зависимостями, пополняется и обновляется. А на деле какую-то хуету вычитал, как создать модуль из своего проетка. Хочется быстро и легко управлять зависимостями. Спасибо.
Аноним 04/06/20 Чтв 03:20:38 1712560247
>>1712466
Говей это генерировать такие парсеры. Но как, я не знаю
Аноним 04/06/20 Чтв 11:11:00 1712684248
Аноним 04/06/20 Чтв 15:54:03 1713019249
Является ли говеем писать (вместо наследования):
func (m Granny) Dosomething {}
func (m
Dad) Dosomething {
m.Granny.Dosomething()
}
func (s *Son) Dosomething {
m.Dad.Dosomething()
}
Аноним 04/06/20 Чтв 16:27:05 1713056250
>>1713019
Зависит от ситуации, твой пример какой-то кривой
Аноним 04/06/20 Чтв 17:01:45 1713106251
>>1713019

Пример кривой, вынеси общую функциональность в родительский класс. В какой-нибудь DoSomethinger.
Аноним 04/06/20 Чтв 17:03:39 1713112252
Аноним 04/06/20 Чтв 21:17:25 1713351253
>>1713112
это что-то новенькое
>Встраивания указателя
>Встраивание интерфейса

ууу, ща нагорожу private и public при помощи этих костылей.
Аноним 04/06/20 Чтв 21:39:07 1713370254
>>1713351
Почитай какой-нибудь учебник сначала, а то тоже потом будешь здесь котлином срать.
Аноним 04/06/20 Чтв 22:23:13 1713426255
>>1713370
А есть хороший? А то уже говна наворотили по 500 страниц, из разряда тех, что на полку ставишь и забываешь навсегда о нем.
Аноним 05/06/20 Птн 08:50:11 1713701256
>>1713426
Оп-пост почитай, болезный.
Аноним 05/06/20 Птн 20:20:17 1714365257
> Пока в го клубе идет обсуждение наносервисов, пятиминутка злости про С++
> Пошел вот сознательно в одну компанию, поближе познакомиться с С++ так сказать
> Помимо специфичексих вещей проекта (ну, энтерпрайз писать на плюсах это так себе сама идея) есть и несколько общих выводов
> В целом получил что хотел. А хотел собственно спуститься еще чуть ниже по стеку (начал с джавы -> 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 1714367258
>>1714365
я не программировал на плюсах профессионально, но много лет назад когда интересовался, мне показалось, что С++ - это язык для написания языка программирования, а не программ. Потому, что и язык, и подход к разработке сильно меняется в зависимости от подключения Qt или Boost. Ну ладно, язык не меняется, но эти библиотеки вводят столько абстракций, что уже кажется, что это другой язык.
Плюс выбор компиляторов: гцц, борланд, майкрософт, кто-то еще. Думаю, что если выучил весь С++ - ты бог. Потому, что допускаю, что в разных компиляторах и может быть разная реализация стандарта и свои баги и особенности напополам с UB.
Аноним 05/06/20 Птн 20:34:48 1714382259
>>1714367
Да вот недавно на хабре изливали боль:
https://habr.com/ru/post/497114/
Еще интересно: плюсовики индифферентно относятся к го, но при упоминании раста бросются говном, как джависты-котлинеры в этом треде.
Аноним 05/06/20 Птн 20:53:52 1714408260
>>1714365
> вуаля - и нет UB, надо подумать просто, и сделать
Если так рассуждать дальше, в плюсах вообще нет UB. Сначала думаешь, что хорошая идея - дать мусорное значение неинициализированной переменной в качестве seed рандомайзера, ведь оно непредсказуемое. Или что можно полагаться на поведение, когда после максимального значения инта идёт минимальное.
Ну а потом у тебя выполняется и if, и else одновременно. Или printf ничего не выводит.
Не представляю, как на плюсах пишут большие проекты. В плюсах и джуны, наверное, как сеньоры в остальных языках.
Аноним 06/06/20 Суб 19:14:02 1715081261
>>1714408
> Сначала думаешь, что хорошая идея - дать мусорное значение неинициализированной переменной в качестве seed рандомайзера, ведь оно непредсказуемое.
Ни один нормальный разработчик так делать не будет, как раз потому, что никто не может гарантировать случайность. Непредсказуемое тобой, не значит случайное, нужно случайное значение - бери seed по правильному адекватному пути, от времени и прочих вещей.
> Или что можно полагаться на поведение, когда после максимального значения инта идёт минимальное.
Да же фигня, ну кто так будет делать? Переполнение переменной - зло и полагаться на то, что какая-то магия там что-то сделает есть идиотизм. Явное всегда лучше неявного, если хочешь циклический счётчик - сделай блять условие нормально.

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

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

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

Сравнительно немного, если посмотреть на другие языки.
Аноним 06/06/20 Суб 21:24:15 1715194268
>>1715188
> Говоря же про го
Точняк, тред же про него.
Аноним 06/06/20 Суб 21:59:23 1715224269
>>1715192
> невозможность мутировать поле структуры, лежащей по значению внутри слайса
Чо ты несёшь, поехавший?
https://play.golang.org/p/loZ-RUPvJDK
Аноним 06/06/20 Суб 22:44:54 1715251270
>>1715188
> он ну очень явный
Про то, что любая хуйня может неявно конформить протокол, ты, конечно же, умолчал.
Аноним 07/06/20 Вск 14:41:14 1715666271
Аноним 07/06/20 Вск 17:34:56 1715844272
photo2020-05-10[...].jpg 38Кб, 750x442
750x442
>>1715666
С одной стороны нейминг мало что значит, с другой - очень плохо, что дикари и им сочуствующие могут так просто заставить крупные компании рефакторить свой код, просто по тому что им не нравяться какие-то слова. Современное западное (в широком смысле) общество болеет, и это - всего лишь один из симптомов. Олсо, аналогичное изменение 2 года назад сделал Python
Аноним 07/06/20 Вск 21:03:45 1716045273
>>1715666
Какова позиция алтайских программистов по этому поводу?
Аноним 07/06/20 Вск 22:58:02 1716190274
>>1716045
Уже начали работу над своей реализацией го, с матершиной и расовыми оскорблениями
Аноним 08/06/20 Пнд 09:33:02 1716491275
Аноним 08/06/20 Пнд 09:59:46 1716503276
>>1716491
Да это рано или поздно коснется многих


Видел обсуждение, где писалось, что надо бесплатную утилиту на руби под названием Rubycop переименовать, потому что копы - это полицейские, а они теперь плохие.
Аноним 08/06/20 Пнд 10:27:03 1716513277
>>1716491
>>1716503
Это началось давно уже, с вбрсывания code of conduct в опенсорс проекты, сейчас просто у комнатных активистов зудит в жопе на фоне событий, вот они и выискивают где ещё насрать.
Аноним 08/06/20 Пнд 11:58:29 1716640278
Аноним 08/06/20 Пнд 14:23:40 1716730279
15215752130990s.jpg 6Кб, 200x200
200x200
>>1715666
Надеюсь в го нет расистских супермасистских архитектур вроде Master/Slave? Работал в эмбеддеде, где эти слова встречаются в каждом первом проекте, и могу себе представить боль прогрессивных смузихлебов от поделок бородатых махарайщиков в свитерах с оленями.
у кого-нибудь есть картинка в хайрезе?
Аноним 08/06/20 Пнд 16:30:40 1716849280
Ананасы, подскажите, как обновлять модули? Написал один, выложил на гит, подключил в проект - а при коммите в мастер версия в проекте не обновляется. В чем может быть проблема?
Аноним 08/06/20 Пнд 16:33:25 1716857281
Аноним 08/06/20 Пнд 21:59:33 1717141282
>>1700220 (OP)
На моей памяти это уже третий 10 тред. Неужели все хейтят это до сих пор?
Аноним 08/06/20 Пнд 22:02:17 1717145283
>>1717141
Наши треды обратно совместимы. Ентерпрайз куолити.
Аноним 08/06/20 Пнд 22:37:10 1717169284
Суп гач. Устроился джуном на пщ. Вот стараюсь лучше узнать архитектуру программ и лучшие практики на го. Наткнулся на канал Gopher School https://www.youtube.com/channel/UCQBFSUV_BdxGCxeg9Th4EjQ
и я увидел там очень много знакомых решений, которые используются в проекте над которым я работаю.

Вот хочу узнать, может есть какой-то ресурс или книги которые просто маст рид по лучшим практикам и архитектуре го приложений?
Аноним 08/06/20 Пнд 23:27:54 1717189285
>>1716849
go get -u github.com/username/projectname
Аноним 08/06/20 Пнд 23:38:54 1717193286
Аноним 09/06/20 Втр 00:05:32 1717198287
>>1717169
Да где вы ваки находите?
Одних синьоров-мидлов ищут с опытом 3+ года
Аноним 09/06/20 Втр 01:10:50 1717220288
>>1717198
Я просто обновил резюме, и мне предложили. Без пизды. Но не в мск. Ну у меня ещё опыт веб макаки 1.5 года
Аноним 09/06/20 Втр 01:29:34 1717226289
>>1717220
В резюме есть релевантный голенг опыт?
Заголовок резюме вида Golang Developer?
Аноним 09/06/20 Втр 08:34:37 1717310290
>>1717145
Без Илюши, го-треды это не го-треды.
Аноним 09/06/20 Втр 09:56:47 1717341291
Result.png 81Кб, 1888x718
1888x718
Аноним 09/06/20 Втр 10:29:11 1717351292
Кто-нибудь сталкивался с подвисаниями GoLand под макосью? Даже на хеллоу ворлде постоянно происходят короткие фризы. Голанд 2020.1.3
Аноним 09/06/20 Втр 10:35:35 1717353293
>>1717341
Но ведь здесь такое же решение предлагали и оно не работало
Аноним 09/06/20 Втр 16:51:40 1717729294
>>1717351
Засрут своими if err != nil код и потом у них IDE тормозит.
Аноним 09/06/20 Втр 17:09:25 1717747295
>>1717353
Да, походу это троллинг. Я сам что-то подобное делал, и нихуя
Аноним 09/06/20 Втр 21:26:32 1718039296
>>1717729
В этих джетбрейнсовких иде пустой проект сжирает 2 гига оперативки.
Аноним 09/06/20 Втр 21:30:05 1718042297
>>1718039
псс, не хочешь немного `gopls`?
Аноним 09/06/20 Втр 21:32:54 1718044298
>>1718042
И что он сделает? Заменит jvm в голанде?
Аноним 09/06/20 Втр 21:38:50 1718048299
>>1718044
Внезапно, заменит голанд на любой редактор, который умеет в lsp
я вимом пользуюсь, мне норм
Аноним 09/06/20 Втр 21:49:02 1718062300
>>1718048
В голанде можно нажать кнопочку рефактор, и он переименует даже в гите у разработчиков го, вимы и вскоде так не умеют.
Аноним 09/06/20 Втр 23:24:31 1718147301
>>1717729
Да, охуенно. Ведь когда для JVM охуеть как сложно проанализировать 5мб текста зависимостей - виноват, конечно, текст.
>>1718048
Вим или неовим? Я хочу вкатиться, что посоветуешь кроме vim-go поставить?
09/06/20 Втр 23:29:49 1718157302
> голенд
> голенд
> голенд
> голенд
> голенд
Аноним 10/06/20 Срд 00:09:18 1718179303
>>1718062
Я думаю главный плюс, это отладчик. Который гоферам как бы и не нужен но очень тяжковато принтами дебажить как школьник на пхп
Аноним 10/06/20 Срд 00:26:19 1718191304
Нет каких-то простых способов uint в string перевести?
Аноним 10/06/20 Срд 00:33:35 1718196305
>>1718179
Его и без пщленда можна использовать. Просто это не так удобно. Олсо, когда речь идет о канкаренси вещах - все равно принтам нет альтернатив, дебагером ты ничего не отловишь
Аноним 10/06/20 Срд 00:41:31 1718199306
Аноним 10/06/20 Срд 07:10:32 1718387307
что можно почитать на русском с нуля? или пытаться книги из оп поста на английском читать?
Аноним 10/06/20 Срд 08:24:25 1718410308
>>1718387

Да не нужны никакие книжки курсы и тп.
Го тур + хабра + оф блог
И ты знаешь все.
Аноним 10/06/20 Срд 08:56:17 1718427309
Аноним 10/06/20 Срд 09:07:33 1718433310
>>1718410
думаешь, этого будет достаточно?
Аноним 10/06/20 Срд 09:23:44 1718440311
Аноним 10/06/20 Срд 10:43:37 1718460312
>>1718427
Спасибо за ответ
>vim-go тоже не пользуюсь
Он мешает при написании кода на других языках?
Аноним 10/06/20 Срд 11:33:30 1718481313
>>1718460
Нет, не мешает, просто добавляет кучу функционала, которым я не пользуюсь и не переиспользуется

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

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

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

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

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

Я стараюсь писать так, что бы каждый сервис можно было изолировано запустить локально и полноценно отдебажить.
Аноним 11/06/20 Чтв 14:45:38 1719365322
>>1719022
> я всего полгода назад узнал, что есть программисты, которые им не пользуются, и я не понимаю, как и зачем вы живёте.
Они дебажат принтами, медленно и печально. Но в защиту го скажу, что дебаггер там не особенно удобный и не особенно стабильный, часть стркуткур в рантайме ты даже и просто не видишь, не говоря уже о том, чтобы их менять. Не выдерживает никакого сравнения с джавой или, прости господи, с пехапе.
Поэтому _очень_ много гошников уже просто привыкли обходится без дебаггера.
Ну и в целом, кстати, многопоточный код с туевой хучей горутин очень непросто отлаживается дебаггером, потому что пока ты прокликиваешь один процесс - другие работают себе, как хотят (или нет).
Аноним 11/06/20 Чтв 14:47:26 1719369323
>>1718652
У меня всё в кубах, все линтеры и тесты обернуты в докер и запускаются в CI, но всё равно при разработке тебе придется работать с этим же локально, подебажить что-то, посмотреть базу, позапускать что-то. IDEшка реально удобнее для той же базы, чем смотреть что-то в консоли или там админер поднимать.
Аноним 12/06/20 Птн 14:53:37 1720387324
image.png 15Кб, 639x172
639x172
дебило вопрос. а что конкретно я узнаю или получая используя эту шнягу? [1] какие-то цифры выдаёт
Аноним 12/06/20 Птн 15:54:53 1720448325
Аноним 12/06/20 Птн 16:30:58 1720495326
Аноним 12/06/20 Птн 21:11:53 1720806327
>>1720387
Ты получаешь Rune (мог бы и сам в IDEшке посмотреть возвращаемый тип), дальше гугли.
Аноним 13/06/20 Суб 01:28:47 1721081328
Аноним 13/06/20 Суб 11:12:06 1721254329
Как написать свою кодогенерацию? Кто-нибудь занимался?

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

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

Кодогенерация в большинстве случаев решается через шаблон с кодом, в который через gotemplate подставляется то, что тебе нужно. Естественно, никакой подсветки результирующего синтаксиса там нет, отлаживаться приходится "на глазок" и всё такое. Особенно бесят отступы. Некоторые из моих знакомых вообще на эти отступы забивают и генерируют код, как придётся, просто проходясь по нему потом gofmt.
Ещё есть gennifer, это кодогенератор, построенный на объектной модели. Кода получается многовато, но идея не так уж и плоха. Жаль, используется редко.
Аноним 13/06/20 Суб 20:05:14 1721802337
>>1721782
По идее прав (но всё всегда зависит от конкретной вакансии и злоебучести конкретного собеседующего), не слушай этого поехавшего.
Аноним 13/06/20 Суб 20:25:32 1721828338
>>1721786
>Стать джавистом джуном проще, чем джуниор гошником
Объясни почему?
Аноним 13/06/20 Суб 20:40:51 1721844339
>>1721828
Набор джавистов больше, конторе проще курсы по джаве организовать, команды по джаве больше, значит можно джунов проще добавить в команду
Аноним 13/06/20 Суб 20:43:46 1721850340
>>1721844
Ты не работешь и кроме джавы ни на чем не писал, я прав?
Аноним 13/06/20 Суб 20:47:18 1721855341
>>1721850
Я работаю и пишу на го, и говорю как есть
Аноним 13/06/20 Суб 20:57:54 1721862342
>>1721855
Тогда ты должен понимать, что объем знаний для джуна в джаве в 2-3 раза выше чем для джуна в го. Большие команды и проекты скорее минус чем плюс. В джаве многабукф, паттерны/ООП головного мозга, миллионы строк лапшекода, тысячи классов, новичкка кинут разгребать кучи говна за всеми, одни минусы. Количество вакансий не о чем не говорит. Чем меньше вакансий, тем меньше конкуренции.
Аноним 13/06/20 Суб 20:59:50 1721866343
>>1721862
Не знаю, я не мерял объем знаний, но знаю, что джаве в универе учат и курсов по джаве гораздо больше.
А на го в первую очередь берут тех, кто готов переучиваться.
Аноним 13/06/20 Суб 21:01:06 1721867344
Аноним 13/06/20 Суб 22:50:26 1721969345
>>1721254
На сколько я знаю - нет полноценного фремворка для этого, но можно вместо темплейтов использовать https://github.com/dave/jennifer
Аноним 13/06/20 Суб 23:07:28 1721978346
>>1721694
Ой какой пиздец. Когда уже маятник качнеться вправо?
Аноним 14/06/20 Вск 01:16:48 1722086347
>>1721862
Ну, не сказал бы.
Джава она разная. Формошлепство, тырпрайз на шестой джаве, монолиты на спринге. Всё это требует минимум знаний.
От гошника ожидается многопоточность, понимание низкоуровнего железа, cloud native, россыпь бд, микросервисы, ...
Аноним 14/06/20 Вск 08:32:12 1722168348
Screenshot2020-[...].png 16Кб, 463x295
463x295
Начал читать Кернигана. Не могу понять пару моментов. Что такое arg и range? Понятно что arg переменная, но почему она не объявлена? Не понимаю что представляет из себя range, и на функцию не похоже нет скобок, и на переменную, что это?
Аноним 14/06/20 Вск 12:08:22 1722266349
>>1722168
Начинал бы ты с питона
Аноним 14/06/20 Вск 12:42:26 1722279350
>>1722266
Нахой мне питон. У меня есть опыт программирования. Просто синтаксис не знакомый, а книге Кернигана тупо оставляют некоторые строчки кода без объяснения.
Аноним 14/06/20 Вск 12:44:47 1722282351
>>1722086
>многопоточность
А джавистам типа не нужно
>понимание низкоуровнего железа
Причем тут вообще Го?
>Россыпь бд
Как БД связана с языком программирования веб-бэкенда?
Типа у джавистов одна БД, у гошников - другие?
Аноним 14/06/20 Вск 12:46:45 1722285352
>>1721862
>Чем меньше вакансий, тем меньше конкуренции.
Топ-логика. Пойду учить Brainfuck.
Аноним 14/06/20 Вск 13:10:56 1722303353
>>1722168
Пройди сначала go tour.
variableName := value это краткая форма записи var variableName variableType = value
range - это ключевое слово для итерации по массивам, слайсам, мапам и каналам
Аноним 14/06/20 Вск 13:11:26 1722305354
>>1722168
range - это оператор прохода по массиву.
Переменная arg объявляется через :=
Аноним 14/06/20 Вск 13:21:13 1722309355
>>1722285
На брейнфаке не пишут за деньги.
Аноним 14/06/20 Вск 13:21:40 1722310356
Аноним 14/06/20 Вск 13:30:42 1722315357
- угадайте язык
Аноним 14/06/20 Вск 13:41:19 1722327358
>>1722310
Если умеешь гуглить, то зачем изначально такой тупняк спрашивал?
Аноним 14/06/20 Вск 13:55:29 1722334359
>>1722327
Сразу не нагуглилось
Аноним 14/06/20 Вск 14:31:27 1722391360
>>1722282

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

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

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

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

Аноним 14/06/20 Вск 15:07:06 1722449363
>>1722439
>с языком не могу определиться
Любой язык бери. Go довольно простой и удобный. Меньше будешь тратить времени и сил на ненужное. В JS к примеру кроме языка нужно еще изучить кучу инструментов, так как экосистема большая и сложная.
Аноним 14/06/20 Вск 15:11:10 1722457364
>>1722449
значит если я буду го учить, то подводных не будет
Аноним 14/06/20 Вск 15:18:07 1722471365
>>1722457
Программирование это сложно, начнем с этого. Язык не важен, потому что программируют алгоритмы в голове, а язык используют только для выражения этих алгоритмов в виде кода. Я тебе уже написал, что Go довольно простой, в других языках требуется больше знать чтобы их использовать. Еще простой PHP, но он только для веба.
Аноним 14/06/20 Вск 15:19:15 1722475366
Аноним 14/06/20 Вск 15:23:11 1722484367
Начинать правильнее всего с C++.
Аноним 14/06/20 Вск 15:35:32 1722515368
>>1722471

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

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

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

Ты, определенно, альтернативно одаренный.
Аноним 14/06/20 Вск 19:20:34 1722888373
>>1722866
Если бы у питона и пхп были спецификации, то пиновская была бы в 2-3 раза больше
Аноним 14/06/20 Вск 21:53:01 1723029374
>>1722285
Нормальная логика. Выучил эликсир, вкатился на позицию джуна за 130к, хотя по факту я больше типикал джуна знаю.
Аноним 14/06/20 Вск 22:01:38 1723042375
>>1722285
>>1723029
>Нормальная логика. Выучил эликсир, вкатился на позицию джуна за 130к
Двачую. Один чувак из чата джуном в Clojure вкатился, не имея до этого опыта программирования за деньги.
Аноним 14/06/20 Вск 22:27:32 1723059376
Аноним 14/06/20 Вск 22:35:16 1723069377
>>1723059
>Что за чат?
С какой целью интересуешься?
Аноним 14/06/20 Вск 23:21:48 1723110378
>>1723029
>джун 130к
Прохладная история
Аноним 15/06/20 Пнд 00:33:06 1723133379
>>1723110

Джун го +-100.
Эликсир поебанутей, вот и за повыше.
Аноним 15/06/20 Пнд 01:31:02 1723146380
>>1723069
Хочется пообщаться в чате.
Аноним 15/06/20 Пнд 01:39:41 1723148381
>>1723146
Если это чат гошников в телеге, то осторожнее, там какое-то запредельное число даунов тусит.
Аноним 15/06/20 Пнд 02:32:22 1723154382
>>1723148
> чат гошников
> запредельное число даунов
Какая неожиданность!
Аноним 15/06/20 Пнд 03:53:57 1723163383
>>1723154
Скорее
> чат
> запредельное число даунов
Аноним 15/06/20 Пнд 06:40:46 1723205384
Аноним 15/06/20 Пнд 06:50:00 1723206385
Аноним 15/06/20 Пнд 07:07:26 1723211386
>>1723042
Наверное, большой стаж борщехлебства. Это все же больше, чем ничего.
Аноним 15/06/20 Пнд 07:17:11 1723216387
>>1723211
Нет, полгода год, вроде так. Он просто не ебланил, а хуярил день и ночь.
Аноним 15/06/20 Пнд 09:24:41 1723272388
>>1723206

Ну я за джунов в своей компании.
Аноним 16/06/20 Втр 11:19:56 1724501389
image.png 729Кб, 1012x1012
1012x1012
Аноним 16/06/20 Втр 12:23:41 1724556390
таблеточки.mp4 23132Кб, 1280x720, 00:00:13
1280x720
Аноним 17/06/20 Срд 00:50:43 1725513391
Аноним 17/06/20 Срд 00:59:39 1725524392
>>1725513
Предвкушаю, как все переобуюся из "НИНУЖНЫ" В "ВЕЛИКОЛЕПНАЯ ФИЧА ГЛОРИУС ЯЗЫКА".
Аноним 17/06/20 Срд 01:26:18 1725563393
>>1725524
Да про "нинужны" кукарекали только долбоебы. Все нормальные чуваки сразу говорили, что фича нужная.
Аноним 17/06/20 Срд 07:58:52 1725746394
Я с 2017 был в спячке. Что в Go изменилось с тех пор? Я так понял, что ничего. Язык точно прежний, а так вообще, все стало немножко быстрее или нет?
Аноним 17/06/20 Срд 08:13:33 1725756395
Аноним 17/06/20 Срд 09:58:09 1725823396
>>1725746
Го модули добавились, гарбадж коллектор ускорился, а так больше вроде ничего такого
Аноним 17/06/20 Срд 10:12:06 1725833397
>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 1725834398
image.png 185Кб, 640x359
640x359
>>1725833
>1.17
А обратная совместимость не сломается?
Аноним 17/06/20 Срд 10:17:22 1725835399
А эксепшены уже есть, называются PANIC и RECOVER
Аноним 17/06/20 Срд 11:06:46 1725855400
15891233612920.jpg 74Кб, 680x485
680x485
Аноним 17/06/20 Срд 11:08:36 1725857401
>>1725855
Ну так это и правда другое.

panic и recover в go используется очень редко
Аноним 17/06/20 Срд 11:10:47 1725858402
>>1725857
Это была пост-метаирония
Вопрос не в том, как часто используеться, вопрос в том, какое у panic/recover назначение.
Аноним 17/06/20 Срд 11:30:24 1725865403
Аноним 17/06/20 Срд 11:42:30 1725878404
>>1725834
Для старых версий го можно будет специальной тулзой сгенерить прям статический код, если я ничего не напутал.
Аноним 17/06/20 Срд 12:07:38 1725908405
>>1725858
>какое у panic/recover назначение
Уж точно не передавать информацию вверх по стеку.
Аноним 17/06/20 Срд 12:19:37 1725911406
Аноним 17/06/20 Срд 12:20:03 1725912407
>>1725756
>Сильно быстрее
За счет чего?

Аноним 17/06/20 Срд 13:18:17 1725984408
>>1725912
За счет развития компилятора
Аноним 17/06/20 Срд 13:21:08 1725990409
>>1725911
Счас бы этого дебила слушать. Напомню, что Немчинский лет 5 назад пизданул, что Питон хуета, и вообще непонятно кто и что на нем пишет. Сказал, что ближайшее время он сдохнет. Что видим сейчас, Питон в 5 самых популярных языков, а Джава начала терять позиции.
Аноним 17/06/20 Срд 14:02:32 1726071410
>>1725563
ну давай, расскажи свои кейсы, где без женериков никак
Аноним 17/06/20 Срд 14:17:32 1726100411
Аноним 17/06/20 Срд 14:40:56 1726113412
>>1726100
>If everything goes well, the final release date will be the time we reach 20k stars!
Пиздец рачье.
Аноним 17/06/20 Срд 14:45:20 1726117413
Аноним 17/06/20 Срд 14:53:06 1726123414
>>1726117
>Сейчас нормально он о Питоне отзывается
Переобулся сучок
Аноним 17/06/20 Срд 18:18:28 1726300415
image.png 40Кб, 929x478
929x478
Сап дващ, я тупой, как параллельно запускать тесты с пармаетрами? горутинами, полагаю?
Аноним 17/06/20 Срд 18:24:43 1726316416
Так правда, что можно на элексире рубить 135к в месяц?
А можно тысяч 40, но на удаленке?
Аноним 17/06/20 Срд 18:25:16 1726320417
>>1726071
Это твоя задача. Когда фичу завезут, тебе придётся придумать оправдание, почему её всё же завезли, несмотря на крики "РЯЯ НИНУЖНА".
Аноним 17/06/20 Срд 18:32:00 1726328418
>>1726300
а, я долбаеб походу, просто добавить t.Parallel()
Аноним 17/06/20 Срд 20:15:02 1726415419
>>1726316
>А можно тысяч 40, но на удаленке?
Там где Эликсир обычно есть код на Руби или Эрланг. В обоих случаях зарплаты топовые.
Аноним 17/06/20 Срд 20:56:02 1726447420
>>1726071
Как насчет context.Context, чтобы там `interface{}`не использовать. Да и вообще у тебя есть `grep -rc 'interface\{\}' $GOPATH` причин использовать дженерики.

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

>>1726447
один фанатик, не понимающий как работают дженерики и какую проблему они решают, детектед
Аноним 18/06/20 Чтв 01:35:24 1726636424
>>1726618
Ну давай, просвети меня тогда. Вангую, ты или сейчас повторишь мои же слова про статическое связывание типов, или скажешь что-нибудь про копипаст.
Аноним 18/06/20 Чтв 02:54:47 1726656425
>>1726617
Всегда горю когда "отображение" картой называют
Аноним 18/06/20 Чтв 03:15:45 1726665426
>>1726300
Но нахуя?? Ты серьёзно полагаешь, что проверку 6 массивов по 6 элементов нужно распараллеливать?
Аноним 18/06/20 Чтв 08:51:19 1726725427
>>1726656
Всегда горю когда "словарь" отображением называют
Аноним 18/06/20 Чтв 10:27:53 1726795428
>>1726665
этот код для примера, у меня в тестах запросы для фильтров на сайте, я не хочу, чтоб тест длился больше 20-30 сек
Аноним 18/06/20 Чтв 11:07:34 1726848429
>>1726618
Я тоже не понимаю какую проблему они решают.
За пять лет на крестах я написал один шаблон и то ради того чтоб выебнуться
Аноним 18/06/20 Чтв 11:42:09 1726883430
>>1726848
На горм посмотри, там всё в пустых интерфейсах. Нравится? Вот это они и решают.
Полюбому, ты под капотом использовал их множество раз, просто не осознавал этого.
Аноним 18/06/20 Чтв 19:14:19 1727511431
>>1726725
Всегда горю, когда "ассоциативный массив" называют как-то по-другому.
Аноним 18/06/20 Чтв 19:41:48 1727539432
>>1727511

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

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

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

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

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

>>1727610

Доки по unsafe и вперёд. Нужно просто взять кусок памяти и заставить гошечку думать, что это структура. Дальше все просто.
Аноним 18/06/20 Чтв 22:34:33 1727634440
>>1727631
А как же информатика и лучшие практики. Например как обеспечить валидацию целостности данных, как лучше указывать типы, как разделять данные. У меня куча вопросов.
Аноним 18/06/20 Чтв 22:54:08 1727650441
>>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 1727659442
>>1727634

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

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

В принципе это интересная практика.
Аноним 20/06/20 Суб 01:30:30 1728627448
>>1728597
Раз не знаешь, делай в лоб и решу проблемы по ходу поступления.
Типы пронумеровать, целостность контрольной суммой, можно коды рида-соломона
Аноним 20/06/20 Суб 01:32:28 1728631449
>>1728597
Алсо, protobuf как раз твою задачу решает, можно его взять, а можно просто почитать, как он сериализует и адаптировать. Протобуф как раз и есть бест практис в гомирке
Аноним 20/06/20 Суб 16:19:37 1729010450
А вы тут все чисто для себя приколы пилите всякие? Работы же на говноланге не существует почти.
Аноним 20/06/20 Суб 19:38:46 1729154451
>>1729010
О чём ты?
Уже два раза менял работу даже без удалёнки, фуллтайм-гошник, зарабатывает 300к до налогов, в последний раз собеседовался в 6 компаний, получил 3 оффера
Аноним 20/06/20 Суб 20:03:17 1729169452
Аноним 20/06/20 Суб 20:06:30 1729173453
>>1729010
Её дохуя к сожалению
Аноним 20/06/20 Суб 20:19:21 1729188454
>>1726591
Угловые скобки уложняют парсинг. К тому же круглые скобки уже есть в d и смотрятся там очень удобно.
Аноним 20/06/20 Суб 20:35:59 1729208455
>>1729188

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

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

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

>>1729173
Чего в этом плохого?
Аноним 21/06/20 Вск 03:31:41 1729394469
>>1729385
> Чего в этом плохого?
Очевидно, что не всем нравится Go, и некоторые хотели бы, чтобы он загнулся, и о нём все забыли.
Аноним 21/06/20 Вск 12:26:11 1729482470
>>1729277
А что насчет квадратных скобок? Они уже используються в мапах, например
Аноним 21/06/20 Вск 15:12:40 1729627471
Аноним 21/06/20 Вск 16:28:36 1729678472
>>1729627
Этот мудила в рабочее время хуйней страдает, вместо работы над гошечкой?!
Аноним 21/06/20 Вск 18:10:39 1729731473
>>1729394
Шизики какие-то. Когда мне что-то не нравится, я просто прохожу мимо.
Аноним 22/06/20 Пнд 10:27:21 1730368474
Я правильно понимаю, что в текущем драфте дженериков невозможно написать функцию, которая бы работала для array'ев любой длины? Не говоря уже о том, чтобы и для array'ев и для slice'ов.
Аноним 22/06/20 Пнд 10:55:45 1730379475
>>1730368
>Я правильно понимаю, что в текущем драфте дженериков невозможно написать функцию, которая бы работала для array'ев любой длины?
А зачем, когда есть слайсы?
Аноним 22/06/20 Пнд 11:58:20 1730417476
>>1730368
Лол, даже дженерики в конце концов сделали со своим "авторским" видением. Не удивлюсь, что когда завезут эксепшены, они будут выглядеть так:
result = try(handler, function, arg1, arg2)
Аноним 22/06/20 Пнд 12:08:01 1730428477
>>1729678
Он и над го особо не парился.
Теперь сидите ручками эксепшены перебрасывайте.
Аноним 22/06/20 Пнд 14:20:12 1730569478
>>1730368
Но ведь в го преобразование массива в слайс бесплатное, ты сейчас до мышей доебался.
Аноним 22/06/20 Пнд 15:01:48 1730614479
>>1700220 (OP)
Стоит ли учить Go как первый язык? Хочу зашибать 300к/неделя и больше на высоких технологиях. Короче, я не совсем офисную РАБоту хочу, а прикладывать Go к чему-то высокотехнологичному, в производстве каком-нибудь.
С программированием не знаком, вылетел с третьего курса мехмата
Аноним 22/06/20 Пнд 15:39:35 1730658480