Этого треда уже нет.
Это копия, сохраненная 3 апреля 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Тред про лучший в мире язык GO №11 /go/ # OP 1736180 В конец треда | Веб
GO (а также Golang, Пщ или просто Го) — современный язык с зелеными потоками на уровне синтаксиса и крутой стандартной библиотекой. Так как делать пакеджи несложно, гитхаб полон пакеджами для абсолютно всего.

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

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

Живем в ожидании Go2, пробрасываем ошибки, ищем обоснование, зачем нужны дженерики, смеемся над оопэшниками, которые не могут жить без ексепшенов, дженериков и размазанной бизнес-логики, ждем, когда нам подвезут аналоги эксепшенов и дженериков

Прошлый тред тут >>1700220 (OP)
# OP 2 1736183
>>736180 (OP)
Как думаете, если указать в резюме, что я являюсь ОПом тредов по Го на дваче, меня охотнее возьмут на работу?
3 1736188
>>736183
УКАЗЫВАЕШЬ
@
СПРАШИВАЮТ ЧТО ТАКОЕ ДВАЧ
@
ОБЪЯСНЯЕШЬ
@
МЫ ВАМ ПЕРЕЗВОНИМ
# OP 4 1736195
>>736188
УКАЗЫВАЮ
@
СПРАШИВАЮТ ЧТО ТАКОЕ ДВАЧ
@
ГОВОРЮ, ЧТО ЭТО ОДНО ИЗ ВЕДУЩИХ СООБЩЕСТВ ПО ГО ЯЗЫКУ В РУССКОЯЗЫЧНОМ ИНТЕРНЕТЕ
@
ПОЛУЧАЮ РЕСПЕКТ ОТ ХРЮШИ
5 1736210
>>736195
@
ПЕРЕЗВАНИВАЮТ
6 1736254
>>736210
@
Просыпаешься с влажными штанами от поллюции
@
Идешь на работу дергать жабаскрипт
7 1736349
>>736254
@
ТЕБЕ НРАВИТСЯ ТВОЯ РАБОТА
#антибугурт
8 1736716
>>736349
@
Когда это произносишь, дергается левый глаз.
9 1736731
Задавал в основном но продублирую в тематический.

Анон, стоит ли покупать курс на курсере по ГОленгу от майлача для более выгодного света в глазах эйчаров? он размазан на большой промежуток если не покупать, и я остановился а надо бы уже дальше выполнять задания. Вообще хотелось бы узнать на сколько эти филькины грамоты участвуют в трудоустройстве.
10 1736740
>>736731

> для более выгодного света в глазах эйчаров?


Нет. Более того, многие даже пет-проекты на гитхабе не смотрят (но рассказать о них просят)
11 1736742
>>736740
Да чет я смотрю даже за ведение треда на топ1 форуме по ГО в ру сегменте уважение и почет.
Вообще пытался попасть на обучение в озон кто-то?
12 1736748
>>736731
На степике тебе тоже выдадут филькину грамоту, но бесплатно.

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

>>736742

>Вообще пытался попасть на обучение в озон кто-то?


ИТТ или вообще? Итт было обсуждение, в основном задания с двумя каналами, которое было сломано. А вообще там больше 4к челиков участвовали, но по итогу только ~100 позвали на собеседование и в финал вышли только 40
13 1736875
Нахуй сертификаты.
14 1736882
>>736875
Да, даёшь обычный HTTP!
15 1736889
>>736882

fasthttp!
16 1737001
1) Кто юзал fiber какие подводные?
2) В го завезли модули, там что-то хотели, но я не следил.
3) Какой шаблонизатор популярен в го сейчас (да в 2020 еще клепают обычные не реакт странички)

что вообще нового в го, вывалился года на 2 из него.
17 1737002
>>737001
вопросики забыл, держите на всякий случай "???"
18 1737005
>>737001
В го давно завезли модули, в чем вопрос?
19 1737031
>>737005
С какой версии полная поддержка??
20 1737038
>>737031
С 1.11 или 1.12 вроде.
21 1737081
>>737001

Что за файбер? Почему не гольный http или gin?
22 1737082
>>737001

>Кто юзал fiber какие подводные?


Юзал, охуенно было т.к. переходил с ноды+экспресс на го. По перформансу он топовый, по удобству тоже. Подводных нет.
23 1737122
>>737001
>>737082

Оно же не умеет в autotls и http2, зачем оно надо такое?
24 1737137
>>737122
Ну вот, это, наверное, и будет подводными камнями.

Скажите появились ли какие бест-практике по работе ошибок? Ну реально передавать ошибки по стеку или уже придумали какой-то сервис-логер?
25 1737147
>>737137

fmt.Errorf("%w", err) и errors.Is
26 1737203
>>737122
Не нужно, всё равно спереди nginx стоит
27 1737236
>>737203

По задачам. В куберах да, похуй.
На железе - лучше не сувать nginx, go без него отлично справляется.
28 1737266
Хочу написать на го апи для сайта. Раньше на го ничего большого не писал. Что лучше:
1. Написать в лоб на net/http
2. На каком-нибудь фреймворке вроде gin
3. Сгенерировать сервер через go-swagger?
29 1737272
>>737266
Лучше на gin или gorillamux. Из двух я бы рекомендовал gin. Через go-swagger точно лучше не генерировать.
30 1737275
>>737272

>Через go-swagger точно лучше не генерировать


Почему? Читал, что тот генератор, который на джаве для опенапи генерирует не очень, а чем родной гошный плох?
31 1737283
>>737275

Оно ебанная дичь.
Нормального генератора в го не завезли.
32 1737286
А чо по го есть адвансед? Пробовал полезть в компилятор и понял, что нихуя не понял.
33 1737288
>>737283
Ясно, спасибо.
34 1737292
>>737275
Та хер знает, когда последний раз проверял мне там что-то очень не понравилось, точно не помню что, давно было.

Могу предположить, что если раньше ты на го ничего большого не писал, то написать самому свои хендлеры будет интереснее.
35 1737295
Кто может поянить про ponzu? Куча звезд на гитхабе, апи эндпоинты генерятся в одну команду ...и все. Хочешь разделить привилегиии пользователей - пиши с нуля фронтенд с ролями (и наверное отдельной бд для юзеров, потому что сам понзо свои данные хранит в каких-то nosql файловых базах). На любые вопросы разраб предлает прислать ему пулл реквест с решением проблемы.
Мне сначала понравилась идея с безголовыми cms, но почти каждую нужно допиливать напильником. strapi, например, вывалит в ответе вместе с эндпоинтом все связанные с ним поля из других таблиц, это не регулируется, другие цмски платные/закрытые или слишком продвинутые.
Мне бы что-то простое, чтобы хранить данные для статических страниц, забирать данные с формы фидбека и раздать права пользователям, чтобы они писали новости.
36 1738312
>>737295
Зачем тебе cms?
37 1738348
>>738312
Небось с пхп перекатывается.
38 1738425
>>738312
Ну вот значит будет сайт, в одном разделе будет БИЗНЕС-ПРОЦЕСС, где будут мутиться серьезные делишки, будет еще раздел, где пользователи могут написать, какие мы мудаки, и есть раздел новостей@объявлений, где будут постить всякие маркетологи.
Первый раздел самый трудоемкий, у него будет свой апи, а остальные разделы дешево и сердито работают на безголовом cms.
Как бы ты сделал?
39 1738451
>>738425
Я бы наговнякал на джанге, а затем при каждом фича-реквесте говорил, что вся система - это только прототип, и на самом деле нужно все переписать, но в этот раз на это нужно в 3 раза больше времени, т.к. теперь будет и архитектура, и расширяемость, и энтерпрайз-подходы.
40 1738456
>>738451
Правда меня, скорее всего, уволили, если речь идет о средней компании. Но с другой стороны - есть шансы на выбивание пары месяцев на пинание хуев
41 1738468
>>738425
Какое-то слишком расплывчатое описание слишком женерик бложика
С нуля ебнул бы фронт в рамках бюджета и по микросервису на бизнес-процесс и новости@объявления, наверное
Текстовые носкл базы звучат страшнее
42 1738504
есть одна гуглошита, которая закрыта для теребонькая из апи, но доступная просто через обычный запрос. Как ее лучше спарсить? Взять все из бади и прокрутить в стринг типа как xml?
43 1738538
>>738504
Это то еще удовольствие, на самом деле. Попробуй сделать экспорт в эксель-файл, а с ним уже можно работать через соответсвующие либы
image.png462 Кб, 1486x1052
44 1738897
читал "learn go with tests" (https://quii.gitbook.io/learn-go-with-tests/go-fundamentals/concurrency), там вот такой пример кода. объясните, пожалуйста, почему он работает? я, может, читаю его неправильно
мы сначала запускаем горутины в цикле, в которых отправляем значения в не буферизированный канал. на момент вызова горутин оттуда никто не читает. затем, когда цикл завершается, начинаем новый, в котором мы уже читаем из канала
почему во время первого цикла не происходит deadlock?
45 1738942
>>738897
А почему там должен быть deadlock? Горутины же не блочат основной поток выполнения.
46 1738945
>>738897
Дедлок - это когда все горутины заблочены (мьютексом или каналом, например) и никто не может больше нихера сделать. У тебя же спавняться горутины в цикле, и даже если wc сразу же возвращает результат (скорее всего - нет) горутины будут ждать, пока из канала не прочитают. Но основная горутина-то не блочится до тех пор, пока не попытаеться прочитать.
47 1738954
>>738942
>>738945

понял, большое спасибо!
почему-то мне подумалось, что это то же самое, что:
ch <- val
v := <-ch
48 1738968
>>738954
Тут как раз таки фундаментальное различие, что в этом случае все происходит внутри одной горутины, а в >>738897 - в
разных
49 1739281
Боже говно как будто создано для клепания говна
Как я жил без него
50 1739363
>>739281
Я, кажется, понял философию Го. "Любой код всё равно рано или поздно превращается в говно, давайте сделаем язык, в котором терпеть говно легче"
51 1739526
>>738538
мог бы, не парился вообще
а так костыльно реализовал на подсчете определенных тегов и их значений, в принципе, если теги +- не сильно различаются в таблицах, то моно унифицировать.
52 1739615
>>739363
>>739281
Если ты везде видишь говно, то стоит задуматься
53 1739674
подскажите пожалуйста как запускаются веб сервисы на этом вашем го?
54 1739676
>>739674
Запускаешь бинарник, полученный после комптляции. Всё.
55 1740217
>>739676
А как сделать чтобы он автоматом запускался при перезагрузке vpsки или после какого-нибудь краша?
56 1740232
прошел испытательный срок в мухосране го джуном 3 месяца, продолжаю получать 30к рублев, задавайте вопросы.
57 1740239
>>740232
Нормальная, ДОСТОЙНАЯ зарплата.
58 1740253
>>740232
Чёт маловато очень. Какие задачи выполняешь?
59 1740257
>>740217
crontab, systemd, docker, cпособов мильйон, бери что нравиться.
61 1740345
>>740257

>systemd

62 1740351
>>740345
sudo systemctl enable name.service
63 1740353
>>740253
перевожу сервисы с монги на постгресс, пилю интеграционные тесты, еще в ui на ректе баги фикшу
64 1740358
>>740353
А микросервисы когда делать?
65 1740374
66 1740387
>>740232
Проигарл. Это насколько маленький мухосранск?

Мимо выкатился в го из мидло-пхп 4 месяца назад и получаю 130к в дс2
67 1740391
>>740387

>аленький мухосранск?


500к
image.png45 Кб, 679x407
68 1740395
>>737295
Уноси своё говно. Когда билды починят - тогда и приходи
69 1740397
>>740391
Как ты в такой залупе вообще нашел вакансию говна?
image.png327 Кб, 599x443
70 1740398
>>736180 (OP)
Че как вы там, еще не ахуели от резкого уменьшения вакансий с 18 года на своей хуйне?
71 1740399
>>740398

>Че как вы там, еще не ахуели от резкого уменьшения вакансий с 18 года на своей хуйне?


Так язык программирования это же просто один из способов записи твоих программистских универсальных знаний... если это действительно так, выучить новый язык программирования для того кто в принципе умеет программировать не должно занять больше одной недели времени...
72 1740401
>>740399

> больше одной недели времени...


А еще выучить окружение, стандартную библиотеку, фреймворки, орм, генераторы, специфические внутренности чтобы каждый раз не натыкаться на втф, внутренний паттерны, кодстайлы, профайлинг, специфические паттерны тестирования. И в итоге твои две недели превращаются в минимум пару месяцев активного задротства, чтобы хотя-бы чуть выше джуна стать для работодателя. Ну и еще понижение зарплаты в большинстве случаев вытекающую сперму из жопы. Ну, зато ты SOLID и OOP знаешь, так сказать.
73 1740407
>>740399
Имхо утверждение типа "язык не важен" - это классический самообман. Естественно важны умения именно разработки, но на одном знании синтаксиса далеко не уедешь, нужно огромное кол-во деталей еще знать.
74 1740457
>>740407
>>740401

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

А все, что вы перечислили узнается за неделю. Достаточно полистать на гитхабе awesome-(название языка программирования).
75 1740495
>>740457
А потом жидко обосраться при попытке решить реальную задачу. Опыта-то нет.
76 1740512
>>740495

Не надо проецировать свой опыт, это лишь подтверждение, что это проблема всяких туповатых Senior Bitrix Developer.

Для программиста, который ещё и в управлении рисками шарит, все пройдет как по маслу.
77 1740517
>>740398
Пруфы?
78 1740576
>>740517

Это ж шутка была.
Гошники, конечно, не нужны десятками тысяч как джависты, что бы в тырпрайзе формошлепить, но остаются самым горячим и хорошо оплачиваемым направлением.
image.png31 Кб, 933x481
79 1740624
>>740517
>>740576

> Это ж шутка была.

80 1740634
>>740512
>>740457
Ты очень глуп, вероятно ты еще на уровне джуна. Я за свою почти 10 летнюю карьеру и на пхп писал, на пайтоне, на руби, на сишарп и на го. Работал больше архитектором, нежели именно кодером. Но то, что ты говоришь - это очень глупые утверждения неопытного человека. Знание языка и его инфраструктуры совершенно равнозначно важно, как и общие навыки программирования. Если ты отличный программист, но в языке знаешь только ключевые слова, типы и структуры - ты не напишешь на нем ничего путного,, либо введешь туда настолько много незначительных маленьких багов, что за тебя придется все переписать знающему спецу. Были у меня на опыте такие как ты, обычно это кстати студентота, которые выучили какой-нибудь питон с джангой, позадротили алгоритмы с паттернами и солидами, и на полном серьезе уверены, что могут язык сменить за пару недель без потери в качестве.
81 1740663
>>740634
Удваиваю тебя. Domain knowledge не менее ценен чем programming knowledge.
82 1740685
>>740634
Пиздишь, ждун желторотый, jQuery архитектор, блять.

Смена языка не проблема. Кроссадаптация работает. Лучше нанять хорошего программиста, чем знатока конкретных технологий.
83 1740693
>>740634

Принеси эту мудрость faang&co компаниям. Вот ведь глупые, совершенно не спрашивают про инфраструктуру языков и вообще собеседования проводят на языке на твой вкус, при желании на грани эзотерики.
84 1740694
>>740634

> 10 лет


> архитектор



мальчик, ты либо давай с пруфами, либо по фактам ответь, не аппелируя к своему несуществующему авторитету
85 1740696
>>740624

Tiobe не показатель. Особенно говоря о го.
Его ж основная фишка простота, которая позволяет не гуглить большую часть вещей.
86 1740697
>>740685
>>740694
Мда, на эти высеры даже отвечать не собираюсь. Когда адекватно захотите пообщаться - пишите.

>>740693
В FAANG еще и алгоритмы спрашивают, которые на работе ты никогда не будешь использовать в том же гугле, если ты не в передовой отдел попадешь, а раньше они спрашивали почему люки круглые или сколько теннисных шариков в автобус поместится. Смекаешь?

Но ты в любом случае не понял что я написал, я вроде не писал, что нельзя с одного языка на другой переключиться, я написал, что это не за неделю делается, за неделю ты только говнокодером на этом языке станешь, независимо от твоих общих скиллов программирования.
87 1740705
>>740697

Неубедительно.

Странно слышать от "типа архитектора" такое. Уж архитектор должен понимать насколько все похоже. Суждения смахивают разве что на архитектора frsmework' name.

Я прошел путь php-python-java-go. Каждый раз перекатывался на другой язык без потерь в зп, без продакшн опыта, но никаких проблем это не вызывало. Все похоже.

Плюс был один проект, настоящий зоопарк языков, который я в качестве лида должен был переписать на го, поддерживая систему на плаву. Не было никаких проблем, что бы разобраться с кодом на неизвестных мне языках (код на луа для nginx и руби), пофиксить проблемы.

Все очень похожее.
88 1740708
В общем дичь. Не хотел бы я в команде работать с таким ограниченным человеком.
89 1740719
>>740705
>>740708
Ты меня оскорбляешь в каждом своем посте. Я бы не хотел работать с таким, как ты. Ты почему-то пытаешься сказать, что перейти с языка на язык можно, при этом я не понимаю зачем, ведь я не говорил, что нельзя. Ты может не тому человеку отвечаешь? Ты странный, если честно, я даже хз что сказать.
image.png18 Кб, 595x287
90 1740766
>>736180 (OP)
А че дженерики не обсуждаете? Они их на полном серьезе уже рассматривают и даже в go2 playground уже ввели.

Какие же всратые и ублюдские "дженерики" подвезли в go2: https://go.googlesource.com/proposal/+/refs/heads/master/design/go2draft-type-parameters.md

Ебал я рот этих пидорасов. Скобочки на скобочках в скобочках, контракты ультра уебищные и не интуитивно понятные. Я осознал весь контекст и понял синтаксис, но все равно каждый раз как смотрю на это говно - приходится напрягать мозг и парсить весь этот уебищный синтаксис почти каждый раз с нуля.

Если дженерики введут в таком виде, в каком сейчас собираются - я буду серьезно подумывать о том, чтобы сменить язык, ибо это уже ни в какие ворота не лезят. Я готов терпеть отсутствие сахара синтаксического, я готов терпеть сложности с каналами и мозгоеблю с синхронизацией, я готов терпеть interface{}. Но это уже слишком перебор.

Я особенно проиграл с мотивации не юзать другой вид скобочек "оптимизацией компайлера". Этот язык делают для компилятора или для людей? Что-то с последними изменениями кажется, что его делают не для людей, а чтобы потешить самолюбие некоторых пидорасов из гугла.
14315507179530.png91 Кб, 374x370
91 1740772
92 1740774
>>740766
Двощую, на прошлой неделе глянул. Да проблема даже не в скобочках. Сама концепция будто один большой костыль. Как всегда они нашли оправдание к любому сомнительному решению, вот только от этого не легче, код то нам писать, а не думать о том, что такие поганые реализации сделаны ибо разрабы хуйланы любят в овероптимизации и оправдания.
93 1740778
>>740766

>сложности с каналами и мозгоеблю с синхронизацией


https://www.youtube.com/watch?v=jYU_Yx6qqEM
94 1740783
>>740778
О, никогда не писавший что-то сложнее на каналах, чем фан-ин/фан-аут и никогда не дебажевший десять тысяч пролитых горутин из-за бага, который позже после ишьюса был записан в доке, как "фича" закукарекал? Хотя ты наверн на мьютексах всё, что сложнее чем байты гонять туда сюда, пишешь.
95 1740899
>>740766
>>740774

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

В го ничего не делают ради красоты, это не хипстерско-смузявый язык. Простота и прагматичность.
96 1740908
>>740766
Этот язык делают для компилятора. Для людей пиздуй в тред где на время компиляции люди сваливают в отпуск.
97 1740911
>>740899
Там и так достаточно возражений.

>>740908
Еблан, им скобочки заменить на другие - это добавить 2 ифа в исходник компилятора, буквально. Мне похуй на увеличение скорости компиляции на 0.002сек, если код после этого будет читаемым.
98 1740915
>>740766
Им надо из D спиздить восклицательный знак ещё и будет норм.
99 1740922
>>740911
Повторяю ещё раз - этот язык делают не для тебя. Этот язык никогда не делали для тебя с самого его создания. Не нравится - меняй работу.
1592099206991.jpg228 Кб, 750x731
100 1740954
>>740766

>сложности с каналами и мозгоеблю с синхронизацией


Охуеть, зумеры совсем ёбу дали, им уже в го многопоточность сложной кажется
image.png1,2 Мб, 1024x683
101 1740988
>>740954
>>740922
Я с ним работаю уже 3 года. Нахуй идите.

> многопоточность сложной кажется


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

Теперь понятен уровень интеллекта слепых фанбоев конкретных языков.

Из-за таких фанбоев как вы из языка получится PHP со смузи, блять.
102 1740995
>>740922

> ряяя не нравится правительство - меняй страну ряяяяя

103 1741117
>>740783

>который позже после ишьюса был записан в доке, как "фича"


Можно линк? О чем это вообще?
104 1741312
>>740988
Неосилятор, плиз. Каналы наоборот удобны в гошной модели. Лучше этого придумали только эрланг с эликсиром, только вот работы не завезли. Короче, дебс, тебе говорят не для тебя язык писали, пиздуй в жяваскрипт асинкавейтами в ивент луп пукать
105 1741334
Даже если выучить го. То есть ли смысл? В основном берут же только сеньоров. Вбейте в поиск hh.ru - требуется только сеньоры или мидлы с кучей багажей знаний. Го можно конечно учить, но не для джунов. А на рынке джуны могут найти работу только на php местах. Россия, СНГ.
106 1741338
>>741334
авиасейлз искал джуна, ну и озон который собирал курсы по го для мидлов ХА
107 1741498
>>741334
Ну так выучись сразу на сеньора, что ты как маленький.
1200px-Haskell-Logo.svg.png15 Кб, 1200x847
108 1741691
Ну что, допросились своих женериков в го, не хватало да, спать не могли без них?

Нате, кушайте теперь свои монады в го, допросились https://github.com/reconquest/goava#resultt
Снимок экрана 2020-07-04 в 15.05.12.png158 Кб, 1026x1042
109 1741692
есть 2 метода для фоновой обработки тасков: один делает запросы в БД и достает таски с нужным статусом и отправляет их в канал; другой - читает из этого канала и делает непосредственно обработку (шлет хттп-запросы). необходимо, чтобы одновременно могло обрабатываться несколько тасков. эти методы запускаются в двух отдельных горутинах

реализовал - код делает то, что я задумывал. сейчас стал писать на это дело тесты и столкнулся со сложностями - в частности при тестировании метода Process(). по задумке этот метод всегда должен работать в фоне и слушать канал с тасками - то есть на практике он должен останавливаться только при полном выходе из программы. соответственно, особой необходимости в использовании какого-нибудь WaitGroup нет

вопрос: как правильно тестировать метод Process() или как можно его спроектировать, чтобы он был пригодным для тестирования?
110 1741723
>>741692
семафор ты имхо заоверинжинерил - во-первых, для таких штук лучше использовать канал из struct{}, во-вторых, зачем он тебе? ты не контролируешь количество горутин, которые стартуешь?

дальше, не запускай в своем методе Process горутину, просто передавай туда канал и синхронно, при вычитывании из канала, обрабатывай свою таску

и еще, в SendUnprocess сначала обновляй статус таски, потом пиши ее в канал, либо вообще унеси эту логику обновления в Process - не нужно лишний раз самому себе устривать shared-state
111 1741725
>>741723
>>741692

как это все поправишь, тест у тебя будет выглядеть типо:
ch := make(.., 1)
ch <- task{}
close(ch)
go Process(ch)
ret := <- ch
assert(expected, ret)
112 1741738
>>741723

>во-вторых, зачем он тебе? ты не контролируешь количество горутин, которые стартуешь?


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

>просто передавай туда канал и синхронно, при вычитывании из канала, обрабатывай свою таску


я мб неправильно понял, но мы разве не лишаемся в таком случае возможности обрабатывать несколько тасков одновременно?

>унеси эту логику обновления в Process


допустим, я достал из бд небольшое количество записей для обработки, заслал их в канал и снова полез в бд за тасками - есть вероятность достать один и тот же таск повторно
113 1741772
>>741312

> неосилятор


> я с ним работаю уже 3 года


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

Вы шизики тут наверное и дженерики не понимаете зачем в го будут полезны. Если вас лид не допускает к чему-то серьезнее перегона жсона туда сюда и поддержке микросервисов на 200 строк - не нужно проецировать свою тупость на других.
114 1741792
>>741692

> sem


Для чего нужны строки 25 и 29? Это ты так ограничиваешь кол-во горутин? Хотел на этом моменте тебя долбаебом назвать, но не буду. Ты джун же?

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

Покажи клиентский код, который с этими методами работает.
115 1741801
>>741738

...а голова нам нужна чтобы есть

на, держи, неуч https://go2goplay.golang.org/p/UmukeBHNN9o

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

У тебя же 100 тасок будут выполняться по очереди 10 раз конкурентно, т.к. в send у тебя простейший генератор, блокирующийся на каждой итерации цикла.
117 1741827
>>741792
>>741792
да, недоджун даже, только начал изучать го. в 25 строке кладем единицу (ну либо пустую структуру, как ты и писал ранее) в канал, чтобы при заполнении канала заблочиться на этом моменте и не создавать новые горутины до тех пор, пока другие, уже созданные горутины не прочитают из него (29 строка)

клиентский код простой, я действительно нигде не контролирую протечку:
taskChan := make(chan entity.Task)
go p.Process(taskChan)
go p.SendUnprocessed(taskChan)
118 1741828
>>741824

>Так он аналог очереди непрерывной хочет организовать, или буферного выполнения горутин


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

>В любом случае его подход попахивает говном.


спасибо за наводку)
119 1741831
>>741824

ну так и чем концептуально этот генератор отличается от генератора тасок из бд?

> блокирующийся на каждой итерации


оно не так работает, перечитай

>>741828
---> >>741828 читай и думай (про шаред стейт тоже подумай)
120 1741833
>>741827

> как ты и писал ранее


Не, с тобой щас 2 чувака общаются, я не писал, но структура памяти меньше сожрет, чем int, её или interface{} предпочтительнее юзать, когда тебе не важны данные, которые через канал проходят.

> taskChan := make(chan entity.Task)


> go p.Process(taskChan)


> go p.SendUnprocessed(taskChan)



Лол, ты их просто вкидываешь, ясн.

Тогда твое решение норм, имеет место быть. Оверинжинирить смысла нет особо.
121 1741839
>>741831

> оно не так работает, перечитай


Так. 100 тасок на 10 горутин. Что не так?

> ну так и чем концептуально этот генератор отличается от генератора тасок из бд?


Тем, что у него может быть неопределеннок кол-во этих тасок, определяющихся набором данных из этой бд.
122 1741843
>>741692

> вопрос: как правильно тестировать метод Process() или как можно его спроектировать, чтобы он был пригодным для тестирования?



Мокажешь свой чекер, и считаешь сколько раз он был вызван. sem лучше в атрибут твоего Processor засунуть, а не в общем скоупе хранить, соответственно sem в том же тесте и определяешь тестовый.
123 1741851
>>741833
>>741827
Единственное добавлю, что хуйней какой-то занимаешься, обновляешь какую-то таску после того, как уже отправил её в канал и т.д. Не понятна ответственность этих методов и логичнее свести их в один, и отправить туда либо канал тасок и заполнять их с клиентской части кода, либо сразу слайс. Опять же не до конца понятен контекст и че ты вообще делаешь с этими тасками, а это важно.
124 1741853
>>741839
ты наверно тоже не очень долго пишешь на го?

давай попробуем с наводочкой, а что будет если в этом примере поменять 10 на 100-200-х, а 100 на неопределенное значение?
125 1741855
>>741853

> ты наверно тоже не очень долго пишешь на го?


Нет, давно. Твой код делит 100 тасок на 10 горутин, которые по 10 тасок конкурентно выполняет из этих 100. Ты свой код сам не понимаешь чтоль?
126 1741862
А что если на каждую таску заводить по рутине? Один хрен там самое долгое это ожидание ответа, а не переключение контекстов
127 1741870
>>741851

>хуйней какой-то занимаешься, обновляешь какую-то таску после того, как уже отправил её в канал и т.д.


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

>логичнее свести их в один


так в моем случае SendUnprocessed() - это, по сути, и есть клиентская часть

>Опять же не до конца понятен контекст и че ты вообще делаешь с этими тасками, а это важно.


в бд лежат таски (+ добавляются новые по http), мне нужно каждый из тасков мониторить каждые 5 минут. для этого я запускаю горутину при запуске приложения, которая постоянно работает и достает из бд таски, которые надо обработать. таск содержит в себе url'ы, на которые надо постучаться по хттп и проверить ответ: если ошибка - кидаю уведомление в телегу/куда-то еще (в бд инфу об ошибке не храню, т.к на данный момент это не оч критично). желательно, чтобы была возможность проверять несколько тасков одновременно
128 1741871
>>741862
Более полный код скинь - тогда можно обсуждать. Пока многие моменты не ясны, а именно что ты пытаешься по итогу сделать и как твои таски работают вообще.
129 1741872
>>741871
это другой анон, не автор вопроса
130 1741875
>>741871
Я другой анон.
У себя на галере я делал сервис отложенного выполнения заданий, очень похожих на то, что тут спрашивают. Я сделал по рутине на таску, зависимость есть, в прод уже пошло
131 1741877
>>741870
>>741862

> если на каждую таску заводить по рутине?


Да, можно, вместо того, чтобы в цикле пихать. Я это и имел в виду под сведением этого всего в один метод. Логически не понятно зачем тебе Process без SendUnprocessed. Похоже они друг без друга не живут в твоем приложении.
132 1741882
>>741877

> вместо того, чтобы в цикле пихать


Ток важно проследить, чтобы одну и ту же не вытащить одновременно, race condition так сказать
133 1741884
>>741882
Можно чанками по max 100-1000 записей вытаскивать, и их передавать уже на обработку и ждать завершения
134 1741887
>>741877
а, теперь понял. действительно, не живут. но тут снова возникает вопрос: как тестить такой метод, если у меня будет крутиться бесконечный цикл запросов к БД?
135 1741891
>>741884
>>741882
>>741877
В таком случае лучше будет waitgroup юзать, а не канал с буфером. Если ты из какого-нибудь rabbitMQ тянешь с поддержкой атомик операций, то можно и каналом с буфером ограничиться, тогда рейс кондишена не будет банально. Если из какого-то sql хранилища, то нужно чанками и с waitgroup, ибо синхронизовать этот зоопарк будет проблематично
136 1741893
>>741887
Так бесконечный цикл должен быть не внутри твоего process метода, а там, откуда ты его вызываешь. Либо добавить поддержку Closer (в деталях например done канал), чтобы ты мог самолично закрыть, но лучше Process методу оставить задачу на обработку одного чанка данных.
137 1741900
>>741891

> ибо синхронизовать этот зоопарк будет проблематично


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

Мимо другой анон
138 1741997
>>741801

> почитай го-блог, там написано как нужно паралелить выполнение тасок


Есть ссылка? Не могу найти
139 1742073
>>741691
Ты так говоришь, словно это что-то плохое. В расте аналогичный функционал вообще в stdlib. Я думаю это лучше, чем возвращать nil, err. Единственное, нужно продумать как элегантно добавлять в таком случае контекст (что-то аналогичное врапу одной ошибки в другую)
image.png238 Кб, 480x360
140 1742076
>>741691
Такие дженерики как в го2 и врагу не пожелаешь, блять
141 1742083
>>742076
Что именно тебе не нравиться?
142 1742099
>>742083
Ему лишь бы набросить. Нет дженериков - плохо, есть - уродливые, были бы красивые - он бы писал, что их спиздили из языкнейм. Просто токсичный человечек из интернета.
photo2020-07-0322-10-40.jpg121 Кб, 1125x1077
143 1742111
144 1742113
Есть здесь аноны, которые перекатились из C# в go? Интересует, как ощущения. Сильно ли не хватает дженериков и linq?
145 1742128
>>742083

> нравиться


тся

> Что именно


Самая большая претензия - синтаксис типов. Я не про скобочки, а про капсуляцию которую они сделали. Т.е. они решили добавить новых фич в интерфейс, например списки типов, при этом нет оверлоада операторов. Получается в 50% случаев мы банально не сможем использовать например comparable, или еще что, т.к. это тупо не будет поддерживаться языком, и ты либо используешь один из базовых типов, либо сосешь хуй и опять же отказываешься от дженериков и пишешь все сам, как и до них.

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

>>742099
Нет, просто в отличии от тебя я пишу достаточно серьезный код, а не гонялово жсона в микросервисе на 100 строк.
146 1742129
>>742113

> Интересует, как ощущения


Разные языки сильно, нет толку сравнивать.
147 1742136
>>742129
Языки разные, но задачи-то одинаковые. В обоих случаях придётся микросервисы и круды писать
148 1742138
>>742136
Не, в одном случае микросервисы, а в другом формошлёпство для десктопа.
149 1742147
>>742138
По шарпу куда больше вакансий для веба. А любой нормальный разработчик под винду пишет на wpf/uwp. Винформы не в почёте уже лет 5
150 1742151
>>742147
Формошлёпство на WPF.

QT
151 1742156
>>742151
Там же не формошлёпство, а нормальная вёрстка уже
152 1742194
>>742111
Лол
154 1742476
>>742418
Глянул содержание. Не совсем понял для кого книга. Он впихнул в неё вообще все, го с нуля до профайлинга и тестирования и в конце две главы про сети.

Хз, не читал. Если знаешь го, то можно просто последние главы почитать, а если не знаешь - лучше другую книгу найти, а не та, что за 500 страниц тебе и конкуренси и сети и всю основу языка галопом пересказывает. По одному конкуренси можно такого же объема книгу написать.
155 1742478
>>742476
>>742418
Кста, про нейросети вообще нихуя в оглавлении нет.
156 1742486
>>736180 (OP)
Какие либы мастхев го разрабу микросервисов? Понятно за gRPC, с ОРМ тож понятно (gorm), также понятно за всякие редисы и другие ки-валью хуйни.

А используете ли в работе что-то типа cobra (фреймворк для CLI), или веб фреймворки, как с логами дела, чем и куда хуярите? Было бы интересно послушать именно как обычно гоферы инфраструктуру микросервисов поддерживают и на чем обычно пишут.
157 1742495
>>742476

>По одному конкуренси можно такого же объема книгу написать.


а что можно по конкуренси почитать, кроме go blog и effective go?
image.png202 Кб, 381x499
158 1742514
>>742495
Concurrency in Go - Katherine Cox-Buday

Мне эта зашла. Там еще и за паттерны рассказывается. Но тож понимай, что книжки это лишь часть, надо самому пытаться разобраться, в некоторых моментах в пикбуке достаточно поверхностно рассказываются более сложные вещи, типа sync.Pool и т.д., но это я считаю очень хорошо, ибо заставляет самому во время прочтения гуглить, изучать и эксперементировать.
159 1742530
>>742486
Cobra CLI, zap (со своей надстройкой) для логов, gomock для генерации моков
160 1742541
>>742530

> zap


Дока2 говно канеш. Их sugar/logger это concurrency safe логгер ведь?
161 1742558
>>742541
Хз. У нас он завёрнут в самодельную обёртку, по ней дока есть, я пользуюсь ей
162 1742562
>>742558
Я щас сижу читаю доку запа и ахуеваю с того, насколько там нихуя по факту не написано, вообще нихуя. Ясн. У запа документация одна из самых отвратных которые я вообще когда-либо читал. У меня аж жопа немного подгорела с ней. Сейчас попробовал узнать как можно хук свой накинуть или направить логи в самодельный writer - а нихуя. В доке есть один метод "Hook", регистрирующий обрезанную анонимку, у которой даже доступа к полям нет, под ним написано мол "для более сложной хуйни смотрите методнейм", а методнейма нет вообще во всей либе. Я чуть не поперхнулся, пиздос канеш. Как такое говнище вообще популярным стало в го среде? Я его даже в роадмапе видел.
163 1742581
>>742486

>с ОРМ тож понятно (gorm)


Не все так однозначно
>>742486

>за gRPC


Микросервисы не только на RPC пишут
164 1742599
>>742562
У некоторых гугловых проектов ещё хуже. Там уже натурально берёшь имя пакета и ищешь другие проекты которые его используют чтобы понять что да как.
165 1742631
>>742581
Спасибо за столь информативный ответ. Я в курсе.
166 1742690
А кто-то реально использует горм в 2020? А зачем?
Оно выглядит убого, сложное и тормозное. Или я слишком предвзят?
Я иногда xorm беру, но только для микропроектов... По работе только голый sql.
167 1742713
>>742690
Ну я и спрашиваю. Хз кто использует. Прост он популярен у пендосов
go.jpg33 Кб, 445x316
168 1742926
>>736180 (OP)
Почему так?
fmt.Println(len(string)) показывает 8, но должен 4?
Потому что кириллицу автоматичсеки перекодирует?
169 1742930
>>742926
Кириллица в utf-8 занимает 2 байта на символ. Когда ты len юзаешь - происходит конвертация строки в слайс байтов. Если нужно именно символы глянуть то юзай len([]rune("мама"))
170 1743426
>>742690
ДомКлик
Сбербанк для экспертов
ivi
WILDBERRIES
Точка
МойОфис
OZON.ru Информационные технологии
Авито
Ручной анализ хэха дал вот эти результаты
171 1743447
Хочу написать программу на го, какие подводные камни?
172 1743513
Объясните, что это такое?

>_ sql.Scanner = (*Float64)(nil)


Явно что-то с интерфейсом, но не очень понятно зачем
173 1743569
>>743513
Проверка, что скул.сканнер реализует интерфейс флоат64. Выполняется на компайлтайме
174 1743572
>>743447
Контр, страйк)))
175 1743599
>>743426
По запросу gorm там ровно одна вакансия. А ещё я работаю в одной из перечисленных тобой контор и точно знаю что там горма нет
176 1743607
>>743599
много зарабатываешь? работа интересная?
177 1743731
>>743569
А, это из-за того, что интерфейсы удовлетворяются неявно, люди пишут, чтобы убедиться?
Спасибо.
178 1743762
>>743599
200к
Интересная потому, что я недавно вкатился в эту область. Думаю, что за пару лет заебёт.
Надо перекатываться в руководители
179 1743763
180 1743816
>>743762

>200к


Сеньор?
181 1743828
>>743762

Нахуй, заебет ещё быстрее.
182 1743935
>>743762
Что за область, если не секрет?
183 1744490
>>743935
Ну а какая может быть область, если это тред про го? Микросервисные бекенды, разумеется.
184 1744504
>>744490
Бизнес область. Понятно, что микросервисы. Про что они?
185 1744511
>>744504
В бизнес области нет какой-то специфики, которую любой программачер не освоил бы за пару дней (читай не финтех)
186 1744578
>>743762
А из какой области пришёл?

Кто-нибудь переходил из фронтенда в го? Или хотя бы из бекенда на ноде? Может какие-то советы по обходу подводных камней есть? Прошел тур оф го, читаю книгу диджитал оушена по го, но возможно каким-то другим методом лучше изучать го и всё с ним близко связанное? Может другая книга?
187 1744726
>>744511
На митингах так же отвечаешь?
188 1744740
>>744578
Из эмбеда
>>744726
У тебя какие-то проблемы с консистентностью беседы. На что отвечаю? Как "так же"?
189 1744850
>>744578

После тура надо пилить приложения. Все.
190 1744892
>>744850
Что-то идей особо нету, либо слишком сложные
191 1744901
>>744726
В Россиии запрещены митинги.
192 1745286
>>740783
>>741117

>который позже после ишьюса был записан в доке, как "фича"


Все ясно, беспруфный вскукорек хейтера
193 1745322
>>744892

headless CRM для бложика - элементарно, но полезно.
Следом тоже самое, но на микросервисов.
Готово, ты гошник.
194 1745342
>>745322
Звучит норм, надо попробовать
195 1745343
>>745322

CMS, не CRM. Задумался, что-то
196 1745444
В целом, будем откровенны, в большинстве языков дженерики нужны в основном для коллекций.
image.png713 Кб, 1306x1009
197 1745489
>>736180 (OP)
Пацаны, смотрите. Я нам тернарный оператор подвез:

(map[bool]int{true: a, false: a - 1})[a > b]
image.png555 Кб, 790x593
198 1745496
image.png20 Кб, 389x429
199 1745520
>>736180 (OP)
Кто-нибудь юзал CGO? Есть хоть одна IDE где есть подсветка хотя-бы базовая? Или как в 78м на ощупь придется ориентироваться? Пиздец боль.
200 1745643
>>745520
goland? никогда с ним в этом смысле проблем не испытывал
201 1745666
>>745444
А также для дохуищи функций, которые эти коллекции используют, например, сортировки вместо того пиздеца, который в пакете sort.
202 1745774
>>745643
Голэнд не подсвечивает cgo никак, будто её нет и будто ты к пустоте обращаешься.
203 1745776
>>745444
Если переписать весь stdlib голэнга с дженериками - он в 2 раза меньше будет, если не больше. И речь вообще не о коллекциях. Речь о некой абстракции над типом, которая сохраняет требуемые параметры. Это как интерфейс, но композитный и для встроенных типов.
204 1745783
Женерики не нужны.
Не использовал и использовать не буду.
205 1745813
>>745783
Циклы не нужны, не использовал и использовать не буду. Те, кому не хватает замыкания итератора - не программисты, а диллетанты.

Согласен с тобой, братка.
206 1745851
>>745813

MAP-REDUCE, MAP-REDUCE, СУКА!!!1111 ТОЛЬКО HIGHER-ORDER FUNCTION, ТОЛЬКО ХАРДКОР, ИЛИ ТЫ ИЗ ЭТИХ, GOTO-ПИДОРОВ???!!!
207 1745854
>>745783
То ли дело interface{}, рефлексия и кодогенерация.
208 1745867
Раз собираются запилить дженерики, то может и аннотации когда-нибудь запилят.
209 1745874
>>745867

не подсказывай им, пожалуйста
210 1745888
>>745851
Нахуй иди питух. Пишу циклы с помощью рекурсии с 1980 года.
211 1745890
>>745867
Зачем? Аннотации это уже совсем зашкварище.
212 1745897
Малолетние сруны баззвордами в которые не могут убивают очередной тред
213 1745901
>>745897
Если ты этих слов не понимаешь - не значит, что их не понимают другие.
214 1745922
>>745888

Так в говне даже оптимизации хвостовой рекурсии нет.
215 1745930
А можете рассказать о gccgo?
Есть CPU-intensive задачка. Go справляется неплохо, но хочется быстрее.
Начал гуглить. Готовых бинарников нет. Чо только вручную собирать?
Оно только компилит в бинарник? Нельзя бенчмарки позапускать и сравнить со стандартным го?
216 1745938
>>745922
ненужно
217 1745943
>>745938

Лишних оптимазаций не бывает.
218 1745956
>>745943

ты не очень умный, да?
219 1745974
>>745956

Рекурсивные решения для ряда задач выглядят намного элегантнее, чем итеративные, но вторые всегда производительнее.
Если бы го умел оптимизировать хвостовую рекурсию - было бы здорово.
Что плохого в том, что ряд задач станет легче решать?
220 1745979
>>745974

> было бы здорово



Сильный аргумент.

Подумай теперь над тем, что такая оптимизация стоит ресурсов на имплементацию и последующую поддержку, стоят ли эти ресурсы твоего "здорово" для 2.5 задач, чтобы написать их медленнее, но "изящнее"?
221 1745986
>>745979

>Отвечать пердежу в лужу

222 1745990
>>745897
Серверлесс саас васм на го с фаербейз.
223 1745998
>>745979

Пусть сначала генерики закончат, а там можно будет потихоньку, лет за десять, добавить паттерн матчинг и оптимизацию рекурсии.
224 1746007
>>745986

для разнообразия,

> отвечать не чтобы потроллить, а чтобы объяснить

225 1746148
>>745998

>паттерн матчинг


Новатор-оптимизатор уровня пр
226 1746149
>>745974
Рекурсивные решения во всех, кроме нескольких специфичных случаях - намного сложнее для чтения и их рекумендуется избегать максимально в любом языке программирования.
227 1746253
>>746149

Бля, собрались те, кто рекурсию освоить даже не могут. Сложно им.
228 1746301
>>746253

сложно Машку за ляжку, а тут берешь и просто делаешь
229 1746348
>>746253
Ты так-то находишься в треде по обсуждению языка, автор которого считает дженерики, отладчик, тернарный оператор, дефолтные параметры функций, лямбды и пр. сложными концепциями. О какой рекурсии ты вообще говоришь? Удивлён, что в го вообще есть рекурсия
230 1746349
>>746348
Рекурсия хоть поддерживается нативно архитектурой, при реализации вообще ничего делать не надо.
231 1746355
>>746348

>сложными концепциями.


Ненужным говном
232 1746359
>>746355

> Goвном


Ну да.
233 1746425
>>746355
Конечно. Давайте писать целый цикл вместо:
array.FirstOrDefault(p => p.Id == 2)

Для тебя, наверное, вся теория категорий и ФП - ненужное говно
234 1746435
>>746348

> лямбды


func foo(f func(int, int) int) int {
return f(2, 2);
}
foo(func(a int, b int) int {return 2 + 2}))

Конечно, это не однострочные лямбды.
235 1746444
>>746253
Почему ты решил что я её освоить не могу, лол? Я говорю, что её безалаберное использование направо и налево чисто чтобы было - это говнокод, который только тешит чсв создателя, при этом тому, кто его читает уже придется вчитываться в то, как этот долбаеб контролит скоуп и что в коде происходит, не важно на каком языке.

Если ты в командах никогда не писал - это твоя проблема, лол. И да, я на литкоде спокойно делаю хард задачки, так что уж меня не нужно в незнании рекурсии обвинять, овощ.
236 1746496
>>746425
Ты не понимаешь о чём пишешь
237 1746527
1
image.png29 Кб, 576x474
238 1746536
Тащемта прекрасный язык, ваще без б
Аноним 239 1748405
>>746536
тестовое из Яшы)
240 1748409
>>746536

>>гыгыгы смарити я смищно пашутил)))


Остается только загадкой, что ты делаешь в этой параше, если все двачеры хуесосы.
241 1748455
>>748409
очевидно же - сосет за компанию
image.png5 Кб, 255x93
242 1748628
Пацаны, какова хуя? Почему так нельзя сделать? (в ошибке "ожидаю запятую", т.е. хуйня)

>>748409
>>748455
Двощую, мы все в одной лодке сосем друг другу хуи, я же любя
243 1748631
>>746536

> член uint8



Проиграл
244 1748644
image.png5 Кб, 267x97
245 1748646
>>748644
Бля, эт я проебался, с норм именем ошибка в любом случае.
246 1748663
>>748646
Могу предположить что парсер считает это как невнятный итерабельный сиквенс аргументов вместо ключей которые он ожидает для интерфейсов
Можешь использовать make(args...)
247 1748682
>>748663

> Можешь использовать make(args...)


Всм? Мейк для слайсов, каналов и пары других типов, нельзя так вызывать.
248 1748708
>>748682
Да ты прав я ночной втыкатель
Можешь приапендить к пустому слайсу https://play.golang.org/p/kFa_7TGHU2C
249 1748747
>>748708
>>748708
Да мне бы это в массив захуярить (начало слайса точнее до длины массива), сделал в цикле, поебать.
250 1748848
в го считается нормальной практика постановки в очередь (с использованием какого-нибудь rabbitmq) данных при post-запросе и дальнейшей их обработки? вроде того, как делают в пыхе: приходит post-запрос, ставим данные из него в очередь и сразу отдаем ответ. и какой-то воркер разгребает очередь
воркер стоит делать отдельной горутиной или вообще выносить в другой процесс?
251 1748949
>>748848
Ты там по запросу майнишь биткоин штоле
252 1748961
>>748848
Подобное считается нормальной практикой в любом языке. Если операция, которую ты хочешь выполнить занимает много времени - складываешь в очередь, в ответ возвращаешь статус операции, а из очереди воркеры берут и выполняют. Реализовать можешь как хочешь, зависит от нагрузки. Хоть горутиной в том же коде (но это скейлить нельзя), либо держать пул воркеров в иде отдельных процессов на этом, либо других серверах через какой-либо лодбалансер. Зависит от потребностей твоей системы.
253 1748991
>>748961

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

главное сомнение - необходимо ли пилить отдельный процесс для консьюмера (с одной стороны это вроде и не сервис и какой-либо логики в себе не несет, но с другой - я его могу держать хоть на другой машине, и это плюс) или держать его в отдельной горутине (по сути теми же каналами могу добиться того же результата, но не проебу данные, если что)
254 1749140
>>748991
Реббит - считай чуть ли не стандарт общения между микросервисами.

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

Принимаешь запрос - решаешь куда и кому его на обработку отправить. Вот и всё. Либо он тебе сам результат отправит обратно в той же очереди, либо сам запросишь, когда понадобится.
255 1749235
>>748961
Что из себя представляет воркер? Отдельный автономный кусок го кода?

Аноны, что скажете про NATS?
256 1749324
>>749235
>>749140

скажу, что перед тем как тащить к себе какую-то технологию (а особенно хранилище данных) стоит подумать, а ту ли проблему ты собираешься решать этой технологией
257 1749537
>>749235

> Отдельный автономный кусок го кода?


Я уже тебе 2 раза расписал что это такое, харе тупить. Это может быть и кусок кода который хуй заскейлишь, а может быть абсолютно отдельный микросервис. Ты заебал.
258 1749602
>>749537
это другой анон, не автор вопроса
за ответ спасибо!
259 1749870
Есть тут перекатившиеся с пистона? ЗП дропнулась или возросла?
260 1750079
>>749870
Лол, с питона зп возростет и при переходе на пхп, ты о чем? На го возрастет многократно, особенно если ты исключительно питонистом был и нормального кода в жизни не видел.
261 1750104
>>750079

>с питона зп возростет и при переходе на пхп, ты о чем


Спорное утверждение
мимо питонист 180к на второй год работы
262 1750195
>>750104

> питонист 180к на второй год работы


Спорное утверждение - это твои нафантазированные 180к через 2 года. На питоне сейчас что-то сложнее веб сайтов или ERP систем не пишется (не говоря о всяких дата саенсах, но там питон только как один из инструментов). На пыхе худо бедно даже интерпрайз есть и типизация.
263 1750218
>>750195

> На питоне сейчас что-то сложнее ERP систем не пишется



> Enterpise resource planning



> На пыхе худо бедно даже интерпрайз есть



Это ты на ноль так хитро решил поделить?
264 1750289
>>750195
Таки нет, работаю на букмекеров
265 1750317
>>750195
Простите?
Кто в здравом уме будет писать ERP на питоне?
266 1750329
>>750218
ERP ирл это совсем не то, что в википедии. Считай какой-нибудь сайт, который парсит интернет магазины на цены - это тоже вид ERP. Модное слово навешивают на всё подряд, чтобы перед заказчиком выебнуться, так сказать.

>>750317
Кто-то пишет.
267 1750437
>>750317
А на чём? Я просто спрашиваю.
268 1750951
>>750329

>ERP ирл это совсем не то, что в википедии



ERP это конкретная энтерпрайзная хуита, как правило здоровая, дорогущая и жирная, ядро всего интырпрайза и всех его процессов.

Либо сами 1С и SAP или их манявелосипеды.

То, что дебичи в каких-то ноунейм конторах пытаются придумывать свои определения - это их проблемы.
269 1751311
>>745520
Первое правило cgo - не использовать cgo. Либо перепиши на go, либо сделай обёртку и скрой от глаз все C-типы
image.png3 Кб, 162x305
270 1751339
ПЩ ПЩ ОЛОЛО
271 1751345
>>751339
Ты водитель НЛО?
272 1751452
>>751345
Новое требование в го-вакансиях?
273 1751488
>>750195
Кто вообще в здравом уме использует питон сейчас? Кроме датасайнтистов, которым бы поменьше думать над качеством кода, и побольше писать скриптики и запускать нейроночки.
274 1751495
>>751488

>Кто вообще в здравом уме использует питон сейчас?


Достаточно на hh зайти и посмотреть
275 1751497
>>751488
Там, где используется пыхоплеяда, особой разницы нет, на чём говнокодить скриптики.
276 1751503
>>751488
Макаковкатуны с вышкодебилами-неосиляторами выгодны
277 1751510
>>751503

>говно


>не для вкатышей-неосиляторов

278 1751515
>>751510
В рамках веб параши да
279 1751521
>>751515
А что у него там ещё есть кроме этого?
280 1751633
>>751311
Двачу. Особенно это хуево в поддержке, если динамически линковать. Но и даже если линковать статически, высока вероятность ловить сигфолты, которые ты из го никак не захендлишь. Т.е. паника в го - можно сделать recover, залогировать стек вызовов, отправить долгоживущим соединением завершение, что угодно. А краш в С - это минус процесс, и хуй знает в чем и где проблема
281 1751668
>>740457
Этот прав.
Хотя не за неделю конечно. Если чисто новый язык, а проект знакомый и ты на нем хотя бы пол года или год, то за неделю уже можно писать нормальный код, хороший код за месяц, а охуительный где-то месяцев через 4.
Но обычно новый язык означает новую компанию (не налажена коммуникация) и новый проект (рисе не знакомо). И тогда первый импакт будет не через неделю, а через полтора месяца в лучшем случае. С учётом удаленки (коммуникация ещё хуже) урожай ещё на полтора
282 1751980
>>736180 (OP)
Ребята, подскажите с чего начать. Хочу написать личное приложение, в общем, для сталкинга ЕОТ в инсте. Конкретно - чтобы оно в память записвало текстовый файл и отмечало там, когда она заходила, а когда выходила из Инста. Мб API использовать, мб типа скринов делать каждые 5-10-15 минут(и ам будет писться типа "в сети 17 минут назад"

С чего начать вообще?
283 1752026
>>751980
Лол, я такое же писал для вк. Но там и апи толком не было, нужно было тупо открыть урл определённого вида и смотреть на поле с временем последней активности.
284 1752037
>>752026
дай гайд
285 1752043
>>752037
Не, с инстой это так же просто не сработает, там нужно обмазываться документацией апи, ставить какие-то либы (вроде, там не REST, а что-то другое), получать токен, и ещё не факт, что там вообще можно посмотреть время, если не через официальный клиент.
286 1752046
>>752043
Я через залогиненный десктоп смотрю. Отсюда https://www.instagram.com/direct/inbox/

Чтобы была отметка "В сети X мин. назад" - нужно, чтобы у тебя с этим персонажем был чат(т.е. если ты просто написал ей, а она не ответила - ты не будешь знать когда она онлайн, а когда нет).
287 1752064
>>751497
Пыха, стоит отдать ей должное, совершила какой-то неебический рывок вперед. И по перфомансу, и по типизации, и по качеству экосистемы.
А что есть у питона? Половина проектов на 2.7 (да и современный не сильно быстрее), отсутствие внятной типизации и древняя, как говно мамонта, джанга?
288 1752070
>>752064

>как говно мамонта, джанга?


Сама джанга медленно переезжает на async и есть куча фрейморков у которых все эти фишечки нового питона из коробки
289 1752077
>>752064
У пыхи тоже не всё хорошо с обратной совместимостью. Правда, хз, насколько сложно переписывать на новые версии, наверное, легче, чем на питоне.
Вебня для питона - вообще пиздец. Говноджанга и сделанный целиком из костылей фласк, а всё остальное непопулярно и развито так себе.
290 1752089
>>752077

> У пыхи тоже не всё хорошо с обратной совместимостью.


Пруфы? Там с пятой версии были какие-то ну совсем минорные изменения, типа приоритетов парсинга скобок при работе с динамически определяемыми свойствами объектов, а в целом ничего не ломалось, только добавлялось.
Исключая версии <5, конечно, но там, я надеюсь, всё мертво и уже давно.
291 1752098
>>752089
Пруфов у меня не будет, ибо раз в 5/7 версиях ситуация исправилась, то мои сведения устарели. Несколько лет назад, ещё в шкалке, что-то делал с пыхой, были какие-то проблемы с mysql/mysqli, ещё охуевал с несовместимых версий dll-ек расширений. Не помню уже.
292 1752484
>>752098
Лол, mysqli уже давно никто из вменяемых людей не использует, непонятно, много ли ты понимал в школе, а главное, судя по всему, у тебя были проблемы с тем, чтобы поставить экстеншен правильной версии к правильной версии пыхи на винде. Это не является проблемой совместимости языка, а скорее проблема платформы: в винде нельзя легко и просто через `apt-get install php-mysql` поддерживать совместимость пакетов.
293 1752746
>>752077

>У пыхи тоже не всё хорошо с обратной совместимостью.



Если бы пыха так сильно не парилась над обратной совместимостью, как делает сейчас - ее разработчики уже давно бы жили в 3020 году. Однако не считаться с огромной кучей говна, которую наворотили на старых версиях пыхи, не получается.
294 1752763
>>752746
В крестах та же хуйня.
295 1754006
>>752484

> легко и просто через `apt-get install php-mysql`


Ставить одну версию библиотеки сразу для всей системы это не легко и просто, это отложенные боль и унижение.
296 1754029
>>754006
DOCKER
297 1754146
>>754006
Не, ну так-то да, докеры-шмокеры, но вы видели, там чувак вручную библиотеки подкладывает, в виде dll'ек! Если ему про контейнеры начать рассказывать, он кукухой двинется.
298 1754220
>>754146
Ну я тогда совсем шкилой был, только-только прочитал книжку по сишке для начинающих и начал читать про кресты. Докер же тогда только появился, и о нём ещё никто не знал, да и я охуел бы, если бы увидел его.
299 1754274
>>754006

>Ставить одну версию библиотеки сразу для всей системы это не легко и просто, это отложенные боль и унижение.


Если сидишь на примитивной бинарной параше без слотов
300 1754292
>>754274
Ага, лучше пересобирать кеды и фоксятину по 5-6 часов из-за пары забытых USE-флагов.
301 1754390
>>754292
Ну а нехуй забывать, ты же не долбоёб? а ну впрочем
302 1754872
А секрет успеха прост оказался - программистам не нужны 100500 фич, им нужна прикладная сишка, то есть безопасная, с батарейками и хоть каким-то тулингом.
303 1755741
Только начал на го перебираться с другого стека, и тут такое нашёл:

https://medium.com/servicetitan-engineering/go-vs-c-part-2-garbage-collection-9384677f86f1

Печально, что такая огромная разница. С другой стороны у го такое же преимущество по длительности STW, но не знаю, перевешивает ли это производительность шарповского GC.

Кто шарит в го, там что-то улучшается с GC?
304 1755751
>>755741
GC 'это tradeoff - хочешь максимальный throughput - делай полный STW, хочешь маленькие STW паузы или вообще без них - плати производительностью в рантайме. Хорошо когда в языке можно выбрать, но увы создатели Go сделали сами этот выбор.

Помню полгода назад мне тут один тип усиралсы, пытаясь доказать какой невъебенный по всем параметрам сборщик мусора. в Go
305 1755830
Ребят, являюсь джава-спринг дужуном, хочу перекатиться в golang, реально ли сейчас найти ремоут неопытному разработчику?
306 1755937
>>755830

маловероятно. да и в любом случае ремоут для джуна - не лучший выбор: как для работодателя, так и для самого джуна
307 1755958
>>755937
)) Я живу в пердях, ну и 4 месяца уже работал удаленно на джаве
308 1755977
>>755751

>хочешь маленькие STW паузы или вообще без них


А какие есть примеры GC без пауз? Я нашел только три варианта для джавы
310 1755994
>>755991
Ой, не та ссылка. То что тебе нужно - ниже:

> Do not allocate objects and []byte buffers - just reuse them as much as possible.


> sync.Pool is your best friend.

311 1756015
>>755937
Почему нет? Чем в офисе джуну будет лучше? Разве что в курилке побазарить за жизнь с согребцами можно
312 1756555
>>756015
например, тем, что в офисе ты куда быстрее перестанешь быть балластом для команды разработки, т.к у тебя есть возможность получать ответы на свои тупые вопросы гораздо быстрее, чем на удаленке - коллегам будет сложнее тебя игнорить
313 1756607
>>755741
Так все и так в курсе, что go не самый быстрый из компилируемых языков. Он никогда к этому и не стремился. Суть го в простой многопоточности и GC.

Но да. Учитывая легковесность языка то, что он усирается в тестах не то, что своему прямому конкуренту (плюсам), а еще и его монструозному старшему брату - достаточно печально.
314 1756624
>>756607

я хлебушек, объясните что и как считали
315 1756708
>>755977

>А какие есть примеры GC без пауз? Я нашел только три варианта для джавы


Prod ready реализации я знаю только для джавы. GC вообще без STW упирается в то, что нужны барьеры чтения.

Их можно реализовать как в Shenandoah GC - когда ты на каждом переходе по ссылке делаешь барьер чтения.

Или как в Azul Zing - когда барьеры чтения реализуются на уровне ОС изначально у них вообще в железе их реализовывали, потом перешли на кастомные ядра линукса и x86
316 1756730
>>755977

>А какие есть примеры GC без пауз?



Object Pool. Самый ходовой паттерн времен J2ME и игр на кнопочных мобилках с парой метров оперативы.

Мусора нет вообще, потребление памяти = const, всё летает.
317 1756766
>>756555
Ну хз, у меня первая работа была удаленкой, со мной нормально общались, отвечали на вопросы в скайпе и слеке.
318 1756773
>>756607
Из языков с GC он среди самых быстрых, не?
Плюсы разве считаются прямым конкурентом го? Я думал, с плюсами конкурируют си, раст, D. По мне так закономернее противопоставлять го с джавой и сишарпом. И го не проигрывет сишарпу, они проигрывают друг другу. Го сильно уделывает сишарп по длительности пауз. Надо было в пост со ссылкой добавить пикчи и про это тоже, а то там только про преимущество сишарпа.
319 1756864
>>756766
это, скорее, исключение из правил, как мне кажется. хотя я рад буду ошибиться
320 1756866
>>756773

> Плюсы разве считаются прямым конкурентом го


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

Он не конкурент сишарпу точно, сишарп это ООП язык с кучей всего для огромных систем. На го ты огромную систему если напишешь - поседеешь.

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

Я сам пишу на нем больше 2х лет, но у меня всегда задней мыслью "нахуя?". Хз, наверн пхп макаки такие же мысли имеют.
321 1756879
>>756866
Создатели тогда уж скорее отталкивались от си, а не от плюсов.

Насчёт сравнения с шарпом, на котором пишут огромные системы — на го ведь тоже пишут, только по-другому. Дробят на микросервисы.

Не совсем понимаю, что ты имеешь в виду под отставанием в производительности. Где-то да, где-то наоборот отгоняет. Во многих бенчмарках они идут примерно рядом.
322 1757180
>>756866

>t. Петя 9б

323 1757219
https://www.youtube.com/watch?v=rmS-oWcBZaI

Что скажите? Костыль или решение проблемы?
324 1757231
анон, написал сегодня скрипт с воркером работающим через горутины, для перекидывания даты из кликхауса в аэроспайк, около 30кк записей. скоро уже 300к в сек? мимо джун.
325 1757255
>>757219
Яннп, но если с идиоматическими ембедами по файлнейму оно будет паковать всё в пщную структу, по итогу запихивая всё в один бинарник, - еще один нереальный плюс к и так охуенному мультистейжу контейнерингу
326 1757264
>>756879

> они идут примерно рядом


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

>>757180
Спасибо за экспертную оценку.
327 1757279
>>757264
Жирнеч иди срать в свой б загон
328 1757281
>>757279
Но ведь он прав, хоть и немного перегибает.
329 1757290
>>757281
Нужно быть клиническим долбаебом чтобы сравнивать го с житом
330 1757412
>>757264

>"угловатые скобочки дольше парсить, поэтому мы дадим вам дженерики с круглыми"


Ну вообще дженерики будут с квадратными скобками.

>язык медленный сам по себе


Анон, мне кажется, что ты всё-таки начинаешь слегка толстить. Сам по себе го как раз не медленный, а очень даже быстрый. Медленный он по сравнению с сишечкой, плюсами, растом. Да и то не чтобы прям сильно медленный по сравнению с ними.
331 1757470
>>736716
@
ПОПУТНО ПЕРЕДЕРГИВАЕШЬ ПРАВЫЙ
#антибугурт
332 1757578
>>757290

Вполне нормально сравнивать.

Есть нативные кресты, нативный раст, оба они обгоняют .Net Даже в самом .Net ввели режим без жита, а в юнити и вовсе делают делают специальное подмножестов языка C# со специальным компилятором для производительности.

То есть практика и факты выше говорят что Jit нихуя не рулит и это наоборот фейл, что язык, скомпилированный нативно идет вровень с языком, скомпилированным в байткод, не?
333 1757580
>>757412

>Медленный он по сравнению с сишечкой, плюсами, растом. Да и то не чтобы прям сильно медленный по сравнению с ними.



А должен быть посередине, между жирножитом и сишечкой. А он на уровне жирножита.
334 1757625
>>756879
>>756866
Пиздец, я не устаю охуевать от долбоёбов, такое ощущение, что они в каком-то другом мире живут, где названия те же, а вещи совсем другие.

Го не является полноценной заменой си и плюсам и никогда не был.
Смотри за руками:
Си (и плюсы) используется в большинстве для системного по (драйвера, ядра и так далее, а также реалтаймов, где особо важно гарантированное время отклика (АЭС какие-нибудь), потому что очередность и длительность пауз гц не особо предсказуем в микро-масштабе.
В вебе си использовали очень редко и исключительно для максимально нагруженных компонентов (типа веб-серверов или баз данных). Есть ещё Яндекс, который на нём пишет вообще всё, но они долбоёбы.
Соответственно, "конкурировать" с сями го мог бы только в этой крайне узкой нише, и то непонятно, си (а также раст, д, хаскель и тп) по определению будет удачнее для серверов и бд.

Теперь про го.
Го же позиционируется как очень простой и очень быстрый язык для веба.
У него я вижу две три ниши:
1) Оптимизация производительности у больших систем - никто не запрещает использовать ту же джаву с сисярпом, но го намного экономнее по памяти, делает намного более короткие паузы гц и в нём намного легче описывать какие-то кооперативные алгоритмы. Соответственно, ты берёшь какие-то узкие места, где прочие языки жрали слишком много или слишком долго отдавали ответ и выносишь их в сервисы на го. Их можно было бы написать и на сях, но по принципу Парето ты и так получишь 80% дополнительной производительности от гошечки, тратить в разы больше ресурсов на борьбу с UB и прочей хернёй на сях никому не надо. Собственно, на сях их и раньше не писали, просто пытались приготовить на той же джаве, тюнили гц, заводили отдельный джавовый сервис, где всё работало "на магии" и так далее.
2) Написание сложных систем - как ни странно, на го можно писать сложные системы и получается вполне юзабельно. Богатую доменную модель ты, конечно, не построишь (будто её кто-то когда-то успешно строил на больших проектах), а вот анемичную - вполне, гошное структурно-процедурное программирование изи для этого подходит. Если ты не полный говнокодер и нормально структурируешь код (вот тут я грустно вздохну и скажу, что в сообществе го есть куча денегератов-нигилистов, пришедших то ли из си, то ли откуда-то ещё, которые любят понапихать всё вместе скопом в один файл или один пакет и называют это "простотой". Конкуренты тут опять джава и сисярп, а плюсы гошечки здесь в том, что она очень простая (а ещё в философии "в го есть только один способ что-то сделать, самый прямой", а, значит, можно быстро обучать новычков, быстро разбираться в чужом коде, быстро шлёпать код и выкатывать его. Во многом спорная концепция, но я работал на больших проектах на го, и должен сказать, что работается вполне нормально, жить можно.
3) Быстрое написание прототипов сложных и нагруженных систем, всякие стартапы - раньше все на свете стартапы писались и выстреливали на php, лол. Да даже сейчас, какой-нибудь ситимобил, яндекс-еда или что-то другое имеют под капотом пехапешное легаси. Сейчас можно всё писать на го и это сразу будет быстрее и без ряда пехапешных костылей (например, для двустороннего мессаджинга) при прочих равных. Тут рядом пробегала, кстати, нода и передавала привет.

>>757470

> То есть практика и факты выше говорят что Jit нихуя не рулит и это наоборот фейл, что язык, скомпилированный нативно идет вровень с языком, скомпилированным в байткод, не?


Надо очень вдумчиво смотреть бенчмарки, в 95% случаев авторы конкретно так лажают в коде или сравнивают какую-нибудь хуйню в виде скорости ответа заглушки от встроенного сервера, что к реальности не имеет никакого отношения.
Вообще JIT должен давать (и даёт) во-первых бонус к числодробилкам, а во-вторых, за счёт компиляции на конечной машине он оптимизируется конкретно под неё, что даёт прирост, если у тебя тысячи машин и они бывают различными. Если у тебя 2.5 сервера, то да, ты можешь скомпилировать код "под них" локально и JIT тебе не поможет.

>>757264

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


Смотри ещё на потребление ресурсов, на размеры и частоту пауз.
334 1757625
>>756879
>>756866
Пиздец, я не устаю охуевать от долбоёбов, такое ощущение, что они в каком-то другом мире живут, где названия те же, а вещи совсем другие.

Го не является полноценной заменой си и плюсам и никогда не был.
Смотри за руками:
Си (и плюсы) используется в большинстве для системного по (драйвера, ядра и так далее, а также реалтаймов, где особо важно гарантированное время отклика (АЭС какие-нибудь), потому что очередность и длительность пауз гц не особо предсказуем в микро-масштабе.
В вебе си использовали очень редко и исключительно для максимально нагруженных компонентов (типа веб-серверов или баз данных). Есть ещё Яндекс, который на нём пишет вообще всё, но они долбоёбы.
Соответственно, "конкурировать" с сями го мог бы только в этой крайне узкой нише, и то непонятно, си (а также раст, д, хаскель и тп) по определению будет удачнее для серверов и бд.

Теперь про го.
Го же позиционируется как очень простой и очень быстрый язык для веба.
У него я вижу две три ниши:
1) Оптимизация производительности у больших систем - никто не запрещает использовать ту же джаву с сисярпом, но го намного экономнее по памяти, делает намного более короткие паузы гц и в нём намного легче описывать какие-то кооперативные алгоритмы. Соответственно, ты берёшь какие-то узкие места, где прочие языки жрали слишком много или слишком долго отдавали ответ и выносишь их в сервисы на го. Их можно было бы написать и на сях, но по принципу Парето ты и так получишь 80% дополнительной производительности от гошечки, тратить в разы больше ресурсов на борьбу с UB и прочей хернёй на сях никому не надо. Собственно, на сях их и раньше не писали, просто пытались приготовить на той же джаве, тюнили гц, заводили отдельный джавовый сервис, где всё работало "на магии" и так далее.
2) Написание сложных систем - как ни странно, на го можно писать сложные системы и получается вполне юзабельно. Богатую доменную модель ты, конечно, не построишь (будто её кто-то когда-то успешно строил на больших проектах), а вот анемичную - вполне, гошное структурно-процедурное программирование изи для этого подходит. Если ты не полный говнокодер и нормально структурируешь код (вот тут я грустно вздохну и скажу, что в сообществе го есть куча денегератов-нигилистов, пришедших то ли из си, то ли откуда-то ещё, которые любят понапихать всё вместе скопом в один файл или один пакет и называют это "простотой". Конкуренты тут опять джава и сисярп, а плюсы гошечки здесь в том, что она очень простая (а ещё в философии "в го есть только один способ что-то сделать, самый прямой", а, значит, можно быстро обучать новычков, быстро разбираться в чужом коде, быстро шлёпать код и выкатывать его. Во многом спорная концепция, но я работал на больших проектах на го, и должен сказать, что работается вполне нормально, жить можно.
3) Быстрое написание прототипов сложных и нагруженных систем, всякие стартапы - раньше все на свете стартапы писались и выстреливали на php, лол. Да даже сейчас, какой-нибудь ситимобил, яндекс-еда или что-то другое имеют под капотом пехапешное легаси. Сейчас можно всё писать на го и это сразу будет быстрее и без ряда пехапешных костылей (например, для двустороннего мессаджинга) при прочих равных. Тут рядом пробегала, кстати, нода и передавала привет.

>>757470

> То есть практика и факты выше говорят что Jit нихуя не рулит и это наоборот фейл, что язык, скомпилированный нативно идет вровень с языком, скомпилированным в байткод, не?


Надо очень вдумчиво смотреть бенчмарки, в 95% случаев авторы конкретно так лажают в коде или сравнивают какую-нибудь хуйню в виде скорости ответа заглушки от встроенного сервера, что к реальности не имеет никакого отношения.
Вообще JIT должен давать (и даёт) во-первых бонус к числодробилкам, а во-вторых, за счёт компиляции на конечной машине он оптимизируется конкретно под неё, что даёт прирост, если у тебя тысячи машин и они бывают различными. Если у тебя 2.5 сервера, то да, ты можешь скомпилировать код "под них" локально и JIT тебе не поможет.

>>757264

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


Смотри ещё на потребление ресурсов, на размеры и частоту пауз.
335 1757642
>>757625

>Вообще JIT должен давать



Вообще это оторванный от реальности пиздежь. В реальности (Android,Mono,Unity3D) спешно прикручивали AOT и это было самой ожидаемой фичей.

> (и даёт)



Дает -O2 в настройках компиляторов нативных языков, JIT не дает нихуя кроме оверхеда по определению.

> а во-вторых, за счёт компиляции на конечной машине он оптимизируется конкретно под неё



В реальности он там нихуя не оптимизируется, он пропукивается несколько часов от уровня днищенского дна и питона до уровня настройки -O1 в лучшем случае.

Просто на серверах уже привыкли заливать проблемы баблом и новыми стойками и от того такой манямирок.

Когда речь зашла о эндюзерском железе, то там с заливкой баблом обломинго - пользователь пошлет вас нахуй с вашими JIT тормозами и пойдет к конкурентам-байтоебам у которы прикладуха не тормозит.

Отсюда и AOT в андроиде.
336 1758496
Есть сотни тысяч товаров в xml/json. Нужно накостылять каталог с этими товарами. Норм идея использовать xml/json вместо базы данных?
337 1758501
>>758496
Скорее всего - очень глупая. Разве что тебе нужно накостылять прототип "на вчера". Хотя и в таком случае тебе может быть быстрее в разработке все это в монгу сложить.
338 1758516
>>758501

>Скорее всего - очень глупая.


Почему?

>Разве что тебе нужно накостылять прототип "на вчера".


Именно так.

>быстрее в разработке все это в монгу сложить


Быстрее ли? Дело в том, что я с субд никогда не работал.
339 1758519
>>758516

>Почему?


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

>Быстрее ли? Дело в том, что я с субд никогда не работал.


Самое время начать
340 1758536
>>758516
На уровне записать прочитать один документ ты разберёшься за полчаса
341 1758567
>>758519
>>758536
Спасибо
342 1758994
Какая лучшая книга на сегодняшний день?

>Донован, Керниган "Язык программирования Go"


Вот эта не устарела?

Опыт программирования есть два года, но на динамикоскриптодрисне (+TS). Может мне лучше какую-то другую книгу взять?
344 1758998
>>758997
Ну охуенно, а по книгам сейчас что ли не учатся?
345 1758999
>>758998

Представь себе.
347 1759013
>>758998
Не слушай этих недоумков. Просто чтобы ты понимал уровень компетенции разработчиков на Пщ. Проходил собеседование в нескольких очень крупных компаниях, которые решили пердолить свои нескучные проекты на Пщ. При общении с лидами выяснилось, что они просто не понимают что такое транзакции, модель памяти в Пщ и то что в Пщ присутствует сборщик мусора.
348 1759014
>>759013

>транзакции


Транзакции это обычные транзакции, или в го это еще како-то узкоспециализированный тремин?

мимо
349 1759020
>>759014
Транзакции внутри СУБД. Они попросту не понимали, что это такое и зачем это нужно. Я тогда просто охуел с их осведомленности и поспешил на выход, лол.
350 1759029
>>759020

>поспешил на выход


Перо тебе в жопу и попутного ветра
351 1759038
>>759029
Взлольнул с деревенского! Ты только не грусти, старина. Глядишь пройдет еще несколько десятилетий и твой Пщ допилят хотя бы до уровня развития виртуальных машин 2000-х годов, лул.
352 1759043
>>759038

>кудах-кудах

353 1759107
>>759038

>виртуальных машин


JVM-зависимый, ты? Узнал тебя по твоим шизоидным вскукорекам.
354 1759179
>>759000
Это всё пройдено уже.
Эх, ну понятно, я думал тут кто-то по книгам изучал язык.
355 1759935
>>759179
Я прочитал "Язык программирования Go" (Алан Донован, Брайан Керниган, 2016 год), в целом доволен, интересные примеры, показаны сильные стороны языка, да и не слишком затянуто.
Книге 4 года, но она все еще актуальная, т.к. расказывает про фундаментальные вещи.
356 1760463

>https://tip.golang.org/doc/go1.15#compiler



>Package unsafe's safety rules allow converting an unsafe.Pointer into uintptr when calling certain functions. Previously, in some cases, the compiler allowed multiple chained conversions (for example, syscall.Syscall(…, uintptr(uintptr(ptr)), …)). The compiler now requires exactly one conversion. Code that used multiple conversions should be updated to satisfy the safety rules.



Наконец-то они до этого дошли, теперь unsafe код не будет настолько нечетаемым говном
357 1763286
>>742478
Целых две страницы епта хватит для гоудауна
359 1764382
>>757412

> Ну вообще дженерики будут с квадратными скобками.


Это недавно только сказали, после волны батхерта у комунити.

> Сам по себе


Сам по себе - это значит как изолированный язык, без CGO и других штук. Не тупи, анонч. И нет, я не толстю.

>>757279
Я не сру. Мне го нравится и я на нем уже больше 3х лет пишу. Тыкать в явные минусы языка - это значит срать и толстить? Тебе бы над интеллектом поработать своим. Фанбойство до добра не доводит.

>>757625
Я этот высер даже читать не буду, по началу уже понятна полная некомпетентность в вопросе, про гц паузы и UB вообще молчу. Просвящайся: https://golang.org/doc/faq
360 1764402
>>764382

> Я этот высер даже читать не буду, по началу уже понятна полная некомпетентность в вопросе, про гц паузы и UB вообще молчу. Просвящайся: https://golang.org/doc/faq


Аргументированно не можешь ничего сказать, только пердеть в тред?
361 1766416
>>764382

>Сам по себе - это значит как изолированный язык


Ну так это абсолютно бессмысленно. Ок, как ты собираешься изолированно оценивать скорость языка? Это можно сделать только в сравнении с другими
362 1766680
>>766416
Ты идиот?
363 1767395
>>766680
Нет, я же не рассматриваю языки программирования как изолированные
364 1767775
>>767395
Тебе же написали, что язык без библиотек, а не в изоляции от всего мира.
365 1772360
Бамп
366 1772365
>>772360
Хуямп, судила! Ты что хочешь, чтоб я снял кеды и тебе по ебальнику дал?
367 1772371
>>772360

> бамп в тематике

368 1773260
>>736180 (OP)
Язык общего назначения, но по факту язык написания микросервисов обслуживания соединений. Все остальное скорее вопреки.
369 1773270
>>773260
Да у многих языков общего назначения де-факто одна-две области. Другой вопрос, что у пщ она скорее ближе по степени узости к 1С, чем к тем же крестам, джавашарпам и пыхоплеяде.
370 1773362
>>773260
Лолчто опять в тред приходят дауны, понабравшиеся каких-то странных идей непонятно откуда и ни месяца не отработавшие на обсуждаемом стеке.
В 7 из 10 компаний, о которых я знаю, на пщ пишут вполне себе бизнес-логику.
Зачастую это стартапы, которые написали говномонолит на пехапе и теперь распиливают его на сервисы, но иногда и с нуля пишут.
Я в последнее время работаю в финтехе, тут на го пишется дохрена всего, от обработки транзакций до расчёта всяких рейтингов.
При этом можно вспомнить авито, озон, баду, яндекс-еду (вспомнил сходу) и прочих, кто пишет логику и на го, и на чём-то ещё. Не говоря про тех, кто пишет отдельные сервисы типа рассылок нотификаций от mailru или медиасерверов vk.com, которые не бизнес-логика, а просто нагруженные функциональные сервисы, поверх которых и лежит логика.
И не вспоминая про ML, который в последнее время активно пропихивают в го кстати вот это очень спорное решение имхо
Короч на го пишут просто дохуя всего и сводить его до "языка для обслуживания соединений" можно только нихуя не разбираясь в области.
15858371783640.png353 Кб, 1280x676
371 1773746
>>773362

> В 7 из 10 компаний, о которых я знаю


> Я в последнее время работаю в финтехе


Анон, пали годные конторы, куда можно устроиться мидл гоферу, по-братски. Без палева, конечно, чтобы без всяких деанонов тебя. Я бы просто на вакансию откликнулся. Тоже в финтех хочется. Ещё умею бек на js/ts, фронт на vue/react, раньше работал с этим.
372 1774004
>>773362
Плюсую неглядя, щас много компаний прям активно полезли в го (но требуют обязательно опыта с пыхой/питоном/what-ever чтобы поддерживать легаси) и прям как язык общего назначения его используют и для бизнес-логики в том числе

>>773746
зайди в любой гошный русско-язычный канал что в телеге, что в слаке и в зависимости от, либо по тегу либо по чату зайди в job вот это откровение, правда
373 1774611
>>774004

> зайди в любой гошный русско-язычный канал что в телеге


Что-то не густо гошных каналов, не знаю, где из искать. Вот по js их тонна прямо.
374 1774652
>>774611
https://t.me/gogolang - телега
https://golang-ru.slack.com/ - слак

>>773746
Всё постоянно меняется, смотри свежие вакансии (я сейчас на европейцев работаю, мы вроде не ищем пока).
375 1774906
Иду по туториалу от https://www.golang-book.com/guides/machine_setup#windows-finished и на этом момент запнулся. Git bash какой-то, консольные команды....

тетрис - не запустился
376 1775825
>>774906
Ну так и что он тебе написал, ещё не запустился?
377 1788693
А шо, го тред умер?
378 1788697
>>788693
Мертвый тред, мертвого языка.
379 1788849
>>788693
Нечего обсуждать, пока что. Дженерики пока в драфтах, последний релиз больше технический, чем свистелкоперделковый, у новичков глупых вопросов пока нет.
380 1788948
>>788849

>у новичков глупых вопросов пока нет.


Впрочем, как и самих новичков. Это же не хайповый питон.
381 1788986
Говнокодирую петпроджект, наткнулся на свой хуевый дизайн архитектуры, по этому у меня 2 сервиса ссылаются друг на друга.
Подскажите, пожалуйста, вот это - валидный способ инициализации подобной ебанины, или я что-то не так делаю?
https://play.golang.org/p/gqiSggrHVwZ
Если это валидно, подскажите, пожалуйста, как заставить wire генерить что-то подобное?
382 1788988
>>788986
А как у тебя два сервиса ссылаются друг на друга?
383 1788990
>>788988
Сервис - это структура, которая содержит все, что ей нужно - интерфейс логера, интерфейс репозитория, поинтеры на другие сервисы. Пример того, что я пытаюсь сделать - я скинул на плейграунд
384 1788992
>>788990
Так что у тебя делают эти два сервиса, что они зависят друг от друга?
385 1789006
>>788992
На самом деле там просто логика и по хорошему нужно создать еще один сервис, который будет вызывать первые два, но у меня пока руки до этого не дошли
386 1789134
>>788948
Ой да нахуй иди, новичков хватает, а активность доски на двачах никогда не была мерилом успеха. Особенно активность на двачах.

>>788986
Это невалидно, wire скорее всего тебя пошлёт. Циклов в графе зависимостей быть не может.
387 1789237
>>789134
Почему же тогда его код собирается и выполняется?
388 1789804
>>789237
Потому что с точки зрения кода могут существовать циклические ссылки и это даже типа нормально (гц тот же умеет распознавать такие ссылки, чтобы понимать, чистить ему объект или нет).
А с точки зрения архитектуры приложения цикл в графе зависимостей - это пиздец, хотя бы по той причине, что невозможно инициализировать компоненты в валидном порядке: если ты первым инициализировал компонент (сервис) А, то он ещё невалиден, пока ты не инициализируешь и не прокинешь в него сервис Б и наоборот.
Именно поэтому и запрещены циклы импортов в пакетах, к примеру.
Правильный путь - создаешь общий компонент С и пихаешь его и в А, и в Б, тогда порядок инициализации будет валидным: С,А,Б
389 1789854
Студентота второго курса универа. Смогу ли нормально вкатиться в го и потом найти работу или он как первый продакшен язык работодателям нахуй не упал и я буду как лох сидеть без работы потом всю жизнь?
390 1789898
>>789854
Как повезет. Ищи, есть ли в конторах в твоем городе вакансии по го, и есть ли курсы по го.

Но в целом, на го вкатиться сложнее, чем на java или javascript из-за востребованности последних
391 1789907
>>789898
Есть, но мало.
В жс не хочу - фронтенд.
В джаву не хочу - конкуренция бесконечная + по итогу с грязными дедами придется сидеть в опенспейсе.
392 1790095
А есть книжечка где там на примере каких-нибудь сервисов поясняются моменты? Синтаксис почитал, хочется примеров, да что-нибудь поновее. А не всякая хуйня 2016 года.
Снимок экрана 2020-08-27 в 18.38.17.png50 Кб, 1184x388
393 1790163
394 1790169
>>790095
Какие момент?

>Синтаксис почитал, хочется примеров


Мне знания синтаксиса хватало для осиливания автогенерируемых доков

>не всякая хуйня 2016 года


Хуйня потому что 2016 года? лол
395 1790252
>>789907
Ты будешь сидеть в опенспейсе вне зависимости от языка.
396 1790506
>>789854
Если Москва и не брезгуешь офисом, то сможешь
image.png934 Кб, 1456x820
397 1790531
>>790252
Пишу на R, сижу в отдельном кабинете.
398 1790629
>>789854
Как первый язык го не подходит. Советую начать с Java, а потом уже перекатишься куда угодно. Конкуренция есть только если ты нулевой и нихуя не делаешь.
399 1791020
>>790629

>Советую начать с Java


>2020

400 1791037
>>791020
А с чего? Неужели с хипстерских ноды и питона или мёртвого шарпа?
401 1791376
>>791037
Потому что современным смузихлёбам стрёмно начинать с чего-то не хипстерского, лол.
402 1791378
>>790531
Разве что с глорихолом в стене
403 1791628
подскажите, как лучше реализовать функцию которая считала вес слова(по типа a=1 b=2 c=3..)?
404 1791641
>>791628
Вопрос с каким-то подвохом?
https://play.golang.org/p/SsXOEP65CE6
405 1791722
>>791641
нисколько
возможно, я не так объяснил
делаю кату с кодварс, в ней необходимо "вычислить" наиболее весомое слово. каждая буква в слове имеет "стоимость" по позиции в алфавите(a=1, b=2, e=5 и т.д.)
406 1791791
>>791722
Ну так берешь аскии-значение каждой буквы (интовое значение руны для латинского алфавита), вычитаешь 0х60 или со скольки там начинаются буквы и вот тебе стоимость буквы
407 1792265
>>791791
Спасибо
Вышло как-то так
https://play.golang.org/p/XOyVBOHGLEy
Не переборщил с функциями? Может что-то другое посоветуешь?
408 1792277
>>792265
А зачем тебе map?
Просто пробегай по массиву слов и находи подходящее.
409 1792304
>>792277
Почему-то сразу в голову пришёл map
https://play.golang.org/p/5cXKTCYDq1X
Как-то так?
410 1792308
>>792304
Примерно да.
Но я бы немного переделал, сделал функцию, в которую передаешь строку, а получаешь одно слово
411 1792313
>>792308
Хотел разделить, чтобы было наглядней, но, видимо увлёкся. В большЕм проекте такое было бы черевато.
Спасибо
412 1792411
>>791020

>Имплаинг, что в компуктер саенс что-то поменялось за двадцать лет и фундаментальные знания о разработке ПО не получить от топ 1 энтерпрайз языка


Ах, да. И лучше тут советов не спрашивай.
413 1794022
>>736180 (OP)
Заходят ts, java и go программисты в бар
ts программист говорит:
-getBeer<chery>();
java программист говорит:
-new Beer<chocolate>()
Go программист:
-А с каким вкусом у вас по умолчанию? Со вкусом мочи? Ну, что же поделать, давайте
414 1794171
>>794022

>cherry


>chocolate


Да лучше со вкусом мочи уж.
415 1794752
>>794171
расскажи об этом бельгийцам, варящим крики/ламбики и англичанам/ирландцам/американцам, варящим стауты
416 1796223
>>794171

>Тред про лучший в мире язык GO


>Да лучше со вкусом мочи уж.


И почему я не удивлён
417 1796274
>>794752
Мне больше ипа нравится, а не страуты.
418 1798431
Где вообще в основном юзают go? И можно ли на данном языке ряботяжить на фрилансе?
419 1798435
>>798431
В крупных компаниях для всяких хай перформанс сервисов

Никакого фриланса
420 1798680
Есть решение задачи про каналы? Попробовал написать с массивом, но сука, первый же тест не проходит
421 1799028
>>798680
Какой задачи?

>>798431
Микросервисный бекенд
422 1799132
>>798435
Крупных и средних*
Фриланс не нужен
Но вообще говорят, что го - это своего рода "новый php", ещё лет через пять может занять и нишу во фрилансе, частично.
image.png79 Кб, 750x472
423 1799730
424 1800361
>>799028

подозреваю, речь идет об отборочной задаче в школу озона по го, где сломаны тесты и ни одно решение не проходило
15973258874300.jpg66 Кб, 1072x1080
425 1800486
Тред немного забуксовал, так что расскажу свою историю вката. Увеличил свою зарплату почти в два раза с 80к до 150, ДС, получил кучу плюшек вроде ДМС, абонементов и удобный график, так что своим решением полностью доволен. Вкатывался разумеется не с нуля, сам бывший плюсовик с двумя годами опыта, который успел немного поработать на проекте с бэком из Golang микросервисов (сам в это время был фронтом и ковырял Qt). И в какой-то момент, разочаровавшись в плюсах, я решил попробовать приписать себе немного опыта Go, чтобы при смене работы кидать резюме на оба стека.
Прошел за две недели около 20 собесов, и что хочу сказать. Такое чувство, что у всех работодателей есть ровно одна методичка, из которой они берут задачки на собеседования. У некоторых блять даже функции называются одинаково, вроде test3abc(), поэтому к концу второй недели я уже настолько преисполнился, что при первом взгляде на код уже знал, где спрятан подводный камень и что нужно поправить. По этой методичке существует два типа задач:
1. Задачи на слайсы. Обычно первой дается вот такая задачка:
a := []string{"a", "b", "c"}
b := a[1:2]
b[0] = "x"
Нужно вывести значение слайса а. Почти во всех задачах подводный камень обычно один, и состоит в том что слайс b ссылается на данные слайса a, поэтому изменяя b, мы заодно приведем a к виду "axc". Нужно на зубок знать внутреннее строение слайса, знать про size и capacity, про аллокацию памяти на куче/стеке, как происходит увеличение размера и т.д. Дальше будут усложненные версии этой задачи, вроде добавления append где может произойти копирование, если размер слайса превысит capacity и т.д.
Еще могут спросить про map, но обычно ограничиваются вопросом о структуре, хэш-таблица или красно-черное дерево. И про коллизии тоже спросят.
2. Задачи на горутины. Обычно все начинается примерно с такого:
func main() {
for i := 0; i < 10; i++ {
go func() {
fmt.Println(i)
}()
}
fmt.Println("test")
}
Спросят, что выведется на консоль test и мб пару цифр, после чего main-горутина завершится, и попросят исправить. Могут попросить вывести 10 разных чисел а значит нужно передать i в качестве параметра в горутину, заставить каналы вывести числа перед "test" тут нужен WaitGroup, чтобы завершить все горутины перед его выводом, создать канал и настроить вывод через него и т.д. Большую часть собеса я проводил именно в этой секции, спрашивают жестко и практически обо всем. Нужно обязательно знать каналы (буферизированыые и нет, чем отличаются и как блокируются), библиотеку sync (спрашивали по WaitGroup, Mutex и Atomic), и паттерны вроде fan-in/out.
3. Тут обычно разнится, кто-то попросит составить SQL-запрос, кто-то даст задачку с литкода, а кто-то попросит на словах накидать простенький HTTP-сервер. Конечно, этими задачами обычно не ограничивается, будут в процессе спрашивать про алгоритмы, структуры данных, основы протоколов и веба, но обычно ограничиваются базой, по теории особо не дрючат.

Джунам конечно мой рассказ поможет слабо, но если в треде есть перебежчики с других языков, то дерзайте! Язык молодой и поэтому в вакансиях нет требований к большому формальному опыту, не придется в кровавом энтерпрайзе фиксить баги десятилетнего монолита с миллионом строк (хотя может быть придется распиливать подобный на микросервисы), платят очень хорошо мне и 180к предлагали, но я выбрал интересующее меня направление. Вакансий много, и не только в ДС, мне эйчарки предлагали удаленку практически в каждом миллионнике страны. Причем я специально интересовался: перекатываются и рубисты, и питонщики, и джависты с плюсовиками, с той же пыхи массово народ сбегает и переписывает свои стартапные монолиты, которые за 5-10 лет обросли жирком и стали буксовать. Работы полно, и людей не хватает. Лишь бы опыт разработки был, и какая-никакая база знаний.
15973258874300.jpg66 Кб, 1072x1080
425 1800486
Тред немного забуксовал, так что расскажу свою историю вката. Увеличил свою зарплату почти в два раза с 80к до 150, ДС, получил кучу плюшек вроде ДМС, абонементов и удобный график, так что своим решением полностью доволен. Вкатывался разумеется не с нуля, сам бывший плюсовик с двумя годами опыта, который успел немного поработать на проекте с бэком из Golang микросервисов (сам в это время был фронтом и ковырял Qt). И в какой-то момент, разочаровавшись в плюсах, я решил попробовать приписать себе немного опыта Go, чтобы при смене работы кидать резюме на оба стека.
Прошел за две недели около 20 собесов, и что хочу сказать. Такое чувство, что у всех работодателей есть ровно одна методичка, из которой они берут задачки на собеседования. У некоторых блять даже функции называются одинаково, вроде test3abc(), поэтому к концу второй недели я уже настолько преисполнился, что при первом взгляде на код уже знал, где спрятан подводный камень и что нужно поправить. По этой методичке существует два типа задач:
1. Задачи на слайсы. Обычно первой дается вот такая задачка:
a := []string{"a", "b", "c"}
b := a[1:2]
b[0] = "x"
Нужно вывести значение слайса а. Почти во всех задачах подводный камень обычно один, и состоит в том что слайс b ссылается на данные слайса a, поэтому изменяя b, мы заодно приведем a к виду "axc". Нужно на зубок знать внутреннее строение слайса, знать про size и capacity, про аллокацию памяти на куче/стеке, как происходит увеличение размера и т.д. Дальше будут усложненные версии этой задачи, вроде добавления append где может произойти копирование, если размер слайса превысит capacity и т.д.
Еще могут спросить про map, но обычно ограничиваются вопросом о структуре, хэш-таблица или красно-черное дерево. И про коллизии тоже спросят.
2. Задачи на горутины. Обычно все начинается примерно с такого:
func main() {
for i := 0; i < 10; i++ {
go func() {
fmt.Println(i)
}()
}
fmt.Println("test")
}
Спросят, что выведется на консоль test и мб пару цифр, после чего main-горутина завершится, и попросят исправить. Могут попросить вывести 10 разных чисел а значит нужно передать i в качестве параметра в горутину, заставить каналы вывести числа перед "test" тут нужен WaitGroup, чтобы завершить все горутины перед его выводом, создать канал и настроить вывод через него и т.д. Большую часть собеса я проводил именно в этой секции, спрашивают жестко и практически обо всем. Нужно обязательно знать каналы (буферизированыые и нет, чем отличаются и как блокируются), библиотеку sync (спрашивали по WaitGroup, Mutex и Atomic), и паттерны вроде fan-in/out.
3. Тут обычно разнится, кто-то попросит составить SQL-запрос, кто-то даст задачку с литкода, а кто-то попросит на словах накидать простенький HTTP-сервер. Конечно, этими задачами обычно не ограничивается, будут в процессе спрашивать про алгоритмы, структуры данных, основы протоколов и веба, но обычно ограничиваются базой, по теории особо не дрючат.

Джунам конечно мой рассказ поможет слабо, но если в треде есть перебежчики с других языков, то дерзайте! Язык молодой и поэтому в вакансиях нет требований к большому формальному опыту, не придется в кровавом энтерпрайзе фиксить баги десятилетнего монолита с миллионом строк (хотя может быть придется распиливать подобный на микросервисы), платят очень хорошо мне и 180к предлагали, но я выбрал интересующее меня направление. Вакансий много, и не только в ДС, мне эйчарки предлагали удаленку практически в каждом миллионнике страны. Причем я специально интересовался: перекатываются и рубисты, и питонщики, и джависты с плюсовиками, с той же пыхи массово народ сбегает и переписывает свои стартапные монолиты, которые за 5-10 лет обросли жирком и стали буксовать. Работы полно, и людей не хватает. Лишь бы опыт разработки был, и какая-никакая база знаний.
426 1800537
>>800486

>Лишь бы опыт разработки был, и какая-никакая база знаний.


В этом-то и проблема, чувак...в этом проблема...
427 1801328
>>800486
Почти все вопросы которые ты тут привел, знаю на зубок (опыт). Но при этом опыта на галере вообще нет никакого. В го вкатился месяца два назад. А в мухосрани полторы вакансии на мидла, плюс одна на трейни, которую я проебал (не успел).
Удачи анон.
428 1801650
>>800486
спасибо что поделился опытом
го джун в мухосране с 30к зп(пол года опыта)
429 1802325
>>800486
Двачирую, перекатился с js/ts/node фуллстека
430 1802544
>>800486
Недавно сам проходил собесы на го разработчика. Так что подтверждаю вышесказанное.
От себя добавлю:

1)Почти всегда спрашивают про устройство слайсов и дают задачу на них. Чаще всего это задача на append в функции
2) Обязательно спросят про мультипоточность. Частый вопрос: чем горутины отличаются от потоков процессора. Обязательно про каналы вопрос. Также популярный вопрос: как завершить выполнение горутины? Ну и обычно еще про waitgroup спрашивают.
3) Любят спрашивать про ООП в го
4) Еще популярный вопрос про то, можно ли писать асинхронно в мэп, и если нельзя, то как это исправить. Ну и в принципе про то, что такое мэп
5) Иногда спрашивают про выделение памяти на куче/стеке, при каких условиях.
6) Из смежных областей, спрашивают про redis, docker, kubernetes
431 1802827
хочу компилятор написать. какие подводные?
432 1802837
>>802827
Доберёшься до оптимизаторов и реализации библиотеки, скажешь "да ну в пизду", расхочешь.
433 1803183
>>796274
двачую этого
мимо джун гошник
434 1803268
>>802544
Ещё спрашивают про строки под капотом, иногда про юникод, руны.
Естественно, спрашивают и про бд, как и везде в бекенде.
Ну и архитектура, веб, стандартная тема.
435 1804528
>>802544
7) Как работает мапа под капотом и почему можно создать мапу с разными типами если в Го нет дженериков?
8) Стэк и хип именно в го, чем они отличаются в других яп
9) Планироващик в Го
10) Что будет если передать что-то в закрытый канал?
11) Отличия len и capacity
12) Race condition, и вообще каких правил нужно придерживаться когда пишешь конкурентную программу
13) ctx.Context
436 1804769
>>804528
Вот кстати про планировщик и гц (особенно актуальных версий) в свободном доступе очень мало инфы, все советуют читать исходники и разбираться самому.
437 1804851
>>802827
Компилятор чего? Своего языка? Если так - возьми какую-то динамикопарашу, вроде питона или тайпскрипта, по тому что если язык взлетит (этого не произойдет, скорее всего) тебе все равно нужно будет переписать компилятор на свой язык.
438 1804853
>>804528

>8) Стэк и хип именно в го, чем они отличаются в других яп


Стек как стек, хип как хип, ничем особо не отличаются, вроде.
439 1804986
440 1804992
>>804528
14) io.Reader и io.Writer
15) Worker pool
16) atomic либа
17) binary либа
18) tcp/udp/http
442 1805699
>>802544
>>804528
>>804992
Лучей добра этому анону
443 1807143
Приветствую аноны, стоит ли вкатываться в Go? На самообучение хорошо способен, хочу перейти с машиниста в метро в IT, присмотрелся к Go, вроде не сложный язык. Но вот в чем дело, я сильно на ЗП помешан, не жадный, но нравится когда платят хорошо. В метро в настоящий момент имею 95-105к чистыми, это мало для меня, хоть и никуда их не трачу.
Читал что в IT у каждого языка есть своя зарплатная вилка, скажите пожалуйста, перспективно ли вообще изучать этот язык и средние зарплаты при работе с этим языком (не секрет что в интернете много пиздежа на эту тему)
444 1807147
>>807143
Нет, не стоит. Вакансий для новичков нет, максимум - стажировки для студентов топ вузов, по этому критерию ты явно не подходишь. Везде требуют людей с опытом на других языках, так что затея сомнительная, выбирай что-то более ходовое и массовое, Java, C#, там значительно легче будет устроится. Потом сможешь перекатиться.
445 1807153
>>807147
Спасибо за ответ, я еще думаю про мобильную разработку, а именно для iOS Swift изучить и писать на нем. Читал что можно без Objective-С обойтись в iOS, в отличии от Android, где к Kotlin'у еще Java должна быть обязательна.

Стоит ли по твоему Swift изучать?
446 1807168
>>807143
>>807147
>>807153
Для хорошей зп и чтобы изи было надо во фронтенд идти
447 1807174
>>807168
Это фронтенд-то изи, где пытаешься на 50 стульях одновременно усидеть, чтобы работало и в древнем IE, и на мобилках, со всякими вебпаками и реактами-хуяктами, и всё должно быть красивенько, с анимациями и быстро? Причём стек и подходы меняются каждый год. Я пизданулся учить всё это после сравнительно лёгких крестов и ушёл в бек.

мимо
448 1807181
>>807174
Я вебпак самостоятельно ни разу не настраивал, хотя мидлом являюсь давно. IE тоже давно не поддерживал. Последние 3 года стек у меня один - реакт и его экосистема. Анимации изучить проще, чем например базы данных, очереди, связь микросервисов между собой или ещё какую-нибудь сетевую бекендерскую вещь. Всякие grpc, amqp, webrtc, многопоточность и так далее, мне кажется это сложнее анимаций
449 1807201
>>807181
Это ты о чем?

И какся зарплата в этом фронтенде?
450 1807220
>>807201
Зарплата как минимум такая же как в бекенде, но при этом по ощущениям она достигается проще и быстрее
451 1807462
>>807174
это если ты дохуя совестливый и обязательный
452 1807738
Предстоит собес на Go стажера/джуна. Что нужно знать из алгоритмов, структур данных и особенностей языка для успешного прохождения? Выше в треде видел описание вопросов с собесов, но вряд ли это релевантно для джуна.
453 1807772
>>807143

> я сильно на ЗП помешан,


> имею 95-105к чистыми


Проорал с этого нищего. Если ты "помешан" и при этом получаешь всего сотку, то что было бы, не будь ты "помешан"? Получал бы 15?
454 1807793
>>807738

>10) Что будет если передать что-то в закрытый канал?


>11) Отличия len и capacity


>12) Race condition, и вообще каких правил нужно придерживаться когда пишешь конкурентную программу


>13) ctx.Context


>3) Любят спрашивать про ООП в го


>1)Почти всегда спрашивают про устройство слайсов и дают задачу на них. Чаще всего это задача на append в функции


>5) Иногда спрашивают про выделение памяти на куче/стеке, при каких условиях.


>2) Обязательно спросят про мультипоточность. Частый вопрос: чем горутины отличаются от потоков процессора. Обязательно про каналы вопрос. Также популярный вопрос: как завершить выполнение горутины? Ну и обычно еще про waitgroup спрашивают.



Это чисто базавые знания. Алгоритмы и структуры - это в целом вопрос не про язык програмирования.
455 1807794
>>807738
Куда собес, если не секрет, анон?
456 1807797
>>807738
Про структуры данных и вообще все что нужно стажеру, описано в книгах (на выбор):
- Go in Action
- Golang для профи: Go, Цукалос М. первое издание. можешь ещё второе навернуть
457 1807858
>>807797
Одну из них? А что насчёт Донована и Кернингана?

Мимо мидл на другом стеке, хочу уйти в го
458 1807877
>>807772
Не смеши пидоран, твои условные 150 не в сильном выигрыше от его 100. Да и ту же 100ку иметь в этой стране тоже не плохо, с учетом что он не потоеблядок (судя с его слов)
459 1807881
>>807877
>>807772
>>807143
Нищуки, плиз

Мимо $4k удалёнщик на америкосов
460 1807916
>>807143

>хочу перейти с машиниста в метро в IT, присмотрелся к Go, вроде не сложный язык


Не сложный язык? Лол, язык может и не сложный, только программирование это не язык. Программирование это алгоритмы, вычисления, архитектура компьютера, операционные системы (Linux), архитектура ПО, парадигмы программирования, базы данных, различные инструменты и библиотеки, и еще много всего.

>я сильно на ЗП помешан, не жадный, но нравится когда платят хорошо. В метро в настоящий момент имею 95-105к чистыми, это мало для меня


Ты обратился не по адресу. Программирование это не деньги, это работа, профессия. Чтобы начать зарабатывать хотя бы 200к нужно пройти через многое, а ты как я вижу этого не понимаешь и скорее всего не хочешь или не сможешь сделать. Хочешь деньги, иди куда угодно, но не в программирование. Программирование это инженерия, только дурак может думать, что придет такой из ниоткуда, без бекграунда, с улицы можно сказать, и такой хоп и стал профи инженером с зарплатой 100500к/сек. Это ключевой момент.

>перспективно ли вообще изучать этот язык


Смотри ответ на первый вопрос. Программирование это не язык. Твое знание языка никому не нужно.
461 1807930
>>802827

>хочу компилятор написать. какие подводные?


Бери и пиши
462 1807933
>>807916
Мда, скучная хуета получается. Да и куда на вас не посмотри, всюду чсвшные пидоры
463 1807951
>>807933

>скучная хуета получается


Хочешь не скучно, учись на дизайнера/фото-видео монтажера/звукорежиссера/на кого-то еще.

>куда на вас не посмотри, всюду чсвшные пидоры


Лол, спешите видеть, это пишет чсвшник без математического/инженерного бэкраунда, которому подавай 300к/сек после прочтения книги C++ за 21 день. Отчасти ты прав, но как еще объяснишь суровую реальность человеку, который надел розовые очки, и думает, что любой ноунейм может за месяцок другой стать инженером, не обучаясь годами, как это в общем-то принято. За пару месяцев даже на станке работать не научишься, не говоря уже о карьерном росте и повышении зарплаты.
464 1807998
>>807793
Я и имел в виду алгоритмы и структуры данных отдельно от языка. Знания нескольких видов сортировок, обходов графов будет достаточно или нужно что-то ещё?

>>807794
Российский маркетплейс бу товаров

>>807797
Благодарю
465 1808027
>>807738
Структуры данных:
1.Linked List
2.Stack/Queue
3.Slice/Array
4.LRU Cache(хотя у джуна вряд ли будут спрашивать)
5. B-Tree
6. Графы
7. Map в Go

Алгоритмы:
1. Big O notation
2. QuickSort, MergeSort, Bubble
3. BFS, DFS, A* мб
4. И все алгоритмы поиска/сортировки в выше перечисленных структурах данных
659769587647659.jpg52 Кб, 493x494
466 1808058
>>807998
Если это Авито, то готовься к тесту из 100 вопросов за полчаса. На каждый вопрос около 10 секунд на раздумия и ответ, так что времени посмотреть в шпаргалку тупо не будет. Темы будут распределяться примерно так: алгоритмы/структуры данных/Python(хотя тебя наверно спрашивать не будут)/Go(выше по треду расписали)/ООП и паттерны/тестирование(Mock-объекты, тесткейсы, библиотека Testing)/Web (HTTP, TCP/UDP)/SQL/Git.
Сам не прошел дальше этого теста, да и слава богу. С каких это пор Авито и Додо-пиццы стали считать себя вторыми гугло-яндексами, что проводят по 3-4 собеса с верчением деревьем и решением олимпиадных задач на листочках? Слишком много понта, да и в резюме потом не похвастаешься работой в "очередная компани-нейм, мы ходим быть как FAANG". Но это для перезвоним-треда скорее нытье
467 1808147
>>808058

>С каких это пор Авито и Додо-пиццы стали считать себя вторыми гугло-яндексами, что проводят по 3-4 собеса с верчением деревьем и решением олимпиадных задач на листочках?


Лол, это школьно-университетский уровень. Да и необязательно прямо все задания ответить, главное показать, что у тебя есть хороший фундамент знаний. Или ты думаешь, что тебя должны брать на работу с зарплатой 100к+ даже без знаний/умений школьного уровня?
0fbd49b3ccfebd205649e9ab7b25ed53.jpg40 Кб, 563x400
468 1808216
Мамин эникей, выбрал Go в качестве инструмента автоматизации "скачай&&установи файлы" и подобного.
Правильный ли выбор я сделал или надо было стандартный Python для такого учить?
469 1808217
>>808147

Уже сто раз перетирали. Эта хуйня никому не нужна и ничего не показывает.
И нормальный разработчик ее уже давно не помнит.

И если реальный faang это использует что бы снизить поток кандидатов, что бы не задохнуться, то янлексы-авито-додошки с этими заданиями похожи на обезьян с очками.
470 1808219
>>808216

Норм.
На гошечке админы тоже начали потихоньку писать, либо много, язык простой, нет еботни с версиями питона и совместимостью либ.
471 1808241
>>808217

>нормальный разработчик ее уже давно не помнит


>Нормальный разработчик


>НОРМАЛЬНЫЙ


Лол. Ты неуч, а не разработчик. Если ты этого не можешь, то что ты можешь вообще? Как можно разрабатывать без умения работать с древовидными структурами данных? Почти все можно представить в виде дерева. То же дерево каталогов. Как блять ты будешь писать код? На завод!
472 1808270
473 1808300
>>808241

Ждун пришел батьку поучать...
6Extensibility.png106 Кб, 1670x1174
474 1808305
>>808270

Чего? Все,э то единственный нормальный редактор.

А кто знает, как вот в такое идею преобразить? (Это с лэндоса по ссылке) какая тема?
475 1808321
>>808305
я Атомом пользуюсь
476 1808335
>>808321

Мсье знает толк... Оно там живое хоть?
477 1808343
>>808305
тема называется night owl
478 1808349
>>808216
Идеально. Для разработки cli tools отлично подходит, и в целом удобно получить на выходе один исполнительный файл. В стандартной либе есть необходимое для работы с сетью и с ОС
479 1808352
>>808305
А как же VS Code?
480 1808357
>>808300
Не льсти себе. Какой ты батя, ты недомерок-недоучка.
481 1808358
>>808352

>А как же VS Code?


Very nice. Love it.
482 1808370
>>808358

Говно для говна.
483 1808380
>>807998
Мне похоже тоже предстоит собес у них. Ты тестовое делал? Какое направление?
484 1808382
>>807998
Мне похоже тоже предстоит собес у них. Ты тестовое делал? Какое направление?
485 1808399
>>808370
Самый крутой и мощный редактор на данный момент. Почти ничем не уступает ни одной IDE, во остальном во многом их превосходит.
486 1808400
VIM
487 1808414
>>808399
Чем он лучше голенда?

>>808370
Чем голенд лучше вскода?

Анончики, требуется независимое мнение с разных сторон. Сам я веб макак, в вскоде работаю последние два года
488 1808419
>>808414

>Чем он лучше голенда?


Легковесность, универсальность, модульность, мощь конфигурации, etc. А теперь ответь чем он хуже.
489 1808438
>>808419
Я не знаю чем они хуже и чем лучше друг друга. Я ньюфажек в го. Только на пхп и жс в вскоде пишу, голендом не пользовался, поэтому сам хочу узнать
загружено.png556 Кб, 597x329
490 1808454
>>808147
Ну так по словам экзаменующего я и ответил выше среднего только с тестами и линуксами знатно проебался, но видимо ПРОХОДНОГО БАЛЛА НЕ ХВАТИЛО, чтобы меня позвали дальше. При этом на нормальных собеседованиях, где я рассказывал о своем опыте, решал пару задачек по теме, и беседовал о тонкостях сборки мусора и конкурентного программирования, у меня все прошло успешно, и свой оффер и не один в хорошую компанию я получил.
Я могу понять FAANG, в которые прилетают тысячи резюме от индусов каждый день, и которым надо как-то фильтровать эту лавину вкатывальщиков. Но блять, АВИТО, серьезно? Даже в мейле был более щадящий отбор! У нас не кремниевая долина, Go-миддлы сейчас на хайпе и расхватываются как горячие пирожки за неделю-другую открытого резюме.
А эти долбоебы отсеивают потенциальных работников из-за недобора сраных баллов. Кого они хотят набрать такими дикими фильтрами, профессионального вкатывальщика с полугодовалым опытом хождений по собеседованиям? Это же две совершенно разных скилловых ветки, все эти вопросы тупо заучиваются, чтобы после получения работы все благополучно забыть из-за отсутствия практики.
Почитай их блог на хабре, там тоже идет коллективное охуевание в комментариях:
https://habr.com/ru/company/avito/blog/443700/
491 1808461
>>808454
Ищи не сильно известные компании, у таких нету выебонов. У меня в конторе штук 20-30 гошников, на мидла у нас собес походу проще чем на джуна в авито, вилка зп 140-180
492 1812175
>>808147

>Лол, это школьно-университетский уровень.


Эээ, нет.

>>808357
Хах, эээ, нет :)
493 1812234
>>812175
Теория графов еще в школе преподают, не говоря уже про универы, дебил.
494 1812262
>>812234
Ты москвич? Зачем ты грубишь? В моей МАОУ СОШ учителям было похуй на дисциплину в классе и в школе учились проблемные дети, некоторые из которых, успели отсидеть по малолетке и были на учете в милиции.
495 1812330
>>812262
Извини, на нервах сегодня.
496 1812800
>>812262
Но должны ли Авитояндексы ориентироваться на говнообразование в провинциях? Уровень-то реально школьный, я ещё в 9 или 10 классе решал задачи про графы Новосибирск, далеко не самая элитная школа.
Алгоритмы и структуры данных (особенно на задачах от этих двух контор) - это базовый уровень для программиста, азы CS, не знать это - примерно, как не уметь завязывать шнурки, очень странно. Да, есть обувь без шнурков, но навык-то всё равно базовый.
Да и крупняку нужно от силы 50 человек в год нанять, а собесятся реально тысячи, как ты думаешь им отсеивать людей? Очевидно, что берут лучших.
Мимо, прошёл все собесы в Авито, Яндекс и Мейл, без особых проблем. Задачи на алгоритмы там тривиальные, решается как правило рекурсией, динамическим программированием и просто внимательностью
497 1813053
>>812800
Я родился и вырос в провинциальном городе на 100к человек, который на половину построили заключенные, которые потом там и жили после отсидки.
Родители меня отдали в муниципальную школу по прописке, где надо мной издевались и били начиная с самого первого класса. На мои проблемы в учебе, родители просто не обращали внимание и предлагали "подождать, т.к. сейчас время такое". А на избиения со стороны одноклассников и оскорбление учителей - просто не давать повода и не давать сдачи.
Я всегда отказывался от предложений пройти собеседования в крупные компании, такие как Яндекс, Сбербанк, Дойче, Мейл, Касперский, Тинькофф и т.д. т.к. я понимаю, что я ничего из себя не представляю...
498 1813066
>>813053

>Я всегда отказывался от предложений пройти собеседования в крупные компании, такие как Яндекс, Сбербанк, Дойче, Мейл, Касперский, Тинькофф


И правда били, в основном по голове.
499 1813067
>>813066
Меня били кулаками в затылок, травители, которые сидели сзади. Сидишь, что-нибудь записываешь за учителем и вдруг тебе в затылок прилетает кулаком. Да так, что аж в глазах темнеет и начинает подташнивать. Учитель сразу на меня кричать начинает, что я Ванечку и Рустэма провоцирую. Так и получал по затылку целых 5 лет. Мамка говорила, чтобы я не давал сдачи и сидел тихо и терпел.
500 1813295
>>813067

> по затылку целых 5 лет. Мамка говорила, чтобы я не давал сдачи и сидел тихо и терпел.


нахуя ты тут это пишешь?
501 1813299
502 1813547
А что дают гокит/гомикро/etc относительно собственноручно написанного микросервиса?
503 1813585
ПЕРЕКАТ
ПЕРЕКАТ
ПЕРЕКАТ
>>1743955 (OP)
>>1743955 (OP)
>>1743955 (OP)
Тред утонул или удален.
Это копия, сохраненная 3 апреля 2021 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски