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

Ответить в тред Ответить в тред
Check this out!
Cамого МУЖЕСТВЕННОГО в мире языка Go тред №15 /go/ Аноним 05/04/21 Пнд 00:08:46 19862041
homjak.png 59Кб, 1576x890
1576x890
mamka.png 7Кб, 287x136
287x136
power.png 217Кб, 880x534
880x534
versus.png 599Кб, 1100x700
1100x700
Cамого МУЖЕСТВЕННОГО в мире языка Go тред №15 /go/

ТУПОЕБСКИЙ ХОМЯК ЭДИШН

Go или Golang — компилируемый язык программирования от создателей таких шедевров, как UTF–8, язык С, UNIX, Plan9 и других. Go поддерживает типобезопасность, богатую и универсальную стандартную библиотеку функций и инновационные семантики одновременности: все то, что мы в индустрии называем concurrency и parallelism. На сегодня язык Go является маяком стабильности, прагматичности, де факто представляет из себя стандарт в мире бэкенд–микросервисов и серверного оркестрирования.

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

Растобляди завидуют, сектантская запарта не переваривает.

С чего начать:
- В обязательном порядке проходим Go Tour: https://tour.golang.org/welcome/1 (есть на Русском)
- Читаем документацию прямо по порядку (пункт "Learning Go"): https://golang.org/doc/
- Ознакамливаемся с общим roadmap по изучению языка и сопутствующих инструментов: https://github.com/Alikhll/golang-developer-roadmap (постоянно обновляется сообществом)

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

Полезные дополнения:
- Сборник паттернов и инфы по микросервисам: https://microservices.io/

Обновляемый список с пакетами: https://github.com/avelino/awesome-go

Небольшой канал треда: t.me/golang2ch

Предыдущий тред умирает здесь: >>1905210 (OP)

Шаблон шапки: https://pastebin.com/61qHsr2T
Аноним 05/04/21 Пнд 00:10:23 19862072
Шарп лучше чем Go.
Аноним 05/04/21 Пнд 00:13:26 19862113
go-pravyy.jpg 102Кб, 1027x683
1027x683
>>1986207
Расовое превосходство Go очевидно и не нуждается в доказательстве.

inb4 шарп спиздил модель зеленых тредов из го
Аноним 05/04/21 Пнд 00:17:46 19862164
>>1986211
Ты так говоришь, будто гринтреды изобрели в пщ, лол. Но даже если бы это было правдой, начнём с того, что все популярные языки спиздели лямбды из борщехлёбской хуйни без задач и спокойно живут себе, а борщехлёбская хуйня без задач так и осталась никому не нужной.
Аноним 05/04/21 Пнд 00:23:27 19862225
gosched.jpg 39Кб, 1024x660
1024x660
>>1986216
Смотри конкретно модель реализации шедулера в Go и в шарпе, а потом попробуй разобраться кто у кого спиздил. Желательно чтобы ты больше не унижался. спасибо
Аноним 05/04/21 Пнд 00:27:36 19862266
>>1986222
В огороде бузина, а в Киеве дядька.
Аноним 05/04/21 Пнд 04:31:37 19862717
>>1986216
> все популярные языки спиздели лямбды из борщехлёбской хуйни без задач и спокойно живут себе, а борщехлёбская хуйня без задач так и осталась никому не нужной.
Так в этом и суть. Лямбды в мейнстримной параше появились только сейчас, а в том, что ты называешь борщехлебской хуйней, были ещё когда твоя бабка была молодая. Точно так же зависимые типы. В идрисе есть уже 15 лет, а в общепринятый мейнстрим завезут ещё через 15.
05/04/21 Пнд 04:52:38 19862758
>>1986204 (OP)
Пиздец. Ну и ограниченный язык.

Ну да, нахуй нужны эти ваши метапрограммирования, DSL, лямбды, ADT, logic programming, это же всё долбоебов придумывалась, а не для лаканичного и человекочитаемого кода сформированного в виде коротких формул.
Аноним 05/04/21 Пнд 06:07:22 19862779
Даже в самом первом языке программирования (Plankalkül) были эксепшены. А в го нет.
Аноним 05/04/21 Пнд 08:28:56 198628810
>>1986207
На счет шарпа не знаю, но от го отказываются крупные компании которые его же и пиарили 5 лет назад, включая сам гугол, стоит задуматься..
Аноним 05/04/21 Пнд 09:48:00 198630411
Go для макак. Proved.
> Так для чего же он был создан таким простым? Вот пара цитат Роба Пайка (прим.пер.: один из соавторов языка Go):

> Ключевой момент здесь, что наши программисты (прим.пер.: гуглеры) не исследователи. Они, как правило, весьма молоды, идут к нам после учебы, возможно изучали Java, или C/C++, или Python. Они не в состоянии понять выдающийся язык, но в то же время мы хотим, чтобы они создавали хорошее ПО. Именно поэтому их язык должен прост им для понимания и изучения.

> Он должен быть знакомым, грубо говоря похожим на Си. Программисты работающие в Google рано начинают свою карьеру и в большинстве своем знакомы с процедурными языками, в частности семейства Си. Требование в скорой продуктивности на новом языке программирования означает, что язык не должен быть слишком радикальным.
05/04/21 Пнд 09:49:47 198630612
>>1986304
> Что? Так Роб Пайк в сущности говорит, что разработчики в Google не столь хороши, потому они и создали язык для идиотов (прим.пер.: dumbed down), так чтобы они были в состоянии что-то сделать. Что за высокомерный взгляд на собственных коллег? Я всегда считал, что разработчики Google отобраны из самых ярких и лучших на Земле. Конечно они могут справиться с чем-то посложнее?
Аноним 05/04/21 Пнд 10:52:04 198632813
Аноним 05/04/21 Пнд 10:55:27 198633114
>>1986277
В C их нет и ничего, тонны хорошего ну, постоянно проблемы с переполнением буфера, но это другой вопрос софта написали.
Аноним 05/04/21 Пнд 11:03:22 198633215
> я.ебать(твояМамка)
Чё за язык у вас, переменные можно использовать до их инициализации?
мимо безопасный свифт помидор
Аноним 05/04/21 Пнд 11:21:31 198635316
>>1986332
У нас на уровне языка нет понятия инициализации, есть только понятие объявления, var я Я
При этом в переменной "я" оказывается нулевое значение для типа "Я" (0 для чисел, false для булов, nil для поинтеров и т.д.)
Метод можно вызывать и у nil значения, что само по себе не запрещено. Правда всё упадет с паникой, если ты попытаешься этот nil задереференсить. Но у тебя метод может этого и не делать, например. Или сам проверить условный self на nil и обработать это как-то, например провести ленивую инициализацию, если необходимо.
Вообще, в go считается хорошим правило make zero value useful, в стандартной либе это реализовано в случае sync.Mutex и sync.WaitGroup, которые после объявления готовы к использованию. В остальных случаях обычно пишут функции-конструкторы.
Аноним 05/04/21 Пнд 11:42:34 198637717
>>1986353
На самом деле не совсем так, инициализация через make есть для 3-х типов: слайса, мапы и канала. Но там особая ситуация, т.к. там нужно указать length и/или capacity. В первых двух случаях это нужно для того, чтобы сразу аллоцировать достаточное кол-во памяти, чтобы потом при добавлении элементов не копировать несколько раз данные в новую область памяти.
Аноним 05/04/21 Пнд 11:58:45 198639118
>>1986331
Благодаря C компьютерные программы - самое ненадежное из всего созданного человеком.

Ну и сравнивать goвно с говняшной это конечно тоже нужно быть гением.
Аноним 05/04/21 Пнд 11:58:48 198639219
BqeGumIIV2ObCtE[...].png 80Кб, 400x159
400x159
>>1986306
> Я всегда считал, что разработчики Google отобраны из самых ярких и лучших на Земле.
Туда официально белых не берут https://www.cnews.ru/news/top/2018-03-05_google_rasporyadilas_brat_na_rabotu_tolko_zhenshchin . А у остальных пикрелейтед. Алсо, пщ официально БЛМ параша, на сайте указано. Используешь пщ = сойбой, куколд.
Аноним 05/04/21 Пнд 12:19:56 198640620
DoHbgBkPRCk.jpg 14Кб, 640x320
640x320
Перенёс из предыдущего треда:

Гоферы, помогите разобраться
Пытаюсь осилить сей язык, параллельно решая маленькие задачки, наткнулся на просторах на упоминание задачки, где нужно инвертировать контент файла
И у меня вроде всё кое-как получилось, глазами вижу результат, но вот в самом конце содержимое выдать в stdout через ReadAll на 45 строчке не вышло, что я делаю не так? Вроде как Flush должен был решить проблему мою
https://play.golang.org/p/Nguk776CGI8
Файлик там простой, вида типа
1
2
3
Аноним 05/04/21 Пнд 12:23:47 198640821
>>1986406
Попытайся отделить логику (функцию, которая принимает io.Reader и io.Writer) от реального взаимодействия с файлами. Скорее всего у тебя проблема во втором. И да, bufio.Writer.Flush не флашит сам файл, он именно сбрасывает буфер из bufio.Writer'а
Аноним 05/04/21 Пнд 12:38:17 198642222
>>1986304
Ты такой умник, что запостил это в ML–треде >>1986303 → перед тем как попасть в правильный. Давай разберем все Робом пайком написанное, в этот раз без лишних иллюзий и маня–фантазий.

>наши программисты (прим.пер.: гуглеры) не исследователи.
Всё так. Гугл – это рекламная компания, в которой программисты должны продвигать технические решения вперед, причем сам этот технический процесс заключен в довольно консервативные рамки. Речь идет не об искусстве, не проедании грантов в университете, не наебывании дяди, а о том, чтобы зарабатывать гуглу деньги. Речь идет о ремесле.
>Они не в состоянии понять выдающийся язык, но в то же время мы хотим, чтобы они создавали хорошее ПО.
Это неправильный перевод. Brilliant скорее переводится как блестящий, а не выдающийся. Тут есть tongue–in–cheek со стороны Пайка, а именно стоит сперва обратить внимание на то, кто такой Роб пайк и какой у него бекграунд. Роб пайк — это чувак, который бОльшую часть своей жизни провел в чистой воды расовой исследовательской среде, где не гуглеры, а реальные исследователи, проедатели R&D корпобюджетов и всяких грантов от американских исследовательских институтов. Там же он своими руками создал UNIX, там же создал plan9 и ты удивишься, но в списке его заслуг можно найти Newsquak, Limbo и другие прорывные на тот момент технологии. Не говоря уже о самом большом его достижении, plan9, это вообще навеки оставило его в пантеоне величайших компьютерных исседователей. Теперь, лапочка, когда ты понял бекграунд этого чувака, ты должен понимать значение этой цитаты. Одно дело фантазировать на тему, а другое дело выполнять работу (продвигать техническое решение вперед) и поверь, Роб пайк не имеет никаких иллюзий на этот счет. Пайка и Томпсона пригласили работать в гулаг. Они поработали, чето там поделали (я даже не хочу вспоминать sawzall, пожалуйста, не надо) и у них появились определенные претензии к тому С++ и джаве, что на тот момент использовались в 95% кода гугла, в связи с чем они решили сделать свой язык. Это нормально. Как оказалось, помимо нормальности, этот язык еще оказался связан и с успехом. Потому что делали его профи, а не какие–то феминные томбои из университета, которым нужно что–то кому–то доказывать. Никому из создателей Go не надо ничего доказывать, их желания полностью сопряжены с рабочими задачами, с продвижением технического решения вперед. Это именно то, что Go позволяет делать. Не фантазировать, не умничать, не заниматься "искусством" я вообще ору со всех программистишек, которые думают что в этом ремесле больше искусства, чем например в литье а делать то, за что тебе платят деньги. Продвигать. техническое. решение. ВПЕРЕД
>Он должен быть знакомым, грубо говоря похожим на Си.
Совершенно верно. В любом ремесле, предпочтение всегда отдается более привычным инструментам.
>Что? Так Роб Пайк в сущности говорит, что разработчики в Google не столь хороши, потому они и создали язык для идиотов
Это не так. Роб пайк пытается сказать тебе–дурачку и таким дурачкам как ты, что есть большая разница между рабочей средой, где разрабатываются коммерческие продукты и рисерческой дармоедской средой, где приоритетом являются понты "блестящими" языками.

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

>Что за высокомерный взгляд на собственных коллег?
Иметь реальный, адекватный взгляд на вещи — это не высокомерие. Пайк держит своих "коллег" за тех, кем они являются — кодерами на зарплате, единственная задача которых, я повторюсь, продвигать техническое решение вперед. Поэтому он подарил нам Go — язык, который, на его взгляд, максимально эффективно позволяет справляться с этой задачей.

>Конечно они могут справиться с чем-то посложнее?
Не могут. Ты когда–то был в литейном цехе? Клещи, изложница — ты не найдешь там сложных инструментов. Потому что они не нужны в этом рабочем процессе. Все кто считают иначе — нихуя не понимают в ремесле.
Аноним 05/04/21 Пнд 12:42:10 198642623
>>1986332
Переменная инициализировалась по умолчанию когда ты ее объвил на стеке при помощи var. Все нормально.
Аноним 05/04/21 Пнд 12:45:05 198643024
>>1986391
Бла Бла Бла, тупые аргументы–не–аргументы от маня–фантазера, который не знает:

(а) историю вычислений, портабельности софта
(б) обстоятельств рынка производства ПО
(в) ...судя по сказанному, ничего другого он тоже знать не может...
Аноним 05/04/21 Пнд 12:45:13 198643125
>Растобляди завидуют,
Нет конечно. В сегменте низкоуровневых языков раст самый выразительный - зачем его вообще сравнивать с языками со сборкой мусора.
Аноним 05/04/21 Пнд 12:48:49 198643626
>>1986422
И каким образом порезанность языка, отсутствие в нем элементарных фич, помогает "продвигать техническое решение"? Элементарно кода в разы больше писать приходится. Приходится концентрироваться не на логике, а на костылях.
Аноним 05/04/21 Пнд 12:50:13 198644127
>>1986436
У тебя методичка дырявая, протекает. Ничего "элементарного" в этом нет, приходи когда узнаешь что такое нюансы и компромиссы.
Аноним 05/04/21 Пнд 13:25:18 198646128
>>1986430
Как-то похуй чем там исторически обусловленна убогость и околонулевая выразительность говняшной, и по каким нелепым причинам она получила такое широкое распространение в свое время. Даже если тому были некие непреодолимые причины, это никак не меняет того, что это обьективно хуевый язык, совершенно не приспособленный для написания чего-либо сложнее автоматизации сливных бачков, и что все нужно было делать по-другому.
Аноним 05/04/21 Пнд 13:30:55 198647329
aNzY160460s.jpg 24Кб, 460x541
460x541
Вы не думойте, вы код пилите. Ишь развелось тут фелосафов!
Аноним 05/04/21 Пнд 13:33:59 198647530
>>1986408
Не совсем понял, как тогда реально взаимодействовать с файлами, если не через ридеры-врайтеры, но спасибо за ответ! Попробую покопаться ещё, нагуглить много не получилось
05/04/21 Пнд 13:34:10 198647631
>>1986422
> я вообще ору со всех программистишек, которые думают что в этом ремесле больше искусства, чем например в литье
Ты не прав. Программирование - искусство. Вернее математика - это искусство, прекрасная и идеальная база нашей реальности, а программирование это просто способ оформить формулы как нечто реальное.
https://youtu.be/DxfEbulyFcY
https://youtu.be/lctXaT9pxA0
https://youtu.be/X-iSQQgOd1A
Аноним 05/04/21 Пнд 13:37:33 198648032
>>1986431
Никто кроме растеров не сравнивает эту парашу с нормальными языками. Это кокрастоке растобляди–маргиналы лезут в нормальные немаргинализированные отрасли со своими советами и рекоммендациями насчет того, как правильно на самом деле делать вещи.
05/04/21 Пнд 13:38:35 198648233
>>1986480
Ты перепутал растеров с хаскеллистами.
Аноним 05/04/21 Пнд 13:40:48 198648634
>>1986480
Но ведь остальные языки действительно неправильные. Ансейф, GC, WUT-моменты на каждом шагу.
Аноним 05/04/21 Пнд 14:01:58 198651135
>>1986482
Что растеры, что хаскелисты — это все сорта одного и того же запартного говна.
Аноним 05/04/21 Пнд 14:07:35 198652436
>>1986441
По существу хоть когда-нибудь что-нибудь напишешь?

Алсо, насчет нюансов:
>Василь Иваныч, а что такое «нюанс»?
>Ну, Петька, это так не объяснишь, это показывать надо… Становись-ка раком да скидавай портки.
>Петька встал, Василь Иваныч сзаду заехал и говорит:
>Вот видишь, Петька, у тебя хуй в жопе, и у меня хуй в жопе. Но есть один нюанс!
Аноним 05/04/21 Пнд 14:09:21 198652837
Ого сколько шизиков набежало.
Аноним 05/04/21 Пнд 14:19:00 198653838
>>1986524
Ты сам не по существу пишешь, вот тебе шаблон:

- Go - хуйня недоязык.
- А вот мой %язык-нейм% изящный и правильный.
Аноним 05/04/21 Пнд 14:19:07 198653939
>>1986524
Хороший анекдот. А что тебе по–существу сказать? Раст — это ворованная LLVM параша, если в 2012 году еще казалось что из этого исследовательского языка может получиться что–то годное, чтобы оно имело собственный путь, то сейчас от этих иллюзий ничего не осталось. Гошечка пошла по совсем другому, своему пути, где с самого начала центровые чуваки сказали что на уступки идеологам никто идти не собирается и в результате смогли сохранить свою идентичность. Ты говоришь "порезанность языка" будто это что–то плохое, а у меня есть эмперические данные что эта порезанность — это в данном случае не баг, а фича, что говорится. Ты говоришь приходится концентрироваться на "костылях", но я в своей практике работы с го редко когда встречаю костыли. Обычно это очень предметный код, где за 10 минут ревью ты сразу видишь места для оптимизаций, а все структурные ошибки набитым глазом выкупаются еще быстрее. Элементарно — это когда тебе не надо задротить, а решение продвигается будто само по себе. Растобляди воняют насчет полиморфизма, хотя на самом деле в расте этого полиморфизма и нет–то, ну ладно в последнем релизе добавили константные дженерики, только смыслу? Все равно это все уже в С++ есть много лет и дает больше возможностей. Что касается го, так тут с самого начала всем сказали что "будем мономорфизировать" и это работает. Компилируется все быстро, кодогенерация есть в стандартной библиотеке и опять–таки, дает много больше возможстей, чем ограниченные говномакросы в том же расте. Ты генерируешь один раз, а потом компилируешь — и компилируешь быстро. Да, мономорфизация, да, нет каких–то там гарантий, но это никому не мешает. Потому что у языка есть какой–то свой путь, который четко обусловлен обстоятельствами его использования, а не фантазиями насчет того, как должны выглядеть воображаемые пирамидки в коде. Какую конкретику я могу тебе предоставить? Для кого–то программирование это средство достижения поставленных задач, для нормальных пацанов, а для кого–то это какая–то бесконечная игра в фантазию, которая заканчивается не продуктом, а такими же фантазиями. Если получится довести до рынка — уже успех, в то время как в любой другой немаргинализированной среде это только база. Подразумевается что без этого не может быть никаких разговоров, у маргиналов это не подразумевается.
Аноним 05/04/21 Пнд 14:31:31 198654940
>>1986538
> - Go - хуйня недоязык.
> - А вот мой %язык-нейм% изящный и правильный.
Все верно. Что не так?
Аноним 05/04/21 Пнд 14:35:36 198655241
>>1986539
> Ты говоришь "порезанность языка" будто это что–то плохое
Это сука и есть зло. Зло в чистом виде. Ненавижу всяки питухоны, и жс-ы из-за того, что они нихуя не расширяемые, и любой код, что выходит за пределы их юзкейсов и возможностей превращается в нечитаемое, уродливое нечто.
мимо лиспо-пролого-боярин
Аноним 05/04/21 Пнд 14:37:22 198655742
>>1986539
> кодогенерация есть
Макака, котарая не знает про DRY, ты? Хватит оправдывать своё говно на костылях
Аноним 05/04/21 Пнд 14:38:48 198655943
>>1986539
>пок пок свой путь кококок не баг а фича нормальные пацаны just use for loops

Что-то ничему новому за столько лет гопетухи так и не научились.
Ну давай ты хоть расскажешь про эти эти самые
>эмперические данные про то что порезанность - хорошо

Только плиз без смехотворных фантазий про
>Обычно это очень предметный код, где за 10 минут ревью ты сразу видишь места для оптимизаций, а все структурные ошибки набитым глазом выкупаются еще быстрее.

Потому как в процедурных гоу-полотнах вся предметность растворяется в низкоуровневых (а других в гоувне просто нет) тумба-юмба деталях реализации и никакая доменная логика так не проглядывается, пока не прочтешь все целиком снизу-вверх 3 раза.

>Элементарно — это когда тебе не надо задротить, а решение продвигается будто само по себе.
Это называется duct tape programming который работает хорошо только кода пишешь манясервисы на 300 строк, и если нужно что-то менять, то весь код просто выбрасывается и пишется по новой.
Гоу в принципе не подходит для монолитов и даже для SOA, онли микросервисы, просто потому что язык другого не позволяет. А перекладывать архитектурные задачи на инфраструктуру - ну такое, конечно модная тема была лет 5 назад, но многие уже обожглись и спрыгнули.
Аноним 05/04/21 Пнд 15:04:49 198657644
>>1986538
Ни разу ничего такого я не писал, считаю все существующие на данный момент неборщехлебные языки говнищем. Голанг где-то лучше, где-то хуже. Иначе я бы в этом треде не сидел.
Аноним 05/04/21 Пнд 15:23:53 198659645
>>1986539
А я наоборот четкую идеологию в ущерб удобству и здравому смыслу только в go вижу. На любой вопрос почему в этом языке нету X адепты голанга начинают улулюкать и рассказывать что X НИНУЖНО, как им хорошо живется без X, X это вообще неправильно и т.д.
Аноним 05/04/21 Пнд 15:34:26 198661346
>>1986559
> Потому как в процедурных гоу-полотнах вся предметность растворяется в низкоуровневых (а других в гоувне просто нет) тумба-юмба деталях реализации и никакая доменная логика так не проглядывается, пока не прочтешь все целиком снизу-вверх 3 раза.
Двачну. Современный Паскаль какой-то. Поскорее бы похоронили это говно, чтобы глаща не мозолило.
Аноним 05/04/21 Пнд 15:35:56 198661747
Всё сретесь? Скажите лучше, почему готовый бинарник так дохуя отладочных данных содержит?
Аноним 05/04/21 Пнд 15:38:19 198662048
>>1986617
Потому что го-вно. У него еще и работой с памятью сборщик мусора отвечает прям в рантайме занимается, знал?
Аноним 05/04/21 Пнд 15:59:06 198664949
>>1986559
>нормальные пацаны just use for loops
А нет разве? Или ты думаешь что если тебе комбинаторы завезли, то ты сразу супермозг? Внезапно, оказывается, на линейных комбинаторах много не напишешь! Ну, до тих пор пока тебе нужно делать какие–то тривиальные преобразования, по типу собрать сумму по списку, то наверное, напишешь, но как только оказывается что логика список негомогененная, и где–то возникают новые порядки, сразу комбинаторы садятся на жопу. Это, кстати, очень связанно с параллелизмом, см. такие языки как Futhark, где это большая проблема — запихнуть логику в комбинаторы второго порядка, чтобы сохранить при этом все плюшки многоядерности в GPU.

>Потому как в процедурных гоу-полотнах вся предметность растворяется в низкоуровневых
Это не так. На низком уровне у тебя низкоуровневые детали, на более высоком уровне — высокоуровневые. Что тебя смущает, обработка ошибок? Или все–таки отсутствие комбинаторов на уровне языка? Плиз, с ошибками все просто: ты либо их обрабатываешь, либо нет. Го делает очень больно, если ты их не обрабатываешь. А что касается комбинаторов и прочей Фпараши, так я могу только дать флаг в руки: большинство прикладных задач наивно не помещаются в комбинаторную логику, а ненаивный подход создает такие накладные расходы, что с таким успехом можно сразу и на фортране писать. Не смеши мои носки.

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

>Это называется duct tape programming который работает хорошо только кода пишешь манясервисы на 300 строк
Я не хочу открывать для тебя секреты, но duct tape progamming это в принципе весь programming в целом. Если ты думаешь иначе, то у тебя банально мозги промыты какой–то методичкой, которая утверждает иначе. "Ну у нас–то мы действительно делаем правильно!" Это такая глупость, которая в 2021 году даже не требует внимания, настолько очевидно, что это глупость. Ты вообще хоть день программировал в нормально конторе? Представляешь себе немного, как выглядит любой технический процесс? Скажи мне, ололо мастер правильного программирования, что это такое, как не duct tape programming? Разница заключается лишь в том, как ты относишься к этому процессу, вставляешь ли ты палки в колеса, или решаешь эти проблемы?? На этом этапе и становится ясно, что ты либо клеишь изоленту, либо ее отдираешь. По сути, третьего не дано. Все, кто говорят иначе — просто дешевые пиздаболы, которые пытаются продать свою (очередную) секту. Вся суть ремесла в том, чтобы писать грамотный код в инварианте, а не пытаться подогнать его под какую–то конкретную логику, которая тебе кажется эстетичной. Надеюсь, ты когда–то это поймешь.

>А перекладывать архитектурные задачи на инфраструктуру
С подключением. Все "архитектурные", как ты говоришь, задачи — это задачи инфраструктуры. Код должен выполнять конкретные манипуляции между устройствами ввода и вывода за оптимальное время. По этой причине ORM это параша (покажи мне хотя бы одну ORM которая используется в гугле/фейсбуке/амазоне/да где угодно) и ровно по этой же причине любой дроч на "конструкции" такой же бесполезный, потому что в конце–концов это просто манипуляции поверх I/O, а мы уже очень, очень давно, умеем писать эту хуйню. Ты говоришь сишка с ее переполнениями, ок, но это даже 15 лет как не является стандартом. Все кто пишут на сишке сегодня — пишут на ней совсем иначе, как писали на ней 20 лет назад. Переполнения? Плиз. Тебе предлагается оставить свою методичку в другом месте, завалить ебало и писать корректные вещи, завместо нытья по поводу выдуманных вещей.
Аноним 05/04/21 Пнд 16:09:47 198666450
>>1986596
>в ущерб удобству и здравому смыслу
А как ты себе вообще представляешь что такое здравый смысл? Рассел говорит: "Есть одна рука, есть другая рука, значит реальность существует и в ней есть хотя бы две руки." Ахуенный аргумент, только вот ни в каком формализме он смысла не имеет и если ты дольше двух дней в этой теме, то ты понимаешь что это тупо дроч на семантику. Что такое здравый смысл? Комбинаторы — это здравый смысл? Если ты математик–комбинаторик, то это вообще единственный смысл. Если ты алгебраист, то внезапно, это глупость, потому что львиную долю форм ты так не запишешь.

>На любой вопрос почему в этом языке нету X адепты голанга начинают улулюкать и рассказывать что X НИНУЖНО, как им хорошо живется без Х
Да потому что им действительно хорошо живется без этой хуйни. О какой хуйне идет речь? Дженерики? Пожалуйста, умники, мне приходилось писать сложные структуры данных, распределенные балансные деревья и прочью хуйню — каждый раз ты пишешь эту хуйню по–разному. Внезапно, это не учебник по computer science, есть реальные ограничения и ты вокруг этих ограничений танцуешь. Толковый чувак напишет эту дрянь на любом языке, быдло ничего не напишет и будет только лишь ныть про дженерики. У нас в С++ есть дженерики последние 30 лет и что? Ты сильно в восторге от С++? Я не думаю. Львиную долю жизнь я прописал на С++ и не могу сказать что потратил время как–то особенно хорошо. Ну да, есть полиморфизм, ну да, пишешь умно, но какой ценой? Нельзя делать вид, что на поддержку, в коде, этих потуг не уходит 50% времени. Уходит ведь. Потому что это потуги, потому что это дроч на очередные "пирамидки", на очередную семантику, которой СДВГшный программист пытается занять себе мозги, вместо продукта, который он разрабатывает.

Если речь идет об обработке ошибок, то см. выше что я писал. Ты либо обрабатываешь ошибки, либо ты этого не делаешь. Го делает больно, когда ты этого не делаешь. Все очень просто, "магически", по мановению палочки, ничего нигде не обрабатывается. Остальные пререкания это просто дроч на семантику того, как ты это делаешь. В го этого дроча нет.

Других "проблем" в го нет.
Аноним 05/04/21 Пнд 16:15:58 198667251
>>1986617
Если ты обрабатываешь ошибки, то тебе не нужны "отладочные данные" в проде. В протвином случае ты принимаешь решение НЕ обрабатывать ошибки. ОК, это легетимное решение. Поэтому тебе дают отладочные данные. Не хочешь их иметь? Для этого есть сборочные флаги, которые их исключают.

По умолчанию, предполагается что ты ленивый (так и есть).
Аноним 05/04/21 Пнд 17:16:04 198674252
>>1986204 (OP)
>ГОвноЛанг
>компетентные профи
Чет проиграл с такой самоироничной толстоты в шапке, лол.

мимо
Аноним 05/04/21 Пнд 17:57:07 198681353
>>1986649
>Внезапно, оказывается, на линейных комбинаторах много не напишешь
Вот это кстати действительно горькая правда, куда легче написать и понять:
for {
c1 <- colorList
c2 <- colorList
if c2 != c1
c3 <- colorList
if c3 != c2 && c3 != c1
}

Чем начать городить какую-то хуйню с комбинаторами. Хотя в той же скале это всего лишь синтаксический сахар.
Аноним 05/04/21 Пнд 19:36:14 198701254
>>1986813
Удвою это, нахуй комбинаторы!
Аноним 05/04/21 Пнд 21:49:02 198720455
>>1986672
довен, даже при установке флагов - бинарник дохуя отладочных данных содержит. Все функции в таблице экспорта, вопрос - нахуя? Если я их не импортирую.
Аноним 06/04/21 Втр 11:32:55 198770656
>>1987204
Затем что если готовый бинарник будет весить 10кб, а не 20мб, никто не будет покупать винты. Если бинарник будет жрать 650кб, а не полгига, никто не купит память. И так далее.
Аноним 06/04/21 Втр 11:39:06 198771057
>>1987706
а еще коронавирус придумали чтобі нас всех убіть
Аноним 06/04/21 Втр 14:45:30 198790358
>>1986204 (OP)
Когда попросил одноклассников не приносить в /pr/ goвняк
Аноним 06/04/21 Втр 15:25:08 198794559
>>1986649
> Что тебя смущает, обработка ошибок? Или все–таки отсутствие комбинаторов на уровне языка?
Отсутствует возможность у языка строить абстракции.
> Внезапно, оказывается, на линейных комбинаторах много не напишешь!
И нахуй тебе линейные комбики, если есть структурная рекурсия?
Аноним 06/04/21 Втр 15:53:19 198798160
Аноним 06/04/21 Втр 15:56:08 198798661
image 63Кб, 320x178
320x178
image 2521Кб, 320x178
320x178
>>1986288
>но от го отказываются крупные компании которые его же и пиарили 5 лет назад, включая сам гугол
Аноним 06/04/21 Втр 16:18:56 198802562
redmonk-languag[...].png 496Кб, 2100x1675
2100x1675
>>1987986
После некоторого хайпа пошел на спад, потом немного устаканилось
Аноним 06/04/21 Втр 16:37:26 198805463
>>1988025
там вскукарек был "гугел отказался от голанга".
Ты мне даешь какой-то непонятный рейтинг, где CSS оказывается язык, лол, а ассемблер мол вообще пропал между 2012 и 2013-м.
Аноним 06/04/21 Втр 19:31:12 198830464
index.jpeg 6Кб, 237x212
237x212
Аноним 06/04/21 Втр 19:42:31 198831565
Аноним 06/04/21 Втр 22:00:27 198842466
>>1986664
Давай, расскажи как ты квиксорт отдельно оптимизировал под целые числа и с плавающей точкой.
Аноним 06/04/21 Втр 22:16:28 198844167
>>1986277
Я никого не защищаю, но какие отрасли маргинализованные, а какие нет?
Аноним 06/04/21 Втр 23:07:20 198846468
>>1988424
Причем тут быстрая сортировка?
Аноним 07/04/21 Срд 09:24:49 198870869
>>1988054
Дискорд еще от него отказывался года 2 назад. Там был какой то фатальный недостаток в сборщике мусора го, из за которого у них спайки рисовались на cpu графиках. Перешли на раст кста.
Аноним 07/04/21 Срд 10:14:20 198873070
>>1988708
Фатальный недостаток был скорее в самом сервисе дисковода, где обезьяны–неосиляторы пытались сделать из программы на Го буквально аналог редиса, причем вручную выглючали GC и закономерно получили по рукам. С тех пор сборщик был заточен и под эффективную работу даже в таких случаях, но поезд ушел: блогпост "мы уходем в раст" был написан, всем обезьянам завезли новую методичку, где го кал, а раст ахуенный.

Популярнось Го растет значительно быстрее, чем Раста. Особенно в бизнесе, особенно в тырпрайзе.
Аноним 07/04/21 Срд 12:05:12 198877771
на гитхабе го уже третий по популярности после питона, жавы и жс
Аноним 07/04/21 Срд 12:17:32 198878972
lang.rank.0121.[...].png 59Кб, 1050x825
1050x825
Аноним 07/04/21 Срд 12:44:43 198881773
>>1988789
Ну ты же понимаешь что эти рейтинги ни о чем не говорят? Что раст, что скала, powershell, CSS — показатели этих технологий очевидным образом искажены (не говоря уже о том, что многие из них языками программирования не являются). Количество проектов на расте? Не смешите меня, у каждого второго клоуна–аутиста есть hello world на гитхабе, который умеет примерно чуть меньше, чем нихуя. При этом в бизнесе раст не используется _вообще_ в то время, как го используется везде. По графику может показаться что это технологии одного калибра, когда в реальности, раст — это маргинальная хуйня пошиба хаскеля, а го — это топ-5 актуальная технология для прода.
Аноним 07/04/21 Срд 12:47:25 198881874
>>1988730
>Фатальный недостаток был скорее в самом сервисе дисковода, где обезьяны–неосиляторы пытались сделать из программы на Го буквально аналог редиса, причем вручную выглючали GC и закономерно получили по рукам. С тех пор сборщик был заточен и под эффективную работу даже в таких случаях
Откуда такие технические подробности?
Аноним 07/04/21 Срд 12:58:44 198882575
Объясните нубу как запстить Хэллоу ворлд - установил го на линукс, создал файл с кодом hello.go в домашней директории, ну хз как его интерпретировать, в гугле какой-то треш про модули и разные непонятные способы
Аноним 07/04/21 Срд 13:53:38 198887376
>>1988818
Из их собственного блога, конечно же. https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f Ну и еще чуваки из той команды отписывали на оранжевом сайте, я в двух словах понял в чем там заключалась история. Russ Cox из команды Go потом работал с ними в последствии для решения подобного класса проблем. То есть что сделали обезьяны? Они сделали грубо говоря один огромный мап с кучей ссылок (лол) понятное дело что когда эта хуйня на куче (она только там и может быть если ты хочешь использовать динамичесские аллокации, аки map) и ты будешь ее постоянно дергать, фрагментировать, что время от времени нужно будет ее балансировать. Что собственно говоря и делал на тот момент GC в гошечке. Потом в поздних ревизиях concurrent M&S сборщика этот недостаток устранили адаптивным путем (я не помню в каком коммите, но это точно делал russ cox) А что касается растоблядей в дискорде, для того чтобы понять насколько их блог–пост идеологический бред, достаточно просто читануть пару параграфов:

>Discord is a product focused company, so we’ll start with some product context.
...И далее следует примерно НОЛЬ продуктовой информации; любой продуктовик (и я в том числе) сразу понимает, что текст писал дилетант, который примерно нихуя не понимает в продуктах. Это моментальный красный флаг в самом начале статьи, который намекает на то, что дальше ничего толкового быть не может.

>With the Go implementation, the Read States service was not supporting its product requirements. It was fast most of the time, but every few minutes we saw large latency spikes that were bad for user experience.
Во–первых, программные решения это не то, что поддерживает, а то, что может удовлетворять, либо не удовлетворять ограничения. Во–вторых, тупая шлюха все еще ничего не сказала об этих ограничениях. Кроме того, что "large spikes" судя по всему для них неудовлетворительно, хотя хуй знает что это за спайки. Давай посмотрим дальше.

>After investigating, we determined the spikes were due to core Go features: its memory model and garbage collector (GC).
Да-да, конечно, виной всему ни в коем случае не ваш говнокод с кучей ссылок в масштабной хэш–таблице, а именно лейаутинг и сборщик мусора. 100%, отличное оправдание, все обезьяны здесь уже моментально, без всякого сомнения, верят на слово!

>In other words, instead of freeing immediately after the memory is out of use, memory hangs out for a bit until the garbage collector can determine if it’s truly out of use.
Опять обсреньк, это просто бред больной шлюхи. Уже в 2018 году сборщик делал concurrent mark, поэтому на самом деле никого ждать не надо, сразу понятно используется участок или нет. Другое дело что ни один рантайм, да что там, ни один уважаемый аллокатор (я не говорю про арены) не делает моментальные освобождения, ведь это тупо фрагментирует память. Опять–таки, если структура твоего лейаута сложнее, чем вектор.

>These latency spikes definitely smelled like garbage collection performance impact, but we had written the Go code very efficiently and had very few allocations. We were not creating a lot of garbage.
>[...}
>Thus, we figured a smaller LRU cache would be faster because the garbage collector would have less to scan. So we added another setting to the service to change the size of the LRU cache and changed the architecture to have many partitioned LRU caches per server.
Нет, ну этот китч я даже комментировать не хочу. Мусор они не генерировали, за исключением записей и инвалидаций (это кэш, карл!) в ХЭШ–ТАБЛИЦЕ! СУКА.

На самом деле, проблемы с большими кэшами, аренами, оффсетами по производительности и т.д. это все известная лапша. И много кто с ней сталкивается в любом языке с рантаймом, в том числе и в Go, где конкретно с этим классом проблем столкнулись практически одновременно БД чуваки из Cockroach и dgraph (две просто ахуительные СУБД написанные на Go):

Dgraph сделали свое решение Ristretto https://dgraph.io/blog/post/introducing-ristretto-high-perf-go-cache/
Cockroach сделали Pebble для более широкого класса K/V задач, решение на основе RocksDB https://www.cockroachlabs.com/blog/pebble-rocksdb-kv-store/
Кстати, у них есть также ахуенный анализ сложности cgo https://www.cockroachlabs.com/blog/the-cost-and-complexity-of-cgo/ и лекция, которая покрывает большинство проблем, с которыми тебе никогда не придется столкнуться https://www.cockroachlabs.com/community/tech-talks/challenges-writing-massive-complex-go-application/

В итоге имеем что? Обезьяны из дисковода оказались не в состоянии сделать кэш, не в состоянии сделать аллокатор, не в состоянии сделать арену. Да что уж говорить, как оказалось, они в своих потугах ничего не смогли сделать. В итоге, по задаче идеологов, переписали все с нуля на расте (с учетом прошлых ошибок, конечно) и вуаля, внезапно начало работать.
Аноним 07/04/21 Срд 13:58:56 198888077
>>1988825
go run hello.go, это чтобы просто запустить файл, но если ты хочешь больше одного файла запускать, менеджить зависимости и т.д. тогда надо делать mkdir hello && cd hello && mod init hello. Внутри достаточно делать go build && ./hello
07/04/21 Срд 14:26:32 198890578
>>1988777
>третий по популярности
>после питона, жавы и жс
Видно что программист, с нуля считаешь
Аноним 07/04/21 Срд 16:07:51 198902379
>>1988464
Ты же писал, что дженерики вообще не нужны, потому что нормальные пацаны оптимизируют все под каждый тип данных.
Аноним 07/04/21 Срд 17:19:41 198908080
>>1988880
Пишет что нет такой команды
Аноним 07/04/21 Срд 20:19:35 198923781
Аноним 07/04/21 Срд 23:16:06 198942582
>>1989023
Я писал совсем другое, ты просто жопой читаешь. Я сказал что экзотические структуры данных, балансные структуры, распределенные структуры обычно пишутся под конкретный лейаут, под очень конкретные операции. Там тупо не нужны дженерики. Вернее, они может даже и нужны, но в перспективе использование конфликтирующих типов оказывается напряжнее, чем просто придерживаться конвенции.

Что касается квиксорта, так там вообще это не проблема. Есть интерфейс для сортировки, который позволяет тебе создать произвольный slice type, для которого ты можешь менять критерии сортировки посредством полиморфизма, инкапсуляции. В некоторых случаях это намного удобнее, чем городить кастомные сравнивающие лямбды. Плюс есть sort.Slice, который сортирует произвольный слайс с твоей сравнивающией функцией. Конкретно что касается сортировки в го, я тут никогда не упирался в дженерики. В дженерики обычно упираешься когда делаешь какие–то простые, но по сути универсальные структуры данных, деревья. Для этих вещей есть кодогенераторы (ничем не зуже макросов в том же расте, точно такая же мономорфизация) Хотя действительно порой забиваешь и делаешь interface{}, но обычно это все рефакторится на какие–то более конкретные интерфейсы с сохранением безопасности. Паттерн матчинга нет, но никто не запрещает тебе его сделать ручками.
Аноним 07/04/21 Срд 23:59:56 198948883
Это другое.
Аноним 08/04/21 Чтв 00:03:06 198949284
>>1989425
>но по сути универсальные структуры данных, деревья.
НЕНУЖОН
Просто имплементируешь метод Less, и делаешь деревья какие хош.
https://pkg.go.dev/github.com/google/btree#Item
Аноним 08/04/21 Чтв 00:53:57 198955585
>>1989492
Ну да, так обычно и делают.
Аноним 08/04/21 Чтв 11:09:05 198971586
Аноним 08/04/21 Чтв 16:25:56 199017487
Тут уже реквестили как то раз чтива для самоподдува, о крутости гошного подхода к обработке ошибок. Удваиваю реквест, дайте почитать чего умного, а то гугл только негативные статьи подкидывает, а у меня уже жопа пылает от этих err != nil по всему коду блять.
Аноним 08/04/21 Чтв 17:23:05 199022588
Что лучше:

func (obj Object) Method() {}

или

func (obj *Object) Method() {}

?
Аноним 08/04/21 Чтв 17:26:43 199022889
shaq in the wild.mp4 10105Кб, 1280x720, 00:00:41
1280x720
Аноним 08/04/21 Чтв 18:51:37 199034890
Аноним 08/04/21 Чтв 18:56:32 199035191
Аноним 08/04/21 Чтв 18:58:26 199035292
Аноним 08/04/21 Чтв 19:26:48 199041693
>>1990352
Магия FP. Онли лямбды, онли минимализм. Нахуй этот ООП-цирк, когда есть лямбды.
Аноним 08/04/21 Чтв 19:55:54 199046094
>>1990416
Ну да, ООП то у нас нормального нет, остается дрочить на лямбды.
Аноним 08/04/21 Чтв 20:38:24 199049595
>>1990174
Это я реквестил. Вот вчера наткнулся на https://habr.com/ru/company/mailru/blog/490340/, правда самоподдув не удался.
Только еще больше жопа сгорела с того, какой же дегенерат это писал, и с того факта что существует уйма дэбилов которые во всё это верят.
Аноним 08/04/21 Чтв 21:00:05 199051996
>>1990225
что за указатель на тип?
я думал нужно типа
func (*obj Object) Method() {}
мимо не гофер
Аноним 08/04/21 Чтв 22:50:27 199060897
>>1990495
Ну это дефолтный шитпост с хабра. Там день через день подобная хуета публикуется с размазываением абстрактных фантазий по дереву от очередного графомана. А я правда хочу понять, почему сука нельзя сделать НОРМАЛЬНО ебучий обработчик. Да хер с ним даже, это сложно и не 'ПУТЬ GO', ну или исключения ебаные добавить. Невозможно же читать этот пиздец, даже в стандартных библиотеках.
Аноним 09/04/21 Птн 01:18:37 199070798
>>1990174
Просто сделай макрос для этой хуйни и забей хуй. Почему у тебя пылает от безобидной строчки кода? Или ты попросту решил что ты лучше всех, типа ты "не такой", повторять одну и ту же строчку это "не для тебя"?
Аноним 09/04/21 Птн 01:19:08 199070899
>>1990460
Только в го нормальный ООП и есть.
Аноним 09/04/21 Птн 01:20:21 1990710100
>>1990608
Ты не можешь читать этот "пиздец" потому что ты дурилка не хочешь ошибки обрабатывать. Приходи в тред когда подрастешь.
Аноним 09/04/21 Птн 01:27:10 1990718101
>>1990708
Тогда оно и в C есть.
Аноним 09/04/21 Птн 09:59:15 1990849102
>>1990707
Да ничего я не решил, просто это на мой, не самый опытный взгляд это выглядит очень топорно и я хотел бы понять почему именно так сделано. А нахожу только невнятный бред, как на хабре выше, либо отмазы, про то, что в гугле по историческим причинам запрещены исключения, как будто это единственный вариант.
>>1990710
То есть в других языках никто ошибки не обрабатывает, только гоша такой весь золотой, на две строчки логики строчка бессмысленной лапши. Понял - понял.
Аноним 09/04/21 Птн 10:29:19 1990868103
>>1990849
Ты все правильно понял.
Аноним 09/04/21 Птн 10:45:03 1990882104
>>1990519
указатель на тип - это по сути отдельный тип данных, который идет в комплекте с любым типом (кроме интерфейсов)
Аноним 09/04/21 Птн 10:59:45 1990892105
>>1990868
Хуета же подход, в самом деле. Чаще всего никакой обработки, кроме падения с log.Fatal() не требуется, и такой общий обработчик на несколько ошибок очень помог бы. Но нет, давайте копипастить, ибо таков путь.
Аноним 09/04/21 Птн 11:01:36 1990895106
>>1990892
> Чаще всего никакой обработки, кроме падения с log.Fatal() не требуется
Дерjи нас в курсе!
Аноним 09/04/21 Птн 11:14:36 1990906107
>>1990868
Во!! Я и хочу такой самоподдув, как у тебя, чтобы чувствовать, что это не язык ебануто спроектирован, а все остальные говно ебаное.
Ток надо политинформацию найти грамотную.
Аноним 09/04/21 Птн 11:46:32 1990927108
>>1990906
Я не занимаюсь самподдувом, просто смотрю на предметную область с высоты мноgoлетнего опыта. Когда–то у тебя тоjе так получится, все впереди.
Аноним 09/04/21 Птн 12:00:25 1990938109
image 557Кб, 850x1269
850x1269
Ребзя мне тут сказали, что в бекенде петухон почти все и скоро на его замену придет гошечка. Это правда?

Просто сейчас на распутье, куда перекатиться из одной олокоИТ смежной области, но петухон кое-как знаю
Аноним 09/04/21 Птн 12:01:55 1990941110
>>1990938
Совершенно разные задачи.
Аноним 09/04/21 Птн 12:27:28 1990958111
>>1990941
А что тогда на го пишут-то?
Аноним 09/04/21 Птн 12:29:44 1990962112
>>1990958
Апишки для микросервисов.
Аноним 09/04/21 Птн 12:42:29 1990969113
Аноним 09/04/21 Птн 12:43:49 1990972114
Аноним 09/04/21 Птн 12:46:19 1990975115
>>1990962
Ну так микросервис разве не архитектурная реализация того же бекенда?
Аноним 09/04/21 Птн 12:58:12 1990984116
>>1990975
Ну сложную бизнес логику обычно на go не пишут. Чаще всего используют для вынесения высокопроизводительных частей кода в микросервисы на go.
Аноним 09/04/21 Птн 12:58:24 1990985117
Аноним 09/04/21 Птн 13:00:27 1990987118
>>1990984
> Ну сложную бизнес логику обычно на go не пишут.
Да, для этого есть питон.
Аноним 09/04/21 Птн 13:02:20 1990988119
>>1990927
Чем этот своеобразный подход так хорош и почему его все хуесосят и ниодной статьи нормально объясняющей его превосходство нет?
>Ряяя, сначала добейся!! На опыте!! Нипаймешь!!

Выглядит как самоподдув.
Аноним 09/04/21 Птн 13:03:12 1990989120
>>1990984
>>1990987
Бизнес–логика не может быть "сложной", лол, хватит сочинять.

>>1990988
Как пожелаешь, я тебе доказывать ничеgo не буду. Сам поймешь
Аноним 09/04/21 Птн 13:08:30 1990992121
>>1990989
>Бизнес–логика не может быть "сложной", лол, хватит сочинять.
Ну как поработаешь с чем то сложнее магазина про продаже носков - тогда и поймешь.
Аноним 09/04/21 Птн 13:13:09 1990995122
>>1990992
Банковский софт, трейдинg, клиринg (APEX) для тебя достаточно сложно, умник?
Аноним 09/04/21 Птн 13:13:28 1990996123
>>1990989
> Бизнес–логика не может быть "сложной", лол, хватит сочинять.
Как тебе требования в духе "необходимо автоматически проводить платёжные документы указанного типа, счёт получателя в которых начинается с таких-то цифр, счёт отправителя есть в указанной таблице специальных счетов, но только в первый день месяца, если он не является выходным"? И такой хуйни по сравнению с крудами в проекте просто дохуя.

мимо джавист
Аноним 09/04/21 Птн 13:16:46 1990997124
>>1990996
>необходимо автоматически проводить платёжные документы указанного типа, счёт получателя в которых начинается с таких-то цифр, счёт отправителя есть в указанной таблице специальных счетов, но только в первый день месяца, если он не является выходным
Изи, за свою карьеру неоднократно делал такие вещи как для управления инвентарем/персоналом, так и в финтехе (clearning, compliance). ничеgo сложноgo в этом нет
Аноним 09/04/21 Птн 13:17:29 1990998125
Как написать на Го скрипт/приожение, который раз в N часов будет сохраняться сториз из Инсрамма выбранных акаунтов?
А еще в идеале, чтобы на "репостных" сториз он шёл на акканут оригинаьной сториз и сохранялоригинал оттуда
Аноним 09/04/21 Птн 13:19:15 1991000126
>>1990997
>за свою карьеру
Пиздаболом на двачах?
Аноним 09/04/21 Птн 13:20:13 1991001127
>>1990997
Это и есть сложная логика. Сложной логикой называют не то что её сложно писать лол, а то что её много и в ней всё взаимосвязано.
Аноним 09/04/21 Птн 13:20:59 1991002128
>>1990998
Это надо делать на питоне.
Аноним 09/04/21 Птн 13:25:45 1991007129
Аноним 09/04/21 Птн 13:27:16 1991009130
>>1990995
Видимо недостаточно, раз работая с этим ты остался таким узколобым фанатиком.
Аноним 09/04/21 Птн 14:19:42 1991049131
>>1990938
>Ребзя мне тут сказали, что в бекенде петухон почти все
Это правда, новые сервисы на питоне это либо обертка над МЛ хотя на самом деле можно для этого использовать что угодно, даже го либо интернет-магазины на джанге. Если хочешь вкатиться в бекенд бери ноду, на нее вакансий в 4 раза больше, только соглашайся на работу только если они не юзают тайпскрипт, иначе будешь 95% времени фрустрировать.
>и скоро на его замену придет гошечка. Это правда?
Я думаю когда-нибуть го придет на замену джаве и шарпам, но это случиться не завтра и не послезавтра.
Аноним 09/04/21 Птн 14:21:57 1991052132
Аноним 09/04/21 Птн 14:24:06 1991053133
>>1991049
>только соглашайся на работу только если они не юзают тайпскрипт, иначе будешь 95% времени фрустрировать.
Это еще почему?
Аноним 09/04/21 Птн 14:27:01 1991055134
>>1991053
>TypeError: "foo" is not a function
>TypeError: Cannot read property of undefined
>TypeError: null is not an object
при том что, блядь, typeof null => "object"
Аноним 09/04/21 Птн 14:30:57 1991063135
>>1991055
По сравнению с ванильным жиесоговном выглядит, как манна небесная.
Аноним 09/04/21 Птн 14:36:06 1991073136
>>1991053
Ой, я хотел написать, что соглашайся только если используют
Аноним 09/04/21 Птн 14:47:44 1991083137
>>1991073
Ну я так и подумал, поэтому и удивился.
Аноним 09/04/21 Птн 14:48:04 1991084138
>>1991052
что такое "логика" в данном контексте и что такое крон? Я 0 в программировнии. Просто гуглил, и в Инете написано что Го лёгкий язык.
Аноним 09/04/21 Птн 15:06:53 1991100139
>>1991084
>что такое "логика" в данном контексте
Получения списка сторсисов, сопоставление его с локальным списком сторисов, найти несовпадения и скачать их.
>что такое крон
Линуксовый сервис, с помощью которого можно запускать скрипты с некоторой заданной периодичностью
>Я 0 в программировнии.
Тогда тебе нужно либо заплатить денег фрилансерам, либо найти энтузиастов, которые тебе за так напишут это, либо научиться программировать и только после этого попробовать реализовать что-то подобное. С нуля это слишком сложно. Попробуй курсы на степике, если у тебя цель обучиться программированию.
> Просто гуглил, и в Инете написано что Го лёгкий язык.
Так часто говорят, но это не совсем корректно. Это как с топором и пилой - с пилой тебе нужно меньше навыков, чтобы эффективно работать, но тебе всё еще нужны навыки. Когда так говорят, то подразумевают, что знающим любой другой язык будет проще начать писать на го. Но для начала нужно знать другой язык, а так же предметную область - в твоем случае это HTTP API и работа с файлами.
Аноним 09/04/21 Птн 16:05:51 1991141140
Стройте планы на случай неудачи, а не успеха


Это сказано про языки, которые поощряют обработку исключений в самурайском стиле: возвращайся с победой или не возвращайся совсем. В языках, в основе которых лежат исключения, функции возвращают только корректные результаты. Если функция не может этого сделать, то поток управления идёт совсем по другому пути.

Очевидно, что непроверенные исключения представляют собой небезопасную модель программирования. Как вы можете писать надёжный код при наличии ошибок, если не знаете, какие выражения могут кинуть исключение? Java пытается уменьшить риски с помощью концепции проверенных исключений. И насколько я знаю, в других популярных языках не существует аналогов этого решения. Исключения есть во многих языках, и везде, кроме Java, они не проверяются.

Очевидно, что Go пошёл по другому пути. Программисты на Go считают, что надёжные программы создаются из частей, которые обрабатывают сбои до обработки успешных путей прохождения. Учитывая, что язык создавался для серверной разработки, создания многопоточных программ, а также программ, обрабатывающих данные, входящие по сети, программисты должны во главу угла ставить работу с неожиданными и повреждёнными данными, таймаутами и сбоями подключения. Конечно, если они хотят делать надёжные продукты.
#хейтерыСосать
Аноним 09/04/21 Птн 16:36:52 1991157141
>>1991141
>Блог компании Mail.ru Group
Эту графонманию уже раза 3 в треде обоссывали. Сам придумал хуйню - сам с ней поспорил, приправил все это шизоидными высерами про абстрактные ценности и хоба - готова очередная говностатья на хабр, насяльник премию даст.
>надёжные программы создаются из частей, которые обрабатывают сбои до обработки успешных путей прохождения
Как это связано с реализацией обработки через ебанутую копипасту через строку? Доебался конкретно до непроверяемых исключений, которые в полутра полуметртвых языках активно используют, охуеть аргументация. Остальные языкки видимо пздц опасные и ошибки не обрабатывают. Каким же надо быть куколдом чтобы такой пиздец всерьез принимать.
Аноним 09/04/21 Птн 16:41:23 1991161142
>>1991141
>непроверенные исключения представляют собой небезопасную модель программирования
Ахаха, неудачники. Так и будете крэшиться после каждого необработанного эксепшена? Ах да, у вас же даже экспепшонов нету

window.addEventListener('error', function () { return false }) // похуй, пляшем

мимо javascript-господин
Аноним 09/04/21 Птн 16:50:36 1991176143
>>1991141
Берешь и проверяешь данные, а не
Жопа*Собаку/14 = NAN
ой, жопа отпала чо делать.
Аноним 09/04/21 Птн 16:53:56 1991179144
>>1990995
Бизнес логика это еввенты и документооборот
Аноним 09/04/21 Птн 18:26:20 1991271145
>>1990707
Да написать это херня, а вот читабельность кода эти многочисленные проверки ухудшают просто в разы.
Аноним 09/04/21 Птн 19:17:47 1991315146
>>1991271
Когда научишься в скролл приходи
Аноним 09/04/21 Птн 19:37:48 1991326147
Надеюсь, что в go 2 не будет циклов. Уже есть goto, а такое усложнение как цикл это уже излишество
Аноним 09/04/21 Птн 19:50:01 1991335148
>>1991326
Двачну. И лучше избавиться от функций и перейти таки к процедурам. Так же надо избавиться от юникода. Система типов тоже нахуй не нужна, излишество.
Аноним 09/04/21 Птн 20:46:18 1991368149
>>1991326
Утрою тогда, ведь программисты должны во главу угла ставить работу с неожиданными и повреждёнными данными, таймаутами и сбоями подключения, а эти ваши циклы замусоривают мой код, и иногда приходится даже по нескольку строк писать без err != nill.
Аноним 09/04/21 Птн 20:47:56 1991369150
Аноним 09/04/21 Птн 21:44:17 1991399151
>>1991326
Внезапно вздвачну, goto логика выигрывает в каждом случае.
Аноним 11/04/21 Вск 15:20:21 1992701152
Аноним 11/04/21 Вск 15:21:26 1992703153
Если я стану магистром Go, смогу напистаь на нём кастомный движок для AAA клона ГТА?
Хочу свою ГТА, но больше, глубже и качестенее. чем 4 и5. И чем 6-ая часть(в будущем)
или С++ онли?
Аноним 11/04/21 Вск 16:18:47 1992754154
>>1991141
Хоть кто-то ведется на этот маркетинговый буллщит? В нормальных языках функции декларируют как возвращаемый тип, так и возможные типы исключений. Можно их обрабатывать, а можно забить хуй и пусть там наверху разбираются. Это адекватный подход, в отличие от if err != nil
Аноним 11/04/21 Вск 16:55:24 1992781155
Аноним 11/04/21 Вск 17:08:26 1992790156
Аноним 11/04/21 Вск 17:13:40 1992795157
>>1992790
То есть школьник, ясно.
Аноним 11/04/21 Вск 17:15:41 1992797158
>>1992790
>>1992703
Тогда ещё вопросы:
Сколько по-твоему людей участвует в создании ААА-тайтла?
Сколько из них – программисты?
Сколько примерно процентов из всего продукта составляет программирование?
Аноним 11/04/21 Вск 17:24:52 1992808159
Аноним 11/04/21 Вск 17:42:44 1992818160
>>1992797
>Сколько по-твоему людей участвует в создании ААА-тайтла?
от 100

>>1992797
>Сколько из них – программисты?
20% от команды

>>1992797
>Сколько примерно процентов из всего продукта составляет программирование?
Ну тут как считать. Все 100 Гггабайт игры - код.
ССколько времени? Человекочасов?
Я думаЮ, дохуя.

Я лишь сравшивал, го для ААА-геймдева подоздит или нихуя? Я хочу оупен-ворлд игру круче, чем будет ГТА 6. Графон, оптимизация, кастомизабельность кастомного движка, задел на апргрейды и будущее.
Аноним 11/04/21 Вск 18:14:43 1992840161
>>1992818
100 гигабайт это код? А текстуры, модели, музыка и т.д.? Или это тоже кодом генерируется, как в .kkrieger?
Аноним 11/04/21 Вск 18:22:42 1992845162
>>1992840
ну текстуры, модели - это все завязано на движке
музыка тоже. как она проигрывается, синхронихируется, компрессируется и т.д. и т.п
Аноним 11/04/21 Вск 19:25:36 1992882163
>>1992845
Ну смотри, ты же у нас в одного пилишь всю игру, допустим ты лично создал с нуля ИДЕАЛЬНЫЙ движок, знаешь его до каждой строчки кода, лол. Твои действия дальше?
Аноним 11/04/21 Вск 19:27:42 1992884164
Гейдевы опять вместо игр пилят движки?
Аноним 11/04/21 Вск 20:46:13 1992940165
>>1992882
Ищу сценариста,делюсь с ним идеей игры. Нанимаю прогеров, создаём ООО, даю им разобраться с движокм и приступаем к игре. Оупен ворлд , сюжет + мультиплеер, карта - город и пригород, в 2-3-4 раза больше ГТА 5. Питер. Дохуя локаций(ВО, крепость, пушкино, ленино, купчино, кронташтд, петергоф, мб кусок выборга? дохуя моделей нужно будет сделтаь, да), зданий, итереьров, баров на первых этажах, подвалов, мосты, порты, заправки, в общем, пиздец как работы 3д-модельерам и художникам. Машины и общее качесто моделей должн ыбы на уровне ГТА и лушче, а не как в Хеви Рейн или СЕйнтс Роу.
Радио, разговры НПС на уице по телефону, все пересвзяанное межд собой.

Красивая и иделаьно оптимизирваонная графика, на уровне того, ка ГТА 5 восприимется сейчас, чтобы воспринималсь в будущем(когда выдет +5..10...15?? лет%%вы заметили что игры 2000 в 2010 выглядели а кговно а игры 2010 в 2020 выглядят бодрячком? МЕ2, бетман, гта4/5, анчертед 2). Вода, мосты, пляжи, каналы, ночь и вечеР, улицы полные источников света, теефонов, фар, фонарей.
Комедийно-драмтиеский сюжет в стиле ГТА, с юмором, но не как Сейтнс Роу балаган.

уМультиплеер. Охренительый сетевой код, чтобы 80-100 плееров на сервере выдерживал. ЧТобы душевно было.
Аноним 11/04/21 Вск 20:47:40 1992942166
вообще, для Питера и охуенной графики нужно охуенная оптимизаиця. В центре города дохуя мостов, сложных точек обзора(где поле зрения сразу неск. десятков зданий), высокодетализировные здания 19 века, каналы, а нчью - ещё и свет.
Аноним 11/04/21 Вск 22:48:44 1993112167
16180774487030.jpg 44Кб, 382x460
382x460
Аноним 11/04/21 Вск 22:54:40 1993125168
>>1986461
А как тогда все основные десктопные и серверные ОС написаны на Си и нормально?
Аноним 11/04/21 Вск 23:00:51 1993133169
>>1993125
Потому что ОС - это байтоёбский софт, который невозможно написать не на байтоёбском языке, а в те времена, когда писалась их основная кодовая база, разрабов того же Раста даже в яйцах их батьков ещё не было.
Аноним 11/04/21 Вск 23:16:24 1993160170
Аноним 11/04/21 Вск 23:30:28 1993180171
>>1993133
Но ведь ты говоришь
> совершенно не приспособленный для написания чего-либо сложнее автоматизации сливных бачков, и что все нужно было делать по-другому.
а он, оказывается, приспособлен для задач даже более сложных, чем сверхбыстрое асинхронное перекладывание жсонов, которым занимаются все сидящие в треде

>>1992940
А корованы можно будет грабить?
Аноним 11/04/21 Вск 23:33:54 1993184172
>>1993180
> сверхбыстрое асинхронное перекладывание жсонов, которым занимаются все сидящие в треде
Лол, тут половина - не гоферы, а жирные тролли.
Аноним 11/04/21 Вск 23:34:16 1993185173
>>1993184
Тем не менее, занимаются они тем же самым, просто на других языках
Аноним 11/04/21 Вск 23:42:24 1993192174
>>1993180
>А корованы можно будет грабить?
Логика в идеях очень обширная и глубокая. Без роста деревьев в рил тайм(понмии кто общения Мульнье 10+ летней давности? эх время летит), но хочу общий уровень качества мира и геймплейя как рдр 2 и гта 6.

Пока думаю вот, как в GTA VC пасхалка с появляющимся в опредленной предполуночное время изображением пениса, составленном из горящих окон отеля, была реализованна. В оопреденное игровое время менялась текстура облицовки? или что?
Аноним 11/04/21 Вск 23:55:04 1993211175
>>1993112
Чел, представть.
Питер 90-ых или ранних нулевых. Купчино, Дыбено, Автово в роли гетто, НАШИ блять улицы, гаражи, тусклые поребрики(ты вообще обращал внимание как реалистично в ГТА 5 нарисованны текстуры асфальта? их там десятки разных! и бордюры тоже). Мажорный центр, Васька с лысыми парняи и рокерами по вечерам, порты с фсбшными мутками, город охуенно пёстрый. А я ещё загород хочу. И Кронштадт. Каналы, туристы, разговры на улицах. разовры и музыка из баров с кабанчикма на корпоративах. учи интеренсхы миссий, от закладок до уровня фсб.

Я даже думал о физике управления авто, мне в принципе нравится гта 5 больше чем гта 4(можно перемещатся быстрее), но было бы забавно(до N-того раза, после котрого захочется разбить клаву) сделать например на просёлочных частях колею и вохможность немного застрять. НЕ МАДРАННЕР, а что-нибудь казуальне по фану, типа больше непослушности и меньше сцепеления.

Радио, полицеское радиос заспинные в стиле гта 4-5 речами(предзаписааные названия улиц и типа преступлений).

Я только в обшмх чертах держу в голове, хз как реализовтаь свободный масс-шутинг в РФ. Не будет ли инородно выглядеть, не желая превратиь игру в Сейнтс Роу балаган и оставляеясь в рамках сатиры типа ГТА 4 и 5.

Но блин я хчоу игру уровня ААА+, как рдр2/гта6. ДАже просто сделать пустой город такого уровня - это 500+ моделей зданий, высококачественные и всё в одной стилистике. Без повторящихся черт, вывесок и т.д. . Качестенные модели 50+ разных машин, а не как в Хеви Рейн. ЧТобы шины простреливались. Чтоы диски высекали искры и пыль. Это ж сколько работы. А когда трубы глушителя в воде - пузыри из них выплывают. Чтобы про стрельбе в стёкла - они разбивлись как тдельные объекты.

Свет для кадогого здания, мокап, сценарий, сотни страниц реплик актеров. Графика, оптвимизация, саундизнай, дизайн сцен, вообще сборка открытого бесшовного мираю. Движок и инструменты для создания игры.
Аноним 11/04/21 Вск 23:59:07 1993225176
У вас есть инфа о сетевом коде ГТА 5?
мне интересно, когда например на сервере 24 человека - максиумум, и я на складе рядом с портом стреляю в стойку для интсрумнетов и они падают на пол - у других игроков в этот момет на карте - котоыре находятся рядом или вдругом конце карты - тоже пдают?
Или я взрываю бочки с топливом на холмах к востоку от ЛС - другие игроки увидят их взорванными, если подъедут ко мне?

Аноним 12/04/21 Пнд 00:00:23 1993227177
Аноним 12/04/21 Пнд 00:05:47 1993230178
>>1993227
Одевайся, деньги на тумбочке.
Аноним 12/04/21 Пнд 00:13:20 1993233179
>>1993230
Не вижу их там. Сейчас придут братки, заберут все что у тебя есть, жмот.
Аноним 12/04/21 Пнд 00:17:21 1993238180
>>1993160
Можно высрать подобие, но не ОС. Нужен обязательно компилируемый язык на котором можно делать сырую арифметику указателей.
>>1993180
>Но ведь ты говоришь
Ты анонов путаешь, я не он.
Аноним 12/04/21 Пнд 00:22:08 1993247181
image.png 353Кб, 500x281
500x281
Аноним 12/04/21 Пнд 00:27:37 1993256182
>>1993247
Да, по кругу тебя пустят будешь танцевать до утра.
Аноним 12/04/21 Пнд 00:30:42 1993260183
>>1993256
Как что-то плохое :3
Аноним 12/04/21 Пнд 00:35:31 1993263184
image.jpg 52Кб, 720x720
720x720
Аноним 12/04/21 Пнд 02:46:38 1993336185
>>1993211
Чел, получится гта са рашн эдишн. Кринге тот еще.
Аноним 12/04/21 Пнд 03:11:42 1993337186
Вопрос: какого хуя нет нормального веб фреймворка, который будет за меня нормально десериализовать жсоны, не сосать по производительности, и избавит от ебаного бойлерплейта стандартной либы? Потрогал echo, и оказалось, что он даже не может распарсить map[string][]MyStruct, приходится корячиться с вычитыванием из ридера реквеста и встроенным анмаршалером.
Перешел с жявы, и меня поражает дикость местной экосистемы, словно в 2007 вернулся.
Аноним 12/04/21 Пнд 03:26:10 1993339187
15629829761440.webm 1404Кб, 512x384, 00:00:08
512x384
videoplayback.webm 378Кб, 320x240, 00:00:08
320x240
>>1993337
>GOвно
>какого хуя нет нормального
Сам и ответил.
Аноним 12/04/21 Пнд 03:33:25 1993342188
Что-т посмотрел на ваш язык. Какая-то нерасширяемая параша. Как на таком программировать?
мимо лишпер
Аноним 12/04/21 Пнд 08:16:15 1993416189
>>1993342
>Как на таком программировать?
if err != nil {
goto oshibka_v_json
}
Аноним 12/04/21 Пнд 09:04:49 1993437190
>>1993336
Нет. Я же говорю не про мод, а про ААА+ игру
Аноним 12/04/21 Пнд 09:27:31 1993442191
Какие требование нужны чтобы без опыта устроиться на работу миддлом? Или сразу миддлом не возьмут? Я Донован Керниган прочитал , с гитом разобрался немного, прошел курс на степике. Я готов или ещё что-то нужно? Работаю сейчас инженером, образование высшее
Аноним 12/04/21 Пнд 09:32:45 1993446192
1637089280.jpg 36Кб, 583x481
583x481
Аноним 12/04/21 Пнд 10:07:02 1993464193
1618211222006.jpg 138Кб, 807x372
807x372
1618211222007.jpg 276Кб, 1280x720
1280x720
>>1993211
Поиграй лучше в васянский аддон для гта «Барвиха». Примерно так твоя говноигра будет выглядеть
Аноним 12/04/21 Пнд 11:13:19 1993525194
>>1993464
Чел, я говорю про ААА+ некстген/каррентген. Не мод, не просто поделие, а игру уровня сливок индустрии, уровня ГТА. не Мафии 2/3, не Сенйтс Роу и Слипинг Догс, а самой ГТА. Чтобы каждая деталь, свет, мусо на улице, освещение, цвета, анимацяи и физик(инерция) персонажей на уровне ГТА.

Ясен хуй, это игра на 3+ года разработки с несе. сотнями вовлечённых людей и бюджетом в 10+ млн долларов(скорее даже в неск. десятков миллионов).
Аноним 12/04/21 Пнд 11:19:25 1993529195
>>1993525
Сюжета нормального там естественно как всегда не будет, только на графоний дрочить
Аноним 12/04/21 Пнд 11:23:12 1993533196
Аноним 12/04/21 Пнд 12:10:10 1993582197
>>1993529
Будет классный сюжет и мультиплеер с душой.
Аноним 12/04/21 Пнд 13:26:03 1993634198
>>1993442
Вкатиться невозможно, весь этот хайп вокруг айти поднят продаванами курсов. Конкуренция такая, что все итт скоро пойдут писать код на goвне за еду. Не стоит вскрывать эту тему.
Аноним 12/04/21 Пнд 16:12:16 1993804199
>>1993634
Да ладно не гони. Вроде слышал что если идёшь гофером то ещё и докер нужен.
Аноним 12/04/21 Пнд 20:09:24 1994066200
Сап. На го есть какие-то стандарты по микросервисам? Что сейчас модно/используется? Что покурить по этой теме? Сам бэкендер на ноджс, в основном работаю с микросервисной архитектурой. Решил го попробовать, пока что чисто для себя.
Аноним 12/04/21 Пнд 20:39:48 1994112201
>>1993804
Ладно бы, если докер. Без кубернетеса и знания экосистемы авс сейчас никуда...
Аноним 12/04/21 Пнд 21:47:12 1994142202
>>1992754
>В нормальных языках функции декларируют как возвращаемый тип, так и возможные типы исключений.
Т.е. для тебя кроме жабы других языков нет, я правильно понял?
Аноним 12/04/21 Пнд 21:53:42 1994145203
>>1994066
Стандарта нет, каждый дрочит как хочет. У меня на работе http сервер из стандартной либы, тебе я бы рекомендовал попробовать https://github.com/go-kit/kit , а если не понравиться - смотри что-то другое в https://awesome-go.com/
Аноним 12/04/21 Пнд 22:06:53 1994149204
>>1994145
Выглядит интересно, спасибо, погляжу.
Аноним 13/04/21 Втр 01:11:49 1994289205
Как думаете, когда уже завезут девиртуализацию интерфейсов? Это же очень очевидная оптимизация, которая автоматически сделает кучу кода быстрее и уберет кучу аллокаций в хипе
Аноним 13/04/21 Втр 16:17:43 1994726206
photo2021-04-13[...].jpg 105Кб, 1280x994
1280x994
Аноним 13/04/21 Втр 16:39:02 1994771207
Аноним 13/04/21 Втр 20:39:39 1995058208
Аноним 13/04/21 Втр 20:44:24 1995063209
>>1994289
Её обязательно завезут в Go 2, как и дженерики.
Аноним 13/04/21 Втр 22:54:06 1995237210
>>1994289
Лучше убрать интерфейсы вообще, ненужное усложнение
Аноним 13/04/21 Втр 22:57:17 1995244211
>>1995237
Нельзя, слишком много легаси-кода юзает пустой интерфейс.
Аноним 14/04/21 Срд 10:16:16 1995550212
>>1995063
>Go 2
Уберут ли в языке Go Two оператор goto ?
Аноним 14/04/21 Срд 10:38:55 1995572213
>>1995237
если это не рофл, то почему ненужное?
Аноним 14/04/21 Срд 10:44:42 1995577214
>>1995572
Тот момент, когда уже не можешь отличить толстоту от GO-WAY. Иронично.
Аноним 14/04/21 Срд 10:53:16 1995583215
>>1995577
так наоборот - go-way как раз с интерфейсами. а вот толстоту я не выкупил, это правда
Аноним 14/04/21 Срд 23:46:10 1996438216
>>1995244
Оставить только пустой, и дело с концом.
Аноним 14/04/21 Срд 23:46:59 1996439217
>>1995063
Go 2 - это какая-то местная земля обетованная?
Аноним 15/04/21 Чтв 00:02:15 1996443218
>>1996439
Священный грааль с более адекватной обработкой ошибок и шлюхами дженериками, да. По итогу окажется, что все сделали через жепу, потому что НИНУЖНО РРЯЯЯЯ!!1
Аноним 15/04/21 Чтв 00:04:55 1996447219
>>1996443
>По итогу окажется, что все сделали через go-way, потому что программисты должны во главу угла ставить работу с неожиданными и повреждёнными данными, таймаутами и сбоями подключения
Поправил тебя.
Аноним 15/04/21 Чтв 00:12:48 1996451220
>>1995583
Так это новая методичка пока не вышла просто, вот все и в смятении. Вот выйдет, напишут вдохновенных гайдлайнов, скажут интерфейсы ваши, дженерики - это от лукавого, не было ооп нормального, неча и начинать. Вот тогда заживем наконец.
Аноним 15/04/21 Чтв 00:19:39 1996454221
>>1996447
Тут главное не ошибиться, где все еще GO-WAY, а где просто шиза свидетелей GO-WAY. Тонкая грань, и судя по отсутствию нормальных енумов и дженериков, создатели пщ ее не особо ощущают.
Аноним 15/04/21 Чтв 01:01:00 1996471222
golang-color-ic[...].png 17Кб, 185x180
185x180
GO-TWO
Аноним 15/04/21 Чтв 01:07:02 1996475223
блее как перестать проигрывать с этого готу
Аноним 15/04/21 Чтв 01:37:35 1996484224

>>1996451
Я из треда в тред повторяю и повторю ещё раз - дженерики от лукавого, не нужны. Если у тебя часто встречается случай, когда тебе надо иметь одинаковую функцию, но с разными типами данных, тебе надо генерировать код таких функций. Вот какой-то удобный инструмент для генерации (например встроенный подъязык и генератор в составе тулчейна) я бы хотел видеть. Явное лучше неявного, всегда. Но это не значит, что явное нельзя автоматизировать.
Аноним 15/04/21 Чтв 01:55:58 1996486225
>>1996484
Дженерики - это явное, дебил.
Аноним 15/04/21 Чтв 02:06:47 1996488226
>>1996484
>когда тебе надо иметь одинаковую функцию, но с разными типами данных, тебе надо генерировать код таких функций
>какой-то удобный инструмент для генерации
Называется дженериком, лол. Реализуется на уровне самого языка.
Аноним 15/04/21 Чтв 02:39:08 1996494227
>>1996488
>>1996486
Дженерики неявные, потому что их него сразу получается двоичный код, который нельзя прочитать. В предложенной мной схеме программисту доступен исходник.
Аноним 15/04/21 Чтв 07:43:53 1996569228
>>1996494
А из интерфейсов, которые суть утиной типизации дохуя сразу получается оптимизированный двоичный код
Аноним 15/04/21 Чтв 07:52:54 1996572229
Вам дали лямбды, ADT, общий тип данных (список, как универсальный тип). Нет, блядь, придумыапют хуйню
Аноним 15/04/21 Чтв 08:42:03 1996581230
>>1996484
> дженерики от лукавого, не нужны
Слишком толсто.
Аноним 15/04/21 Чтв 09:12:46 1996598231
>>1996494
Не верю исходнику - сиравно смотрю дизасм.
Аноним 15/04/21 Чтв 09:22:18 1996603232
Ви знаете, что меня смущает в гошечке? Что ее/го разработали во времена мультикультурализма, дабы средний индус или китаец или негр-трансгендер мог продуктивно пилить тасочки, не стреляя в ногу себе или соседям по кубику.
Аноним 15/04/21 Чтв 09:37:10 1996612233
>>1996603
Для индусов надо делать язык, в котором будет запрещена копипаста, иначе они всё равно наговнякают индусокода
Аноним 15/04/21 Чтв 09:56:35 1996618234
>>1996612
Го пошел другим путем, он это наоборот поощряет, один из главных принципов го вэй - RY ( Repeat yourself ).
И шизики на серьезе утверждают что так правильнее, и лучше повторить тот же код 20 раз, зато явно и наглядно, чтобы не возникало необходимости вчитываться в код.
Аноним 15/04/21 Чтв 12:14:56 1996772235
>>1996618
> Го пошел другим путем, он это наоборот поощряет, один из главных принципов го вэй - RY ( Repeat yourself ).
Ебать принцип. Сейчас бы столпы DRY, KISS, SOLID нарушать.
Аноним 15/04/21 Чтв 14:24:18 1996912236
>>1996772
Сейчас бы молиться на эти столпы и использовать их везде, даже если в этом нет острой необходимости.
Аноним 15/04/21 Чтв 14:44:20 1996939237
>>1996912
Макак, спокойно. Клепай дальше свои лестницы из if-ов.
Аноним 15/04/21 Чтв 15:36:31 1997032238
>>1996939
Не доводи до абсурда. Я лишь указал тебе на то, что эти "принципы" - на самом деле лишь рекомендации, и есть ситуации, когда их применение лишь усложняет код. Примеры приводить лень, да и похуй.
Аноним 15/04/21 Чтв 16:41:45 1997136239
>>1997032
Сначала ты такой: ну это всего лишь рекомендации, не буду усложнять код
Ты через несколько месяцев: бляяяядь как в это говнище всунуть очередное требование, чтобы оно всё к хуям не развалилось
Аноним 15/04/21 Чтв 17:21:00 1997172240
>>1997032
Для тебя, если есть хороший опыт - вполне может быть.
Но транслировать такие идеи - чистое зло, особенно для нубов. Ебанашки начинают повторять это как мантру и хуярить говнокод, потому что еще неспособны самостоятельно оценивать перспективы масштабирования. Каждый сам к этому придет со временем, но до этого лучше воспринимать все эти принципы как обязательные.
Аноним 15/04/21 Чтв 18:16:51 1997253241
>>1996772
Солидошиз тут как тут
Аноним 15/04/21 Чтв 18:18:09 1997257242
Аноним 15/04/21 Чтв 18:23:09 1997259243
>>1997257
Когда наконец-то будешь писать что-то сложнее мувисерчера и тудушки, сам же откажешься от этого кала. Хотя никогда не будешь лол.
Аноним 15/04/21 Чтв 19:06:54 1997302244
>>1996939
Эх, шас бы дебажить импорт импорта класса с обобщенным апи и проверкой данных через 200 функций перевода времени с тихоокеанского в юникс тайм
Аноним 15/04/21 Чтв 19:23:14 1997312245
Как понять когда использовать указатели и когда нет?
Аноним 15/04/21 Чтв 19:26:36 1997318246
>>1997312
Никогда не используй указатели.
Аноним 15/04/21 Чтв 19:38:57 1997334247
Как понять когда использовать Go и когда нет?
Аноним 15/04/21 Чтв 19:51:09 1997344248
>>1997334
Использовать :
>когда ты во главу угла ставишь работу с неожиданными и повреждёнными данными, таймаутами и сбоями подключения.
Не использовать:
Когда хочешь невырвиглазный код.

Все по методичке кстати!
Аноним 15/04/21 Чтв 20:51:43 1997403249
>>1997312
указатели это для компилятора ил иструктур на Си, в остальных случаях ты будешь ограничен ООП-хуетой с разной иерархией одних и тех-же объектов типа поликлиника ЕБланНейм и он должен знать как его нужно лечить, но если ебланнейм пошел туда не лечится а лечить(ремонтировать) поликлинику то другое.
Вообщем хуета, и надо роли строить и данные тащить отдельно через указатели
Аноним 15/04/21 Чтв 20:58:55 1997418250
>>1997403
Стопе, я изобрел процедуры вот ведь незадача, жаль ебланы на СИ++ строят дом с крыши и внутри площадь выделяют через хип.вдруг не вместится гипотетический холодильник на 50к литров
Аноним 15/04/21 Чтв 21:26:00 1997438251
Здравствуй двач, на связи джавист (лвл ~мидл), хотел спросить так как решил попробовать для себя этот ваш GO, идеи для пет проекта. У себя на уме банальное e-commerce приложение по типу ( гейт на джаве и пара микросервисов на го, общение через РЕСТ). Заранее благодарю
Аноним 16/04/21 Птн 08:58:27 1997691252
Аноним 16/04/21 Птн 09:35:54 1997704253
unnamed.jpg 35Кб, 400x337
400x337
>>1997344
Я понял, но Go пишут пессимисты. А что, если не получится? А что, если не вернёт ответ? А что, если не существует? А что, если ... С такии настроем надо в тестировщики идти, ей-богу.
Аноним 16/04/21 Птн 09:57:47 1997718254
>>1997704
На это го это ещё не в крайней степени, так что жить можно.
Аноним 16/04/21 Птн 11:31:52 1997808255
>>1997344
А почему они приходят повреждённые, с таймаутами и сбоями? Потому что приходят от сервиса на го. Таким образом, если хотя бы один сервис сделать на го, все взаимодействующие с ним тоже придётся на него переписывать. Язык — раковая опухоль.
Аноним 16/04/21 Птн 12:25:42 1997857256
>>1997808
Не можешь победить - возглавь, пока не поздно.
Аноним 16/04/21 Птн 20:13:54 1998405257
А теперь вы такие берете и поясняете, почему я должен использовать не жяву, а именно го для своего супернагруженного 300к пользователей в наносекунду бэкенда.
Аноним 16/04/21 Птн 22:25:06 1998504258
>>1998405
Моча съела говно. Есть шарп, делающий быдложабу и goвно ненужными.
Аноним 17/04/21 Суб 02:40:16 1998655259
>>1998504
>>1998405
Разве у го перформанс не будет получше джавы и шарпа?
Аноним 17/04/21 Суб 04:14:08 1998688260
>>1998504
>А я люблю обмазываться не свежими сртификатами от майкрософт и дрочить. Каждый день я хожу по земле с черным мешком для мусора и собераю в него все сертификаты которые вижу. На два полных мешка целый день уходит...
Аноним 17/04/21 Суб 08:49:12 1998781261
>>1998504
Шарп сосет в плане экосистемы фреймворков и библиотек. А еще под линуксом жява все равно будет лучше, ибо работает под ним без костылей. Шиндовс, как все мы понимаем, - ос для лохов.
>>1998655
Чет не видел достойных сравнений производительности в разных случаях.
Аноним 17/04/21 Суб 11:04:30 1998853262
Аноним 17/04/21 Суб 11:23:52 1998866263
Аноны, как вкатиться? Я лет 10 не программировал ибо быдлоадмин и говнодевопс, думаю язык как раз под меня.
Проблема в том, что не знаю что вообще написать. Я работаю с кубером и терраформом, которые написаны на go. Может какой-то плагин или оператор написать, но я хз что. Подкиньте идей проектов для новичков в этой области
Аноним 17/04/21 Суб 11:41:15 1998867264
>>1998866

Нужно просто подставить жопу настоящему гоферу, чтобы он посадил в тебе зерно, иначе никак духом го проникнуться не получится.
Аноним 17/04/21 Суб 14:09:13 1999001265
>>1998405
Джава - отвратительная, а Го - терпимый.
Аноним 17/04/21 Суб 14:13:38 1999004266
>>1999001
Субъективно. Ты давай поконкретнее, что именно не нравится и почему?
Аноним 17/04/21 Суб 15:13:11 1999078267
>>1999004
Больше кода, ниже удобочитаемость, хуже производительность, зоопарк фреймворков, больше костылей, выше вероятность получить непредсказуемое поведение, больше узких мест в архитектуре, требования к проектированию гораздо выше, список можно продолжать.

мимо охуевший архитектор
Аноним 17/04/21 Суб 15:39:36 1999113268
>>1999078
if err != nil тоби в сраку, архитектор блять. Накодогенерируют себе лычек и выебываются. Ты хоть на го писать пробовал? Без фреймворков бойлерплейта еще больше, чем в жяве, при этом нормальных фреймворков для построения веб крудов не завезли, все какая-то ограниченная хуйня.
Аноним 17/04/21 Суб 17:12:14 1999254269
>>1999113
>на го писать пробовал
Конечно. Единственное, что мне в нём не нравится и что нужно убирать - то, что именованному возвращаемому значению нужен ретёрн.
>бойлерплейта еще больше
Всё равно меньше
>нормальных фреймворков для построения веб крудов не завезли
GORM
>все какая-то ограниченная хуйня
Приведи пример реальных ограничений, которые не преодолеваются самостоятельно в несколько строк.
Аноним 17/04/21 Суб 17:15:43 1999264270
Простите мне картошечки
Аноним 17/04/21 Суб 17:56:59 1999345271
>>1999254
>Приведи пример
Нет аналога спринга, который и жсон распарсит, и в базу сходит, и шедулинг организует, и роутинг предоставит в несколько строк. Или ты сможешь привести пример настолько удобного фреймворка на го? Подозреваю, что либо снова придется все руками пилить, либо подтягивать и изучать 100500 библиотек с непохожими друг на друга апи.
Аноним 17/04/21 Суб 19:01:37 1999394272
>>1999345
Ну так напиши свой спринг, прославишься. Обленились совсем
Аноним 17/04/21 Суб 19:25:09 1999416273
Аноним 17/04/21 Суб 19:26:38 1999418274
>>1999345
>распарсит, сходит, предоставит
Взамен на ебейшие ограничения. Спасибо, но нет.
Аноним 17/04/21 Суб 19:32:05 1999423275
Аноним 17/04/21 Суб 19:40:42 1999441276
>>1999418
Какие ограничения? У спринга кастомизируемость во все поля, потому что это по сути просто DI контейнер, который в свою очередь обрастает модулями. Ничего на гвозди не прибито, хочешь - накостыль свой велосипед, никто не запрещает.
Аноним 17/04/21 Суб 19:57:13 1999463277
Просто го быстрый и легкий. В маштабном проде обычно именно это важно, а не чтобы кодомакакам легко писалось
Аноним 17/04/21 Суб 20:06:08 1999471278
>>1999463
В масштабном проде важно, чтобы код было легко поддерживать. И только потом его скорость, иначе бы все писали на сях/плюсах. А как ты понимаешь, бойлерплейт не очень хорошо сказывается на простоте поддержки кода.
Аноним 17/04/21 Суб 20:34:56 1999505279
>>1999471
Бойлерплейт означает отсутствие магии, и соответственно легкоподдерживаемость. соснули все
Аноним 17/04/21 Суб 21:00:02 1999544280
>>1999505
Ты либо толстишь, либо не понимаешь, что написать хттп сервер на стандартной либе сложнее, чем используя что-то типа echo:

e := echo.New()
e.POST("/suction", func(context echo.Context) error {
...celebrate and suck some dick...
}
e.Start(":8080")

Просто потому, что интерфейсов и бойлерплейта в стандартной либе больше. Соответственно, выше вероятность ошибки и приходится больше кода читать. Магия стреляет в ногу только в специфичных юзкейсах, что довольно редко случается.
Аноним 17/04/21 Суб 21:21:52 1999563281
Сейчас бы в языке Null/Nil иметь...
Аноним 17/04/21 Суб 21:42:29 1999578282
>>1999563
Потому что язык делали не хипсторки с их Either/Result/Optional, а деды из времён сишки.
Аноним 17/04/21 Суб 23:23:13 1999678283
>>1999394
Не взлетит, так как он уже никому нахуй не нужен. Ведь дауны на самоподдуве из-за отсутствия фреймов теперь гордятся тем, что сами выбирают или костылят каждый говнокомпонент, и называют это go-way.

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

ТОЛЬКО ВЫИГРАЛИ
Аноним 18/04/21 Вск 00:47:57 1999740284
>>1999678
Ну хуй знает, в конторах часто пишут свои либы, иногда даже свои имплементации для std.
Аноним 18/04/21 Вск 01:54:30 1999794285
>>1999740
Я ж так и написал:
>сами выбирают или костылят каждый говнокомпонент
Аноним 18/04/21 Вск 03:00:18 1999812286
>>1999113
>при этом нормальных фреймворков для построения веб крудов не завезли, все какая-то ограниченная хуйня.
https://github.com/gofiber/fiber

Мимо перекатыш из бекенда на node.js + express, fiber вдохновлялся экспрессом
Аноним 18/04/21 Вск 10:47:51 2000013287
>>1999812
Ну твою ж мать, еще один роутер, обещающий колоссальную производительность. И как мне выбрать самый быстрый, если бенчмарков почти нет? Свои писать? Ну збс теперь, как только спринг на го допишу, сразу займусь бенчмаркингом роутеров.
Аноним 18/04/21 Вск 11:45:25 2000078288
>>1999563
Потому-что пидрилы не знают что нил только в неинициализированных и динамически созданных полях, а так нулл спокойно заменяется вложеным булем в булю
Например я говорю вон там дает памела андерсон помацать за сиськи за углом.
Тебя спрашивавют правда? Ты или даешь ссылку на меня или кажешь нулл, так как не знаешь данные мои правдивы или нет.
Аноним 18/04/21 Вск 15:11:29 2000285289
Есть существенные изменения с 2017?
Аноним 18/04/21 Вск 15:38:13 2000321290
>>2000285
Разве что модули, не надо больше все исходники держать в GOPATH.
Аноним 18/04/21 Вск 15:44:23 2000328291
Как же я угараю с маскота голанга, такой то рашка квадратный ватник.Интеересо, кто нарисовал?
Аноним 18/04/21 Вск 15:58:27 2000355292
почему всю крипту на го пишут?
Аноним 18/04/21 Вск 19:29:58 2000654293
Аноним 18/04/21 Вск 19:31:24 2000659294
>>2000328
Не ебу. Но язык написан кретинами, подобно маскоту.
Аноним 18/04/21 Вск 20:38:19 2000701295
>>2000659
Что, синтаксис не осилил? ХАХАХА
Аноним 18/04/21 Вск 21:27:34 2000748296
Аноним 18/04/21 Вск 21:29:05 2000749297
>>2000355
Потому что это золотая середина по перформансу, удобству разработки и скорости разработки. А узкие места всё равно делают на плюсах и расте.
Аноним 18/04/21 Вск 22:57:44 2000828298
>>2000749
А некоторые извращуги на cgo и unsafe
Аноним 19/04/21 Пнд 08:35:26 2000978299
>>1999740
Это утверждение 100% верно и для плюсов, как ты думаешь - это хороший знак?
мимо студент плюсовик
Аноним 19/04/21 Пнд 08:43:29 2000980300
Аноним 19/04/21 Пнд 13:49:45 2001291301
>>2000978
Так вообще везде, может в ентерпрайзах чуть меньше
Аноним 19/04/21 Пнд 23:14:55 2001872302
Хочу сделать пет проект, где придется юзать основные особенности го т е горутины и каналы, но ничего не приходит в голову из хоть сколько то полезного и применимого. Есть какие-нибудь идеи?
Аноним 20/04/21 Втр 00:14:53 2001901303
>>2001872
Вариации на тему прокси-серверов. Ты запускаешь на локальной машине клиента, а сервере или серверах серверную часть одну или несколько. Между ними идёт трафик по вебсокетам в каком-то закомуфлированном виде.
Аноним 20/04/21 Втр 00:44:27 2001917304
>>2001872
Что-нибудь с веб или tcp сокетами, связанное с торрентом или блокчейном
Аноним 20/04/21 Втр 06:57:35 2001991305
>>2001872
>где придется юзать основные особенности го т е горутины и каналы
Любой проект сложнее хеллоуворлда
Аноним 20/04/21 Втр 11:22:59 2002156306
>>2001872
Cделай "шардинг" для sqlite базы по сети, с обработкой ошибок, таймаутами и так далее.
Аноним 20/04/21 Втр 12:33:47 2002214307
>>2001872
Создай детецентрализованную дб, на каком-нибудь p2p-протоколе.
Аноним 20/04/21 Втр 14:01:44 2002349308
>>1993634
Двачую, забейте на это говно и идите строителями, прогеры уже никому не нужны а вот строители дефицит
Аноним 20/04/21 Втр 15:46:38 2002504309
>>2002349
> а вот строители дефицит
> балки таскать может любой ашот
Аноним 20/04/21 Втр 20:30:14 2002801310
image.png 224Кб, 900x366
900x366
Стране нужны истинные чеды, а не сойбои кодеры. Хочешь вкатиться в программирование? Прости, но ты уже проиграл в этой гонке, даже не открыв IDE. Дальше тебя ждет только уныние и медленная агония в непрекращающемся потоке говнокода, такая, что ты возопишь от ужаса и все равно в итоге вернешься на верный путь, путь Инженера. Так не проще ли не испытывать свои нервы на прочность?
Аноним 20/04/21 Втр 20:31:52 2002807311
НИИ и заводы ждут, мужики не вывезут без тебя, анон.
Аноним 20/04/21 Втр 20:53:54 2002829312
>>2002801
> uses Typescript
Разве в браузере можно использовать что-то кроме JS/TS/Elm/Purescript/WA?
Аноним 20/04/21 Втр 20:55:22 2002832313
>>2002829
Тайпскрипт конпелируется в жс при сборке
Аноним 20/04/21 Втр 21:13:19 2002850314
>>2002832
Как и Elm с Purescript. И хули?
Аноним 20/04/21 Втр 21:19:42 2002855315
>>2002829
Наверное, имеется в виду, что он использует именно TS, а не чистый JS, как тот чед справа. Хз, на что это намёк, но хуёва та шутка, которую нужно объяснять.
Аноним 20/04/21 Втр 21:20:56 2002858316
>>2002850
Пишешь код на TS, а в браузере уже сконпелированный JS запускается, всё просто же.
Аноним 21/04/21 Срд 08:33:11 2003170317
>>2002801
Самое смешное, что картинка правдива, банальное мужское ретивое помогает разруливать очень сложные ситуации как в организационном плане так и в техническом.
Аноним 22/04/21 Чтв 09:59:01 2004124318
Аноны, поясните за чистый код. Я привык писать код следующим образом: создаю структуру с зависимостями (например, какой-нибудь http-обработчик с репозиторием внутри) и рядом с ней описываю интерфейсы зависимостей, тем самым избавляясь от зависимости от конкретной реализации и от методов, которые моей структуре не нужны. Где-то в другом пакете лежит реализация (одна реализация может быть сразу под несколько интерфейсов). Вопрос: где нужно хранить кастомные ошибки, которые может вернуть метод интерфейса? В месте реализации? Тогда будет существовать зависимость на уровне пакета (т.к пакет с реализацией все равно будет импортирован). В месте объявления интерфейса? Тоже не ок: во-первых, возникнет проблема при необходимости объявить идентичный интерфейс в другом месте; во-вторых, пакет с реализацией начинает зависеть от места его использования.
Аналогично со структурами, возвращаемыми методами интерфейса: нормально ли, если они будут находиться в том же пакете, где лежит реализация этого интерфейса? Вообще, стоит ли пытаться избавиться от decoupling'а на уровне пакетов или достаточно сделать это на уровне структур?
Аноним 22/04/21 Чтв 11:20:22 2004216319
>>2004124
>создаю структуру с зависимостями

объявляю*
Аноним 22/04/21 Чтв 17:55:41 2004697320
>>2004124
Хз, вообще не эксперт в чистом-хуистом коде, и в go-way. Но зачем городить какую то хуету с объявлением интерфейса в месте использования и тд. У тебя есть интерфейс, с какой то одной бизнес функцией, он лежит в отдельном паекте, рядом с этим же интерфейсом лежат структуры с которые он использует, и кастомные ошибки тоже, это часть контракта этого интерфейса. Внутри этого пакета делаешь еще один пакет с реализацией этого функционала и все. Так ты отвязываешься от реализации, и от клиентов которые используют этот интерфейс. В твоих же случаях все просто пиздец как связано и сложно найти концы где какие там интерфейсы реализуются. Опять же, ты нарушаешь этой хуйней solid, а именно принцип единой отвественности, у тебя есть какой то god object который имеет несколько назначений (интерфейсов).

Например если это репоизторий какой-то для доступа к бд, то ты создаешь на каждую бизнес сущность (табличку) отдельный интерфейс репозитория, и отдельную реализацию этого репозитория. Все entity которые возвращает репозиторий лежат рядом с интерфейсом, потому что это часть этого интерфейса

Аноним 22/04/21 Чтв 18:38:18 2004750321
>>2004697
>у тебя есть какой то god object который имеет несколько назначений (интерфейсов)

Необязательно один, это могут быть разные структуры, это просто пример.

>Например если это репоизторий какой-то для доступа к бд, то ты создаешь на каждую бизнес сущность (табличку) отдельный интерфейс репозитория, и отдельную реализацию этого репозитория. Все entity которые возвращает репозиторий лежат рядом с интерфейсом, потому что это часть этого интерфейса

Это нарушает принцип разделения интерфейса. Допустим, я на бизнес-сущность создал один интерфейс репозитория из 7 методов. Он используется несколькими клиентами, и бОльшая часть из них использует всего 2 из 7 методов. А зависит по итогу от всех семи. Именно этого я стараюсь избежать за счет объявления интерфейса в месте использования методов.

П.С. Я в итоге решил свою проблему за счет того, что кладу кастомные ошибки рядом с сущностями, а интерфейсы все так же объявляю по мере и в месте использования. С клиентами (например, http-клиентами) поступил примерно так, как ты описал: создал отдельный пакет с интерфейсом клиента, описал структуры и ошибки и внутри него создал еще один пакет с реализацией.
Аноним 22/04/21 Чтв 18:41:14 2004754322
>>2004750
Единственное, что мне все еще не нравится - это то, что по итогу у меня много конфликтующих имен пакетов, типа internal/handler/user и internal/service/user. Мб я неправильно структурировал проект, конечно. Благо, они совместно используются только в main.
Аноним 23/04/21 Птн 15:00:37 2005667323
>>2004754
Мне кажется у тебя слишком глубокая вложенность, я бы сделал либо
internal/handler/user.go и internal/service/user.go
либо
internal/user/handler.go и internal/user/service.go
(жирным - название пакета)
Аноним 23/04/21 Птн 15:05:40 2005679324
При том первый вариант лучше, т.к. у тебя локальная область видимости для всех хендлеров позволяет иметь internal/handler/utils.go c неэкспортируемыми общими методами, которые используются всеми хендлерами (например, прочитать реквест в структуру или записать респонс из структуры)
Аноним 23/04/21 Птн 15:21:01 2005708325
Нужно просто понимать, что такое неймспейс и что там должно быть, а чего - нет. Механизм чтения структуры из io.Reader'а, отдающего json может пригодиться и при чтении конфига, и при работе с очередями, и еще много где. Но вот чтение из http.Request'а content-type и на его основании читать из body в структуру разными способами - уже handler-специфик код и он не должен быть экспортируемым
Аноним 23/04/21 Птн 17:15:38 2005892326
Может кто-то поделиться гитхабами десктопных приложений на го?
Аноним 23/04/21 Птн 17:26:40 2005910327
Аноним 23/04/21 Птн 17:37:04 2005936328
Ну чё, гоферкон смотрим? Там обещают мастер-класс по приготовлению кофе от писечки из Гетта
господи стыд какой
Аноним 24/04/21 Суб 00:44:49 2006372329
>>2005679
В моем случае просто помимо user service существуют еще и другие, и у каждого из них есть свои dto и вспомогательные структуры. Не хочется, чтобы все эти вещи лежали в общей куче. Ну и не хочется префиксовать названия структур/констант/функций, если они повторяются для разных сущностей
Аноним 24/04/21 Суб 09:52:20 2006483330
>>1988873
Почему у них тогда раст не лагает?
Аноним 24/04/21 Суб 12:06:34 2006566331
>>2006483
Так традиционная практика:
-Пишем хуйню на языке X
-Хуйня получилась кривая, рассказываем какой язык X говно
-Переписываем хуйню правильно на язык Y, уже хорошо понимая где мы ранее допускали ошибки
-Рассказываем какой язык Y заебатый
Аноним 24/04/21 Суб 18:52:19 2007240332
Подскажите, как нужно использовать мьютексы в рекурсивных горутинах, которые запускаются внутри хендлеров. Можно ли просто создать переменную мьютекса в хендлере и передавать по ссылке в горутины?
24/04/21 Суб 20:48:41 2007367333
>>1986204 (OP)
Как же охуенно, что я уже 2 года ничего не писал на этом goвне. Спасибо, Господи, за нормальные языки программирования!
Аноним 24/04/21 Суб 21:12:16 2007406334
>>2007367
Два AbstractSingletonProxyFactoryBean этому господину.
Аноним 24/04/21 Суб 23:20:30 2007546335
>>2007240

Вот у этого забрать компьютер и вон из профессии

за анус себя рекурсивно дерни, пес
Аноним 25/04/21 Вск 04:51:50 2007772336
>>2007367
В какие языки перекатился?
Аноним 25/04/21 Вск 12:41:01 2007933337
Аноним 25/04/21 Вск 12:43:23 2007937338
>>2007240
Ты хуйню какую-то делаешь, инфа 100%
Используй каналы везде где только можно, где нельзя - выдумывай хуйню на атомиках или мутексах
Аноним 25/04/21 Вск 12:46:07 2007938339
Screenshot20210[...].png 24Кб, 331x385
331x385
Аноним 25/04/21 Вск 13:07:59 2007947340
>>1986204 (OP)
>пик 2
мимокрок, просматривал треды и проорал на весь район с соседями
Аноним 25/04/21 Вск 19:42:01 2008346341
>>2007938

миддла-стремящегося в тебе вижу я
Аноним 25/04/21 Вск 20:47:31 2008425342
>>2007937
а чем каналы лучше?
25/04/21 Вск 21:12:34 2008463343
>>2008346
Унтерменша позорного со шрифтом хипстерским вижу я в нем
Аноним 25/04/21 Вск 21:46:51 2008512344
>>2008425
Тем, что они упрощают многопоточный код (по крайней мере, так говорят): проще закинуть сообщение в канал и не думать, что происходит на другой стороне, чем держать в голове, что вот к этому ресурсу доступ будет из множества горутин, а значит надо вешать мьютекс.
С другой стороны, если контеншн за ресурс относительно маленький, мьютексы производительнее каналов.
Аноним 25/04/21 Вск 22:48:34 2008607345
>>2008463

все там были

>>2008512

> по крайней мере, так говорят

откуда вы только блять лезете.jpg

сходите вместе с >>2008425 почитайте про концепции shared memory и message passing, потом про паттерны многопоточных приложений, вспомните про кисс и солид, а потом подумайте о цене поддержки, масштабировании, gracefull shutdown'е, gracefull degradation'е и течке с локами вашей рекурсивной поеботы

да-да, и не забывайте дедушку амдала и на каждом этапе задаваться вопросом "а не хуйню ли я делаю"

нахуй я все это пишу, все равно же никто прислушиваться не станет
Аноним 25/04/21 Вск 22:57:24 2008616346
>>2008607
Баззворд на баззворде, а по делу нихуя. Иногда проще навесить лок, чем ебаться с каналами-карнавалами. В той же стандартной либе локи используются.
Аноним 25/04/21 Вск 23:04:40 2008618347
>>2008616
Так дело в том, что с каналами работать намного удобнее и проще, чем анальная ебля с мьютексами
Аноним 25/04/21 Вск 23:29:28 2008641348
>>2008618
Не во всех случаях, конечно же. И это именно то, что я пытался донести. Идиома mutex hat в качестве пруфа.
Аноним 25/04/21 Вск 23:50:42 2008660349
>>2008607
Как стать таким же охуенным как ты?
26/04/21 Пнд 15:25:21 2009207350
>>2008607
У меня никогда такого шрифта не было, ведь я не глиносексуал.
Аноним 27/04/21 Втр 15:52:41 2010329351
Полгода изучал пхп, решил переобуться в гоу, стоит ли забить на пыху и забыть как страшный сон, или лучше доучить плюс фреймворки?
Аноним 27/04/21 Втр 16:19:57 2010370352
>>2010329
Обычно когда начинаешь учить другой язык, на предыдущий хуй забиваешь (из моего опыта), только если с первым ты не связан рабскими рабочими узами.
Аноним 27/04/21 Втр 16:23:53 2010377353
15953594397200.jpg 42Кб, 700x551
700x551
Вопрос к оптимизаторам. Есть серверное приложение, с каждым новым подключением клиента, спавнится 3 горутины, стоит ли сделать отдельный пулл горутин, чтобы не спавнить их заново при каждом подключении? Подключений может быть очень много в единицу времени
Аноним 27/04/21 Втр 18:57:38 2010595354
>>2010377
А тебе не похуй? Горутин можешь хоть миллион наспавнить, там динамический стек, я не думаю, что у тебя там сотни тысяч запросов в секунду обрабатываются. Главное проконтролируй, что они не текут (т.е. не ломаются и не остаются в памяти). Пул горутин - это уже скорее воркеры различные, которые в фоне просто висят.
Аноним 27/04/21 Втр 19:01:40 2010598355
>>2008512
Да, они его упрощают. Канал - это буквально под капотом очередь с мьютексом, вот и все.

>>2008607
Ты с шизами споришь
Аноним 27/04/21 Втр 19:09:12 2010605356
>>2010595
А если и сотни тысяч? Прям щас работаю над проектом, где общая нагрузка где-то 300к рпс. И вот как туда прикручивать горутины, чтоб не наебнулось?
Аноним 27/04/21 Втр 19:54:11 2010630357
>>2010377
Прикручивай в лоб, если выяснится, что сосёшь из-за шедулера, будешь переделывать. Преждевременная оптимизация это плохо
Аноним 28/04/21 Срд 08:37:40 2011056358
>>2006566
Но ведь у тех кто сразу начинает писать на нормальном языке нету жалоб на производительность
Аноним 28/04/21 Срд 10:44:42 2011145359
Подкиньте идею для пет проекта, хочу что нибудь с elasticsearch сделать, чтоб освоить технологию
Аноним 28/04/21 Срд 11:03:53 2011164360
>>2011145

поиск по пацанским цитатам запили со ссылками на соц.сети, кто их постил, статистикой постинга, лайками и на что еще фантазии хватит
Аноним 28/04/21 Срд 13:42:55 2011375361
Всем кулити. Мне 25, вкатываюсь в тестирование. Собираюсь поработать тестером годик-два и параллельно хочу для себя начать изучать программирование с нуля. Дело в том, что я учился в вузе на технаря, проходил и плюсы, и шарп, и джаву, и питон, но из-за того что мы использовали языки для программирования математических задач, на 5-6 паре программирования каждого ЯП я бросал это дело. Сейчас знаю базовый синтаксис многих языков, условия, циклы, работу с массивами и т.д., знаю как создать и использовать функции. С ООП не работал и по сути не знаю что это такое даже. Ну как, знаю, но не в правильном представлении использования ООП.
Короче, хочу развиваться в вэбе в бэке. Смотрю сейчас в стороны: пхп + ларавель, джс + нода, го.
Склоняюсь больше к го, т.к. интересен его синтаксис.
Есть пара вопросов к вам - гуру.
1. Как первый ЯП выбирать Го это совсем хуёво? Я имею в виду изучать само программирование с помощью этого языка.
2. Вкатываться после тестера в го разрабы в 26-27 лет поздно или нормально?
3. Какая реальная вилка по зп на джуна го с техническим бэком (ну помимо технической хуйни, кстати, я успел поработать на складе, заводе и в вузе, и в логистике, но в резюме не пишу об этом и стараюсь об этом не говорить)
Аноним 28/04/21 Срд 15:46:25 2011524362
>>2011375

ну, пока тебя мамка содержит, можешь хоть в хаскель, хоть в идрис первым вкатываться
Аноним 28/04/21 Срд 16:53:02 2011648363
>>1996612
>Для индусов надо делать язык, в котором будет запрещена копипаста, иначе они всё равно наговнякают индусокода
Любой язык с форматированием кода пробелами. Я не смог в nim lang копипастить. Всё сбивается, вложенные блоки оказываются вложены не туда, куда хотел. Nim lang - язык в котором приходится писать самому!
Аноним 28/04/21 Срд 17:21:45 2011689364
>>2011524
Я на фрилансе 20-25к имею в месяц. Все бабки уходят на еду домой и на интернеты, телефоны, интернеты и т.д.
Аноним 28/04/21 Срд 20:27:17 2011924365
Я в этом вашем го новенький. Каким образом по-православному работать с базой данных? Просто с помощью database/sql?
Аноним 28/04/21 Срд 20:31:41 2011930366
>>2011924
По канону - да, без всяких GORM, всё руками, всё явно, побольше бойлерплейта, как у дедов в прошлом веке.
Аноним 28/04/21 Срд 20:32:26 2011932367
Аноним 28/04/21 Срд 21:59:38 2012013368
>>2011932
можно через database/sql, можно взять орм - например, ent
если не хочется орм, но и впадлу писать запросы руками - то можешь взять squirrel или dbr
Аноним 29/04/21 Чтв 02:44:56 2012271369
>>2011375
> Склоняюсь больше к го, т.к. интересен его синтаксис.
Странная мотивация, на синтаксис должно быть пофиг, язык это же просто инструмент для решения задач
> 1. Как первый ЯП выбирать Го это совсем хуёво? Я имею в виду изучать само программирование с помощью этого языка.
Норм, но наверное шарп лучше был бы, или джава, или даже тайпскрипт как вариант (я сам бек пишу на ноде/тс в том числе, помимо го)
> 2. Вкатываться после тестера в го разрабы в 26-27 лет поздно или нормально?
Я бы сразу в разрабы шел, зачем время терять в тестировании?
> 3. Какая реальная вилка по зп на джуна го с техническим бэком
Москва 60-120к, остальные города 40-80к, остальной постссср кроме России хз
Аноним 29/04/21 Чтв 13:08:34 2012668370
>>2012271
>Странная мотивация, на синтаксис должно быть пофиг, язык это же просто инструмент для решения задач

Ну я бы не сказал. Мне чисто эстетически приятнее читать код на го, чем на какой-нибудь джаве/пхп. Мне проще его воспринимать - это неплохо так влияет на эффективность моей работы.

Мимо другой анон
Аноним 29/04/21 Чтв 15:58:59 2012815371
>>2010605
Не может у тебя быть такого проекта. Если бы была такая нагрузка - были бы реплики, разделяющие нагрузку. Один процесс не справится с такой нагрузкой, если это не хеллоуворлд.
Аноним 29/04/21 Чтв 16:10:12 2012833372
>>2012815
Я же сказал - общая нагрузка. Естественно, там сильно больше одного инстанса. Но написано это все на жяве, и интересно, есть ли смысл переписывать рпсную часть на го и выносить в отдельный компонент, будет ли прирост? inb4: все индивидуально и надо замерять, где узкие места, а не заниматься хуйней.
Аноним 29/04/21 Чтв 18:50:31 2013010373
>>2012668
Мне вообще по синтаксису тайпскрипт приятнее всего, на го конструкции иногда слишком громоздкие получаются + бойлерплейт и всратая обработка ошибок
Аноним 29/04/21 Чтв 22:02:34 2013242374
А почему лучшее в мире IDE Goland не показывает использования функции в других пакетах?
Аноним 30/04/21 Птн 00:07:38 2013374375
>>2013242
Потому что это очередное поделие от криворуких обезьян-олимпиадников из жид брейнс. Просто пара примеров, чтобы понимать примерный уровень:
1. Я использовал как интеллиж, так и голанд, и в обоих продуктах одна и та же проблема: периодически они перестают понимать импорты и видеть модули. Иногда решается очисткой кэша, иногда приходится сносить репозиторий и ставить заново. И это тянется уже несколько лет, несколько лет эти пидарасы не могут пофиксить такой явный баг, который, блять, еще и кочует из продукта в продукт.
2. Не знаю насчет голанда, но интеллиж течет, как сука: нельзя оставлять открытым более чем на неделю, иначе сожрет всю память. Я уж не знаю, как они умудрились получить утечки памяти в поделии на жяве, где верхний предел конфигурируется на уровне жвм, но они блять справились.
3. Охуительный юзер экспириенс. Ебучий баннер на старте, который всегда показывается поверх остальных окон. И мало того, все твои закрытые проекты на старте вместо тихого открытия в фоне, открываются в окнах, каждое из которых дергает фокус на себя, перекрывая прочие окна и просто не давая тебе заниматься другими делами, пока это говно грузится.
Аноним 30/04/21 Птн 00:42:19 2013411376
>>2013374
Это да, сам иногда с таких перлов охуеваю. Но всё равно лучше ничего не придумали.
Аноним 30/04/21 Птн 01:26:45 2013459377
>>2013242
Показывает даже в других проектах, по ктрл-клику
Аноним 30/04/21 Птн 06:36:12 2013528378
>>2013459
Ну, у меня не показывает((
Только функцию предлагает удалить
Аноним 30/04/21 Птн 08:59:28 2013576379
16190846747760.jpg 42Кб, 1177x662
1177x662
Аноним 30/04/21 Птн 10:13:57 2013618380
Аноним 30/04/21 Птн 10:14:16 2013619381
Аноним 30/04/21 Птн 10:57:55 2013668382
Вот эту >>1990998 хуйню получится на го сделать с помощью goinsta: https://github.com/ahmdrz/goinsta ? Знаю основы го, хочу первое приложение с API написать
Аноним 30/04/21 Птн 11:56:29 2013721383
Аноним 30/04/21 Птн 13:41:20 2013866384
Аноним 30/04/21 Птн 19:36:20 2014254385
>>2013576
Ой да ну нахуй. Я вместе с vscode начинал знакомство с го, не представляешь сколько он мне нервов и времени сожрал.
Пока написал хелловорд, я успел столкнуться с:
-Бесконечным сохранением файла
-Через 10 секунд после запуска вскода, просто пропадало всё автодополнение
-Каким-то хуем вскод через раз ругался на импорт пакета "fmt", типо он не используется. При том что я юзал fmt.printLn и все компилилось
-Вообще не понимаю как, но этот сраный "редактор кода" несколько раз протекал и загружал всю систему, не мог в браузере сидеть. С мощными и громоздкими IDE от жидов такого ни разу не было, что характерно.

Хотя, для шарпа я всегда с удовольствием его использовал, никаких проблем ни разу не было. Так что всё же не он виновник перечисленных проблем, это всё кривой extension.
Полюбил go только после установки goland.
Аноним 30/04/21 Птн 20:12:14 2014306386
>>2014254
> IDE от жидов
Откуда информация?
Аноним 30/04/21 Птн 20:17:06 2014311387
Аноним 30/04/21 Птн 20:21:10 2014321388
Vimlogo.svg.png 106Кб, 1200x1202
1200x1202
Аноним 30/04/21 Птн 20:25:01 2014330389
1200px-EmacsIco[...].png 262Кб, 1200x1200
1200x1200
Аноним 30/04/21 Птн 20:44:51 2014349390
>>2014321
>>2014330
Не, спасибо, я лучше буду на листочке писать и в голове компилировать. А деплоить через AnusCI.
Аноним 30/04/21 Птн 20:56:11 2014368391
Аноним 01/05/21 Суб 14:15:57 2014971392
Это во всех языках со статической типизацией, или только в go при сравнении через "==" двух численных переменных разных типов ( например int и uint64 ), но с одинаковым значением, возвращается false?
Аноним 01/05/21 Суб 14:27:52 2014987393
>>2014971
Да, во всех. Ты сравниваешь через "==" не значения переменных, а ссылки на объекты.
Аноним 01/05/21 Суб 14:32:20 2014992394
Аноним 01/05/21 Суб 15:11:08 2015027395
>>2014971
в нормальных языках компилер ругнётся если ты попытаешься их сравнить
Аноним 01/05/21 Суб 17:59:50 2015309396
>>2014992
>Не пизди.
Сейчас попробовал в go playground это проделать, действительно при сравнении int и uint64 компилятор ругается.
Но я не один в один с такой проблемой столкнулся, у меня была переменная "a" типа uint64, со значением 0, которое задавалось извне.
Теперь самое интересное: a == 0 возвращало false, a == uint64(0) возвращало true. А если явно перед сравнением задать a = 0, то a == 0 тоже возвращал true. Очень странно...
Аноним 01/05/21 Суб 18:17:30 2015349397
1543.png 12Кб, 271x239
271x239
Почему в гоу нужна функция для вывода результата, почему нельзя просто Print ?
Аноним 01/05/21 Суб 18:59:21 2015445398
>>2015349
Потому что fmt может еще очень много похожих вещей делать, и выносить из него только print было бы странно.
Аноним 01/05/21 Суб 23:23:50 2015854399
Аноним 01/05/21 Суб 23:41:40 2015862400
>>2015854
Но этой функции нет в спеке по этому код с ее использованием может в любой момент перестать компилироваться
Аноним 02/05/21 Вск 00:02:26 2015895401
>>2015854
Но этой функции нет в спеке по этому код с ее использованием может в любой момент перестать компилироваться
Аноним 02/05/21 Вск 11:32:07 2016171402
>>2015349
путь_к_функции.имя_функции() - это статический вызов в любом языке где есть пакеты
Только в некоторых путь к стандартной либе неявно добавляется, в некоторых можно статически импортировать функцию, а некоторые го
Аноним 02/05/21 Вск 11:33:17 2016174403
>>2015445
Не, почему не просто fmt.Printl("Hello world!") ? Зачем оборачивать в функцию?
Аноним 02/05/21 Вск 11:37:23 2016179404
>>2016174
Это из примера какого то? Видимо демонстрация как вывести результат функции. Можно и просто сразу строку вывести
Аноним 02/05/21 Вск 11:43:42 2016182405
>>2016174
Или ты про main? Это точка входа в программу, с нее начинается исполнение кода, в отличии от питона и жс, где код исполняется сразу сверху файла
Аноним 02/05/21 Вск 14:13:54 2016309406
>>1997704
>С такии настроем надо в тестировщики идти

Слыш, оптисист, блять. Когда у тебя крупная бэкэнд система то у тебя просто по закону больших чисел все потенциальные проблемы БУДУТ реализованы.

А теперь марш нахуй в жабоскрипте окошечки для веба пилить.
Аноним 02/05/21 Вск 17:52:08 2016603407
>>2016309
И тем забавнее твоя аргументация, ведь на го не получится построить достаточно высокоуровневые абстракции, без которых ни одна большая кодобаза не обходится. Хотя бы просто из-за отсутствия дженериков.
А теперь марш и дальше пилить микросервисы.
Аноним 02/05/21 Вск 20:39:04 2016789408
Какая у go парадигма программирования? Сказать что ООП - с говном сожрут. Но ведь и не процедурщина, и не функциональщина. Как это называется?
Аноним 02/05/21 Вск 20:45:17 2016805409
>>2016789
Процедурщина. Именно что процедурщина.
Аноним 02/05/21 Вск 21:58:47 2016903410
>>2016789
>>2016805
Все-таки ООП. Инкапсуляция представлена типами и их методами, полиморфизм - интерфейсами, а наследование, в отличие от других языков, - композицией. Ничего не мешает создать тип, наследующий свойства и методы другого типа, просто включив этот тип в объявление структуры. Тут особо умные возразят, что это нихуя не труЪ наследование, потому что отношение между сущностями не "является", а "содержит" (типа как автомобиль состоит из множества деталей, не являясь ни одной из них), но пошли они нахуй, ибо композиция позволяет получить то же поведение, что дает классическое наследование, но при этом более гибко, не связывая жестко сущности между собой. Так что я бы сказал, что в го у нас ООП на стероидах.
Аноним 02/05/21 Вск 22:09:32 2016913411
>>2016903
Ну тогда и сишка - ООП.
Аноним 02/05/21 Вск 23:18:10 2016992412
>>2016903
Согласен с каждым словом, вот только большинство гошников ужасно плюются когда такое заявляешь, при этом возразить ничего не могут. Наверное у них или детские травмы от абстрактных абстракций над абстракциями из прошлых языков, или они просто не знают что такое ООП, а думают что "ну это как в джаве епты"
Аноним 03/05/21 Пнд 00:22:25 2017046413
>>2016903
>то же поведение

Это какое? Я не могу, например, передать экземпляр дочерней структуры в функцию, принимающую родительскую.
Аноним 03/05/21 Пнд 00:41:46 2017061414
>>2017046
Во-первых, зачем? Используй интерфейсы, если тебе нужна функция, ожидающая какое-то общее для нескольких сущностей поведение. Во-вторых, если тебе все-таки это нужно, передай вложенную структуру.
Аноним 03/05/21 Пнд 07:47:38 2017170415
>>2016903
> ООП на стероидах.
Это ооп на стероидах есть в любом языке и еще масса других паттернов
Аноним 03/05/21 Пнд 09:42:58 2017238416
Снимок экрана в[...].png 45Кб, 865x471
865x471
В чем ошибка?
Аноним 03/05/21 Пнд 09:44:24 2017244417
>>1997704
Люди с тревожно-депрессивным расстройством на нем пишут. Или начинают писать нормальные, а выходят уже с приобретенным F41.2
Как и на крестах, кстати.
Мимо крестодебил с F41.2, даже от гомоармии откосил
Аноним 03/05/21 Пнд 09:45:09 2017247418
>>2017238
А всё, кавычки лишние
Аноним 03/05/21 Пнд 09:46:40 2017250419
>>2017238
в том что ты используешь 'фор и' луп в 21 веке
Аноним 03/05/21 Пнд 11:55:21 2017385420
>>2017250
А что надо использовать?
03/05/21 Пнд 12:26:00 2017403421
>>2017385
Я другой анон, но предположу, что твой собеседник недавно узнал про итераторы кстати, есть ли они в говне? и пихает их куда попало
Аноним 03/05/21 Пнд 12:34:17 2017411422
Аноним 03/05/21 Пнд 12:46:52 2017420423
>>2017411
Но итераторы как раз для циклов используются везде. Учитывая что в голанге утиная типизация для интерфейсов итераторы как раз подходят под семантику языка.
Аноним 03/05/21 Пнд 13:45:51 2017487424
Что такое, блядь, сектанская запарта?
Аноним 03/05/21 Пнд 14:15:43 2017510425
Аноним 03/05/21 Пнд 14:19:35 2017514426
>>2017510
Может это ты ебанулся?
>Растобляди завидуют, сектантская запарта не переваривает.
Это в ОП-посте написано. Ещё раз спрашиваю: что такое сектанская запарта?
Аноним 03/05/21 Пнд 14:26:20 2017526427
>>2017514
Ты бы еще спросил, что такое говняк. Быстро в /b, учить матчасть.
Аноним 03/05/21 Пнд 14:59:10 2017544428
>>2017526
Не сижу в /b на любых бордах уже 9 лет.
Аноним 03/05/21 Пнд 23:01:48 2018169429
Какой же го охуенный, воистину лучший язык.
Раньше, когда только учил синтаксис, делал всякие задачки, смотрел на чужие проекты, он сам и go-way мне ну очень во многих моментах не нравился. Но чем-то сука привлекал.
Зато как только начал на нем писать более-менее настоящий проект, он начал мне сразу же люто доставлять. И нету ничего страшного в его специфичной обработке ошибок и прочих непривычных для других языков вещах.
Алсо, больше всего меня отталкивало отсутствие каких-то единых принятых инструментов, фреймворков с единственной расово верной структурой проекта, подходами и т.д., зато как только прочувствовал вкус свободы, сразу же все эти вещи стали мне отвратны.
Вот такие то дела. От ненависти до любви один шаг.
Аноним 04/05/21 Втр 00:24:48 2018257430
>>2018169
> он сам и go-way мне ну очень во многих моментах не нравился. Но чем-то сука привлекал
Когда-то наткнулся на понятие "притягивающее уродство", оно как нельзя лучше описывает такое. Это как ехать в метро, увидеть мужика с лицом странной формы и странным взглядом и пялиться на него исподтишка всю дорогу.
Аноним 04/05/21 Втр 07:30:24 2018526431
>>2018169
А что такое, этот go-way?
Аноним 04/05/21 Втр 08:41:55 2018559432
>>2018526
Это когда во главе угла лежит обработка ошибок не толстота, а цитата из блога майл ру, а все остальное НИНУЖНО.
Аноним 04/05/21 Втр 16:25:09 2019151433
>>2017403
>итераторы
Их нет, но ты можешь использовать горутину + канал + контекст, по ощущениям то же самое (можно использовать в for-range)
Аноним 04/05/21 Втр 16:40:04 2019169434
>>2019151
Как-то так, https://play.golang.org/p/QuWfMqU2gq-
Контекст нужен чтобы не допускать утечку горутин, за этим нужно следить. Но зато мы размазываем наши вычисления по нескольким тредам, что может быть полезно для тяжелых задач
04/05/21 Втр 18:27:36 2019350435
Аноним 04/05/21 Втр 20:23:24 2019446436
Аноним 04/05/21 Втр 22:20:58 2019552437
На Go можно написать имиджборду?
Аноним 04/05/21 Втр 22:34:34 2019574438
Аноним 04/05/21 Втр 23:07:16 2019645439
image.png 1522Кб, 1375x749
1375x749
Аноним 04/05/21 Втр 23:34:41 2019691440
>>2019574
Спасибо, обязательно вкачусь в этот замечательный язык.
Аноним 05/05/21 Срд 11:16:47 2020078441
>>2019552
на чем угодно, работающим с вебом можно написать имиджборду.
Аноним 05/05/21 Срд 16:23:30 2020504442
>>2015349
А чё, fmt.Println - это не "просто Print"?
Аноним 05/05/21 Срд 16:29:45 2020513443
Аноним 06/05/21 Чтв 10:49:39 2021241444
Всем привет, хочу вкатится в go, ибо мне говорили, что go - один из лучших языков программирования для back-end и devops челиков.

Посоветуйте, с чего начать можно, тип, я видел в треде php небольшой интерактивный курс, решая который ты повышаешь свой скилл (как я понял, это авторский курс анона), а есть ли что-то подобное для go, чтобы было примерно так-же (интерактивный курс), а не только гайды и прочее
Аноним 06/05/21 Чтв 11:01:42 2021253445
Аноним 06/05/21 Чтв 11:14:05 2021261446
>>2021253
Это не совсем то, о чем я говорил. В разделе пыхи там прям дают задачки/идеи проектов, а здесь же просто синтаксису изучают, не?
Аноним 06/05/21 Чтв 11:45:07 2021306447
>>2021261

Без опыта php тебе тяжело будет с го, поучись сначала решать интерактивные задачики с php-треда.
Аноним 06/05/21 Чтв 12:13:01 2021356448
>>2021306
А если есть опыт с с# на базе университета - все равно стоит пыху погонять? Есть ли смысл тогда го дрочить, если есть пыха?
Аноним 06/05/21 Чтв 13:26:21 2021465449
>>2021356
Есть. Похапе + goвно это нынче весьма популярный стек.
Аноним 06/05/21 Чтв 15:09:22 2021631450
Для чего этот язык вообще нужен? Что на нем пишут вообще? Игры, десктоп приложения, бэк для сайта, скрипты ЧТО!?
Аноним 06/05/21 Чтв 16:13:08 2021729451
>>2021631
Кубернетесы и прометеусы на нем пишут, сынок.
Аноним 06/05/21 Чтв 16:23:01 2021739452
>>2021631
Бэк + различный серверный софт + некоторые наркоманы на нём пишут девопс.
Аноним 06/05/21 Чтв 17:04:04 2021785453
image.png 32Кб, 554x768
554x768
Как же заебал это хомяк, будет голосование за нового маскота?
Аноним 06/05/21 Чтв 17:14:21 2021797454
>>2021785
Пхп умер, можно слоника у него подрезать
Аноним 06/05/21 Чтв 17:19:32 2021803455
image.png 275Кб, 1260x940
1260x940
06/05/21 Чтв 17:59:18 2021873456
>>2021797
Клитор у своей мамаши-шлюхи подрежь
Аноним 06/05/21 Чтв 18:04:15 2021884457
Кто-нибудь пробовал (-buildmode=0) плагины совместить с CGO_ENABLED=0, т.е. чтобы рантайм был общим для приложения и плагинов, а-то как-то, блядь, плагины по 50 мегабайт - это уже слишком.
Пробовал когда-то не так уж давно, но нихуя не вышло, т.е. если плагинов нет, то всё збс, главное приложение маленького объема и работает, а с плагинами - хуй.
Аноним 06/05/21 Чтв 18:58:29 2021981458
>>2021739
А на чем пишут devops не наркоманы и что такое devops вообще?
Аноним 06/05/21 Чтв 19:21:49 2022032459
>>2021981
Девопс - это всякая админская скриптота, чтобы автоматизировать сборку дистрибутивов приложений и деплой на сервера. Пишут обычно на баше и питоне.
Аноним 06/05/21 Чтв 19:24:58 2022038460
15992611045220.jpg 556Кб, 2000x910
2000x910
Аноним 06/05/21 Чтв 19:28:30 2022044461
>>2022038
Не только ямл, ещё они любят программировать на bat.
Аноним 06/05/21 Чтв 21:19:46 2022139462
Аноним 07/05/21 Птн 18:51:00 2023317463
>>2020513
Почему? Потому что есть "fmt."?
Аноним 08/05/21 Суб 02:54:38 2023693464
>>1986204 (OP)
Здоров
Как кого-то из вас трахнуть в анал?
Аноним 08/05/21 Суб 03:09:45 2023696465
Аноним 08/05/21 Суб 03:33:28 2023697466
image.png 3Кб, 335x73
335x73
08/05/21 Суб 03:36:09 2023698467
>>2023697
>  it is not guaranteed to stay in the language.
Значит, нельзя.
Аноним 08/05/21 Суб 03:42:36 2023700468
08/05/21 Суб 03:45:48 2023701469
>>2023700
Нельзя, статикошиз.
Аноним 10/05/21 Пнд 08:23:29 2026330470
Че там, завезли дженерики уже? А то я пропозал видел, а результата что-то нет.
Аноним 10/05/21 Пнд 15:56:05 2026550471
>>2026330
Провели исследование, гоферы не осилят дженерики
Аноним 10/05/21 Пнд 23:33:45 2027125472
>>2026330
Ждать в начале 2022-го, не раньше
Аноним 12/05/21 Срд 08:12:52 2028180473
>>1986204 (OP)
Аноны, поясните за работу GC в сишном коде. Когда я подгружаю DLL на Go в приложение на C и начинаю работать с памятью этого приложения из DLL, то насколько далеко лезет GC? Будет ли он сканить всю память процесса? Больше всего интересует задержка GC. Будет ли она околонулевая, если в DLL не будет аллокаций памяти? Или GC будет всю кучу сканить и ложиться на 10 мс?
Аноним 12/05/21 Срд 08:34:21 2028189474
>>2028180
Нет, GC не лезет в память, выделенную сишкой.
Аноним 13/05/21 Чтв 09:11:21 2029269475
Объясните этот код пж по порядку что он делает

https://tour.golang.org/flowcontrol/5

Зачем например там минус перед иксом
Аноним 13/05/21 Чтв 12:05:07 2029398476
>>2029269
Этот код о том, что не стоит вскрывать тему программирования, не твое это.
Аноним 13/05/21 Чтв 15:15:00 2029571477
16142934670210.jpg 25Кб, 600x400
600x400
>>2029398
>Этот код о том, что не стоит вскрывать тему программирования, не твое это.
Аноним 13/05/21 Чтв 17:46:01 2029713478
>>2029269
Только не говори, что ты из этих, которые учат Go первым языком.
Аноним 13/05/21 Чтв 23:53:50 2029996479
Как гонять пиструн?
Аноним 14/05/21 Птн 00:14:55 2030002480
А нельзя вместо дженериков автоматом себе нагенерить сорцов функций, подставляя нужные типы куда надо?
Нечто вроде этого:

type T interface{}
type U interface{}
//go:generate <заклинание> T={TypeA, TypeB} U={TypeC, TypeD}
func DoSomething(val T) U {
...
}
Аноним 14/05/21 Птн 01:23:18 2030036481
>>2029269
1) Проверяем, является ли число отрицательным
2) Если да - рекурсивно вызываем сами себя и к результату добавляем "i", возвращаем
3) Если нет - берем квадратный корень и приводим его результат к строке
Аноним 14/05/21 Птн 01:30:39 2030042482
>>2030002
Кодогенерация - это антипаттерн.
Аноним 14/05/21 Птн 01:30:52 2030043483
>>2030002
Можно, https://github.com/cheekybits/genny так и работает. Вопрос только в том, что это требует дополнительной внешней тулзы, а так же нет нормального способа прикрутить к такой реализации constraint'ы. А значит есть возможность нагенерить некомпилируемого кода, что не есть хорошо.
Аноним 14/05/21 Птн 01:32:08 2030045484
Да и просто это не удобно. Такие вещи должны быть частью языка, а не костылем сбоку
Аноним 14/05/21 Птн 09:57:55 2030143485
>>2030002

сейчас так и делают, просто у петушков происходит взрыв анальной жопы - "РЯЯЯЯЯ, НЕ ЖИНЕРИКОВ, КО-КО-КО"

>>2030042

глупость это антипаттерн
Аноним 14/05/21 Птн 10:45:47 2030200486
Аноним 14/05/21 Птн 13:12:44 2030324487
>>2030143
Кодогенерация это антипаттерн для глупых.
Аноним 14/05/21 Птн 13:42:35 2030353488
>>2030324
А для умных это не антипаттерн.
Аноним 14/05/21 Птн 13:43:44 2030356489
>>2030353
Сейчас бы использовать кодогенерацию и считать себя умным, лол!
Аноним 14/05/21 Птн 15:17:39 2030467490
>>2030002
Можно и нужно. Дженерикобляди не нужны.
Аноним 14/05/21 Птн 15:43:02 2030500491
>>2030467
Кодогенерацияплебс не нужен
Аноним 14/05/21 Птн 17:50:02 2030665492
>>2030500
Ну в плюсах уже сколько лет генерируют код через шаблоны, им норм.
Аноним 14/05/21 Птн 18:06:12 2030684493
>>2030665
В плюсах это часть синтаксиса, а не багованое васянское <заклинание>.
Аноним 14/05/21 Птн 19:56:13 2030859494
>>2030684
Тащемта плюсы начинались с транспилинга в сишку. Прямо таки рафинированная кодогенерация из палаты кода и генерации
Аноним 14/05/21 Птн 20:08:36 2030867495
>>2030859
Там была одна конкретная тулза Cfront с единственным правильным синтаксисом, а не 100500 всянских <заклинаний>.
Аноним 14/05/21 Птн 20:21:14 2030880496
>>2030859
А сишка с транспилинга в ассемблер! А ассемблер с транспилинга в машинный код!
Аноним 15/05/21 Суб 10:01:47 2031202497
>>2030867
Что ты повторяешь про васянов как попугай? Разумеется, должен быть единственно верный официальный инструмент для генерации кода, возможно основанный на одном из васяподелий. Вопрос не в васянстве, а в подходе
Аноним 15/05/21 Суб 15:51:48 2031441498
>>2031202
Вот когда никогда единственный верный инструмент появится, тогда дженерики и не будут нужны.
Аноним 15/05/21 Суб 19:44:32 2031609499
Пытаюсь написать прогу чтобы вывести квадрат числа, подскадите как правильно, вот так пробовал:

func rootsq (x int) int {
return (x * x)
fmt.Println(rootsq(2))
}
Аноним 15/05/21 Суб 19:46:56 2031613500
Аноним 15/05/21 Суб 20:01:26 2031624501
Аноним 15/05/21 Суб 21:59:26 2031718502
>>2031624
Рекомендую первым делом пройти го тур, а ещё лучше прочитать какую нибудь книгу типа: "С++ для начинающих".
Аноним 15/05/21 Суб 22:03:37 2031720503
>>2031718
>>2031609
А вообще Го - не самый лучший язык для начинающих, так как материала для ламеров почти нет. Начинай с С++, на ютубе есть годный плейлист от Гоши Дударя, потом если захочешь катись в Го. Уверен, что ты ещё не 30-летий лоб, так что времени тебе хватит, ещё успеешь.
Аноним 16/05/21 Вск 00:26:47 2031804504
>>2031720
>Начинай с С++
Ты бы еще посоветовал с перла начать.
Аноним 16/05/21 Вск 01:22:16 2031882505
>>2031804
>с перла начать
Шизик, это простой язык.
Аноним 16/05/21 Вск 03:40:36 2031921506
>>2031720
>С++
>от Гоши Дударя
Какие же зумеры дегенераты, просто пиздец. Предпочесть мутные видеокурсы от ютубного эксперта по всему нормальных книжкам.
Аноним 16/05/21 Вск 07:59:27 2031971507
>>2031882
По соотношению потраченные силы/профит такой же унылый и нахуй не нужный.
Аноним 16/05/21 Вск 09:46:06 2032014508
GaecXsgZG8Y.jpg 38Кб, 604x604
604x604
>>2031720
>Уверен, что ты ещё не 30-летий лоб

34-летний
Аноним 16/05/21 Вск 10:36:58 2032045509
>>2031921
Долбоёб, ты действительно считаешь, что тот анон - полностью обнадеженный, пытающийся впопыхах вкатиться в эту сферу, будет забивать себе мозги Страуструпом? Ты хочешь сказать, что ему ещё прийдется дополнительно превозмогать и читать тех. литературу? Пускай поверхностно пройдется по всему этому делу и поймет, надо ли оно ему.
Аноним 17/05/21 Пнд 19:15:44 2033730510
>>2032045
Ну я читал его книгу и смотрел Тимофея на ютубе, и могу смело сказать что кресты это пиздос какой уродливый язык, учить по нему прогрество лишнее забивание головы старым нечитабельным говном
Аноним 18/05/21 Втр 14:40:55 2034510511
Вписал в конфиге postgre "datestyle = 'iso, dmy'". Когда пишу прямо в консоли запросы, все работает, могу поля с типом date заполнять в формате типа "22.07.2021".
Вот только когда пытаюсь аналогичное провернуть через го ( стандартная библиотека database/sql, драйвер lib/pq ), он мне рыгает ошибку и дальше ожидает даты формата mm.dd.yyyy. ЧЗХ? Куда мне вообще копать?
Аноним 18/05/21 Втр 20:26:53 2035046512
123.jpg 20Кб, 1004x140
1004x140
Выкатываемся
Аноним 18/05/21 Втр 21:14:24 2035109513
>>2035046
С добрым утром, соня.
Аноним 29/05/21 Суб 15:00:24 2047973514
>>1986275
сложные конструкции требуют сложного мышления

ПЩ делался для
-- быстрого обучения недорогих разрабов
-- уменьшения количества человеко-ошибок
-- быстрого выполнения

Вот и всё
Аноним 29/05/21 Суб 16:33:17 2048123515
>>2047973
Похоже, по первому пункту полный проеб.
Аноним 29/05/21 Суб 16:52:28 2048145516
>>1990938
пиздаболов полон мир, и каждый хвалит своё гнездо

вон РНР уже лет 30 хоронят, всё никак
Аноним 30/05/21 Вск 11:25:14 2048852517
>>2048123
Ну обучение действительно быстрое. А то, что рабы дорогие вышли - так это рыночек порешал, язык не самый популярный
Аноним 30/05/21 Вск 21:58:16 2049911518
>>2048852
Двачую, я с бекенда на ноде, с джаваскрипта быстро переучился на го, работать легче и зарплата повысилась неплохо, хотя я и до этого нормально так зарабатывал.
Аноним 30/05/21 Вск 22:48:39 2049989519
>>2049911
Ты менял компанию, чтобы перейти на го? Если да, то какое к тебе было отношение? У тебя ж по сути нет продакшен опыта с го, так что с этой стороны ты джун, хотя опыт разработки в целом есть.
Аноним 31/05/21 Пнд 00:26:44 2050039520
>>2049989
Не менял, перешёл в другую команду внутри своей компании, проработал чуть больше полугода, потом в итоге в резюме написал полтора года опыта на го, то есть включил туда весь срок работы в этой компании.
Аноним 31/05/21 Пнд 00:36:00 2050046521
Аноним 31/05/21 Пнд 10:00:52 2050208522
>>2049989
Я переходил с пхп на го без коммерческого опыта на го - довольно много работодателей готовы со мной были пообщаться, несмотря на это. Просто спрашивали, что я делал на прошлых местах, какие задачи решал, какими инструментами пользовался.
2 или 3 оффера я получил из 6-7 собесов.
Так что можно не сильно переживать на этот счет - как к джуну адекватные конторы к тебе точно не будут относиться.
Аноним 31/05/21 Пнд 12:18:36 2050353523
>>2050208
А предлагали больше, чем ты тогда получал за пыху?
Аноним 31/05/21 Пнд 12:50:51 2050380524
>>2050353
Не везде (в одной конторе предложили столько же, сколько получал; в другой - на ~30% меньше), но в итоге ушел на +30%
Аноним 01/06/21 Втр 12:59:40 2051766525
Стоит вкатываться(пока всякие гикбрейнсы не наплодили овер 999 курсов...)? Как с поиском работы?
Аноним 01/06/21 Втр 15:46:51 2051975526
image 6Кб, 375x239
375x239
image 5Кб, 354x202
354x202
image 5Кб, 332x199
332x199
image 5Кб, 359x201
359x201
>>2051766
>Как с поиском работы
Аноним 01/06/21 Втр 20:58:52 2052447527
Как запустить это в браузере? Через локалку пыхи (-S localhost) ошибку выдает что не найдено

https://play.golang.org/p/A-5ovbM1v6q
Аноним 01/06/21 Втр 21:05:57 2052458528
Снимок экрана в[...].png 56Кб, 932x438
932x438
Аноним 01/06/21 Втр 23:51:04 2052703529
>>2052447
Что такое "локалка пыхи" и зачем она тебе при попытке запустить го сервер?
Локально это запускается через go run ./path/to/cmd/server/main.go
Аноним 02/06/21 Срд 16:34:30 2053458530
Аноним 02/06/21 Срд 16:54:33 2053514531
>>2051975
Это по всей россии?
Аноним 03/06/21 Чтв 08:32:57 2054369532
Аноним 04/06/21 Птн 00:33:27 2055776533
>>2054369
пизда
Там в москве только 1к вакансий
Аноним 04/06/21 Птн 14:50:53 2056347534
>>2052458
Выглядит словно ты пытаешься через https долбиться в http порт
Аноним 05/06/21 Суб 17:45:00 2058107535
image.png 10Кб, 513x187
513x187
image.png 53Кб, 490x773
490x773
>>2051975
> по всей России
Это что за откровенное наебалово?

Вторая пикча - отфильтрована по айти с вариантом "Go"
Аноним 05/06/21 Суб 17:45:49 2058108536
image.png 50Кб, 493x757
493x757
>>2058107
Фикс первой пикчи, случайно приложил результат без фильтра по ойти, вот корректная
Аноним 07/06/21 Пнд 10:06:22 2060206537
>>2058108
Ну и? Ну даже +600 вакансий - это капля в море, пчел.
Аноним 07/06/21 Пнд 21:25:16 2061050538
>>2060206
Их 2500, пчел. Go в выборку тоже надо включать, а не только Golang. Это вполне дохуя.
Аноним 07/06/21 Пнд 21:46:54 2061080539
image.png 35Кб, 512x264
512x264
Аноним 08/06/21 Втр 11:07:18 2061439540
>>2061050
Это включая вакансии go-go танцовщиц
Аноним 08/06/21 Втр 22:31:23 2062429541
>>2061439
Дебил, на скрин глянь, там специально фильтр по айти и программированию для тупых сделан, ты, видимо, еще ниже тупых
Аноним 13/06/21 Вск 18:56:30 2067180542
>>2062429
Я пошутить пытался. Ну, братишка, ну не стукай
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов