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

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

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

Полезные ресурсы:
- Сборник паттернов и инфы по микросервисам: https://microservices.io/
- Смотрим видео https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSw
- Обновляемый список с пакетами: https://github.com/avelino/awesome-go

Небольшая конфа треда: https://t.me/golang2ch (лул)

Прошлый тред: >>3308295 (OP)
2 3390390
>>390005 (OP)
Почему так крипово то бля

мимо пистонист веб макака прохожу a tour of go
3 3390531
в конфу не заходите, там одни хохлы
4 3390717
вкотилсо
Снимок экрана 2025-02-18 232437.png162 Кб, 1476x1235
5 3392063
Доработал истинную случайность для анона из прошлого треда. Теперь потокобезопасно.
6 3392069
Пацаны, почему на ваш го так мало вакансий? Щас миддлогребу на питоне, от более старших пацанов слышал, что учат го и пересаживаются на него, но чет я работы на го вообще не вижу, кроме девопсовых вакансий.
7 3392089
>>392063
Ну давай покормлю тролля

Во-первых, отдельная структура под передачу инта это сука мощно, нужно добавить конструктор для этого "конфига" и будет вообще заебись
Во-вторых, какая в сраку истинная случайность метод, это даже не случайность, хуйня из под коня
8 3392090
>>392089

>Во-первых, отдельная структура под передачу инта это сука мощно, нужно добавить конструктор для этого "конфига" и будет вообще заебись



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

>Во-вторых, какая в сраку истинная случайность метод, это даже не случайность, хуйня из под коня



Не для тебя написано, хам.
9 3392095
>>392063
Надо:

- выделить интерфейс Randomizer, а реализация переименовать в RandomizerImpl

- создать RandomizerFactory, куда передавать
type RandomizerSupplier func(config RandomizerConfig) Randomizer

- создать SystemRandomizer который будет использовать системную реализацию

- и конечно MockRandomizer для тестирования

- добавить комментарии к коду
// Randomizer возвращает случайное число

Вот тогда это будет нормальный Java код.
10 3392138
>>392095
А теперь напиши, как должен выглядеть нормальный Go код. Пожалуйста.
мимопроходил
11 3392297
ы
12 3392545
>>392138
Подрывом обезумевшего от корпоративной культуры фабрикодекорирующего джаваскуфа удовлетворён
13 3392556
>>392545
Да напиши, мне интересно.
Почему в го не используются всякие паттерны? Они же вроде относятся к бек-разработке В ОБЩЕМ?
Почему абстрактная фабрика, например, это плохо?
Почему Clean Code - это плохо?
я вкатун, джаву знаю на уровне лаб
14 3392563
>>392556
Все там используется.

Достаточно посмотреть на внутреннюю библиотеку, где одних только методов для конструирования Request несколько штук. И на то как в go предлагается работать с бд (никак, вот тебе интерфейс - пиши свои имплементации сам).

Среди гошников очень много фанатов минимализма и нездорового KISS'а (особенно видно по реддиту, где на просьбу посоветовать ORM или фреймворк обязательно набежит чмо и начнет вонять что ничего для го не надо кроме встроенных функций). Но их мнение не учитывается, мало ли че петухи орут.
15 3392623
Как замокать функцию вернуть результат в тестах
func getRandom() int {
return 42
}
16 3392680
ну 5 дней до перевода книжки осталось я не могу ждать уже мне плохо
17 3392892
>>392563
Двачую. Много долбоебов, для которых го - это не джава. Они и код пишут, чтобы было максимально не как в джаве. В итоге снова и снова делают кривой спринг, у каждого свой.
18 3392917
Где почитать про пакеты и как ваще код разделять на модули и тд? Везде пишут НАЗОВИ ПРОСТО В ВИДЕ САЙТА example.com/hui/pizda
19 3394021
>>392138
Пока не дошли руки дописать валидатор этого """ГСПЧ""", но по стилю могу сказать:
- не надо использовать структуру для передачи одного параметра
- NewRandomizer возврашает структуру по значению, а не ссылку на неё, тут сразу несколько проблем:
-- GetXxx() не будет обновлять previous
-- будет копироваться мьютекс, чего делать нельзя
- методы принято называть без Get/Set префиксов
- подозреваю что генератор говно и не даёт нормальный результат, но это не точно

Что надо менять:
- сделать публичный интерфейс и приватный тип. Таким образом создать генератор можно будет только с помощью метода, который будет возвращать ссылку и инициализировать поля
- создать пару New методов, с изначальным значением и без в этом случае инициализировать самим
- назвать метод Int()
- по желанию заменить мьютек на атомик или вообще убрать его
20 3394117
>>394021

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


а как же depency injection и прочая залупа? мы же условный репозиторий передаём в сервис и больше нихуя
21 3394186
>>394021
Автор той хуйни выше с New. Приятно услышать критику, спасибо.

По замечаниям есть комментарии и вопросы.

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


Идея была в том, чтобы позволить инициализировать без передачи параметров. Написал хуево, все равно пришлось передавать конфиг. Но зато previous можно не передавать.
Из альтернатив в го есть только костыль с foo(value... int), но мне он эстетически не нравится. Питоновского аналога с foo(value = 0) нет.

>NewRandomizer возврашает структуру по значению, а не ссылку на неё, тут сразу несколько проблем:


>-- GetXxx() не будет обновлять previous


>-- будет копироваться мьютекс, чего делать нельзя


Это действительно проеб. И открытие для меня, что мьютексы копировать нельзя. Насколько я понимаю ты о случае
rand1 := NewRandomizer(config)
rand2 := rand1
Но вот дальше я не очень понимаю что именно сломается. Можешь привести пример когда будет паника?

>- методы принято называть без Get/Set префиксов


Согласен. Привычка.

>Что надо менять:


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


Чтобы пофиксить потенциальные сложности с копированием мьютекса или еще что-то? В целом согласен.

>- создать пару New методов, с изначальным значением и без в этом случае инициализировать самим


Да, это я хотел делать, но было слишком лениво конфиговский New заворачивать еще раз.

>- назвать метод Int()


Согласен.

>- по желанию заменить мьютек на атомик или вообще убрать его


Покажи пример как менять на атомики. Все что я видел - выглядит как клоунада с кучей оберток, так как я не могу заблокироваться пока считываю, произвожу математику и записываю обратно. Мьютексы очевиднее работают (хоть и дороже).
21 3394186
>>394021
Автор той хуйни выше с New. Приятно услышать критику, спасибо.

По замечаниям есть комментарии и вопросы.

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


Идея была в том, чтобы позволить инициализировать без передачи параметров. Написал хуево, все равно пришлось передавать конфиг. Но зато previous можно не передавать.
Из альтернатив в го есть только костыль с foo(value... int), но мне он эстетически не нравится. Питоновского аналога с foo(value = 0) нет.

>NewRandomizer возврашает структуру по значению, а не ссылку на неё, тут сразу несколько проблем:


>-- GetXxx() не будет обновлять previous


>-- будет копироваться мьютекс, чего делать нельзя


Это действительно проеб. И открытие для меня, что мьютексы копировать нельзя. Насколько я понимаю ты о случае
rand1 := NewRandomizer(config)
rand2 := rand1
Но вот дальше я не очень понимаю что именно сломается. Можешь привести пример когда будет паника?

>- методы принято называть без Get/Set префиксов


Согласен. Привычка.

>Что надо менять:


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


Чтобы пофиксить потенциальные сложности с копированием мьютекса или еще что-то? В целом согласен.

>- создать пару New методов, с изначальным значением и без в этом случае инициализировать самим


Да, это я хотел делать, но было слишком лениво конфиговский New заворачивать еще раз.

>- назвать метод Int()


Согласен.

>- по желанию заменить мьютек на атомик или вообще убрать его


Покажи пример как менять на атомики. Все что я видел - выглядит как клоунада с кучей оберток, так как я не могу заблокироваться пока считываю, произвожу математику и записываю обратно. Мьютексы очевиднее работают (хоть и дороже).
Снимок экрана 2025-02-21 183251.png227 Кб, 1249x1571
22 3394312
>>394021

> -- GetXxx() не будет обновлять previous


С этим я не согласен, кстати. У меня в коде Pointer Receiver, все он обновляет.

Код обновил, вынес в отдельный пакет чтобы анон мог использовать.
23 3394586
>>394117

>ction и прочая залупа? мы же условный репозиторий передаём в сервис и больше нихуя


Нет, мы передаем seed в ПРНГ и не надо тут городить лишнего.

>>394186

>Идея была в том, чтобы позволить инициализировать без передачи параметров


Так все равно придется создавать RandomizerConfig, у тебя идет передача по значению, туда nil не передать даже. Да и передача nil это все равно явная передача. Ну и в целом такой API плохой. Лучше 2 метода: один без параметров - библиотека сама инициализирует значение, второй с параметром - инициализируем тем что передали.

>Но вот дальше я не очень понимаю что именно сломается. Можешь привести пример когда будет паника?


Конкретно с мьютексом паника не случится, потому что там нет встроенных проверок подозреваю что ради производительности, но вот у strings.Builder он есть и легко воспроизводится:
https://go.dev/play/p/QFxEktNx92E

>Чтобы пофиксить потенциальные сложности с копированием мьютекса или еще что-то?


Поскольку в Го нет конструкторов, то единственный способ инициализировать поля и проверить все нужные параметры - это New() метод. А если тип публичный то его всегда можно создать через new().

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


Типичный атомик выглядит очень просто. Считываем значение, вычисляем новое, пытаемся через CAS установить новое. Если старое не поменялось - успех, если поменялось - повторяем цикл.
https://go.dev/play/p/92-MRwDDPQ0

>>394312

>С этим я не согласен, кстати. У меня в коде Pointer Receiver, все он обновляет.


У тебя в коде возвращается ссылка, на структуру, так-то конечно будет работать. Вот что будет если заменить в моем примере Buffer на ✵Buffer он тоже начнет работать.
https://go.dev/play/p/6E1KHXvf3p-
image.png146 Кб, 1686x935
24 3394676
ВЫШЛАВЫШЛАВЫШЛА!
ну мужчины блять, по 40 рублей то скиньтесь чё вы это самое
25 3394694
>>394676
Ссылку хоть дай, куда скидываться.
27 3395157
Возглавляется неким "Робом Пайком", который не знает:
о существовании модели акторов с разделяемой памятью
о динамической линковке
об обобщенном программироние и о о функциях map, filter, reduce
и вообще судю по убожеству первого пейпера (и это-то после 30 лет опыта в белл лабс!) выдал какой-то полуси с корутинами и в дизайне яп не особо рубит
если бы не Дмитрий Вьюков, поднявший в свое время ГЦ голанга из той параши, где он находился, язык так и остался бы никому не нужным
Хуеватая система импорта, зашивающая в имя пакета путь в рептозитории, а если надо обратиться к защищенной репе, то скреды прописать ЯВНО В СТРОКЕ ИМПОРТА
ВНЕЗАПНО nil, переданный как значение в тип unterface{} перестает равнятся своему же значения
Язык объективно хуевый, чего стоит одна система типов, требующая постоянных подсказок в виде явного объявления типа над функцией. Вывод типов? Ленивые вычисления? Автор так и остался в Bell Labs середины 70-х.
Нет постоянного стандарта на язык, а только какие-то "отчеты".
И многое другое!
28 3395198
>>395157
Язык говно конечно, но ОП-хуй попытался приплести вообще все что можно, вместо реальных проблем.

У акторов нет нормального решения для DeadLetter queue, в телекоме может и похуй, let it fail, но в финансах и много где еще так нельзя.

Динамическая линковка не нужна 99.9% приложений. А кому нужна, есть

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

Импорт пакетов тупо делался под реалии google3 если вы понимаете о чем я.

Даже новая инкарнация ЖопоСкрипта требует обявления типов у функции. Даже душители удава, завезли к себе типизацию.

Ленивые вычисления кроме ФП нигде особо не используются. И в целом, как концепция ОК, а в реальном мире требует подготовки, чтобы правильно пользоваться.
вопрос про изучение Go и вкат 29 3395202
Пачаны, я говно нахуй, работаю в АйТишке, пушта друг устроил, сам я только нахуй сходить горазд. Но хочу измениться, хочу влететь в Go. Я не совсем верблюд, техническое образование имею, учился в эМФеТИ, даже с красным как залупа дипломом кончил. Но заебало нищенствовать, заебало быть говном.

Щас работаю формашлепом, как говорил выше, хочу стать крудойобом. Как вкатиться в GoGo и получить первую РАБотку.
30 3395228
>>395198

Да это старая паста. Оригинал про питон вообще когда-то был.
31 3395926
>>395202

>пушта друг устроил


я твой хуй трахал пидарок
мимо магистрант не могу найти РАБоту
32 3395931
>>390005 (OP)
Я не пойму, у тебя перманентно руки кривые или что? Ты перекатывать нормально умеешь вообще? Ещё программистом собрался стать...
33 3395965
>>395931
А в чем кривота?
мимо не оп
34 3395982
>>395965
Тег кривой был. Я попросил модера поправить. Спасибо ему, что оперативно поправил. В прошлых тредах ОП намерено искажал этот тег, в итоге ни один тред невозможно найти по тегу. Ещё он никогда не оставляет пост на перекат в старом треде, в итоге часть людей сидят там, а кто-то уже здесь. В общем, занимается умышленным вредительством.
35 3396273
>>3384533 →
Уже конец дня, а так никто и не выложил
36 3396534
>>396273
вы ебанутые?
ещё в 12 ночи доступно стало
37 3396537
>>396534
https://cloud.mail.ru/public/3aLd/en4QhNRPr
жрите мужики, 40р лично отдал ради вас
38 3396557
>>396537
Дай Бог тебе здоровья!
39 3396797
>>396537
Это выгодная инвестиция. Считай потом будешь в 10 тыщ раз больше получать.
40 3397060
>>396797
братиш я живу на 12к в месяц мне бы хоть что то получать и в принципе ВКАТИТЬСЯ
41 3397129
МУЖЧИНЫ помогайте
есть middleware для работы с CORS
теперь надо ещё одно делать для JWT (то что пользователь залогинился) и доставания айди из токена
что делать с несколькими middleware?
42 3397623
>>397129
То есть? Ну последовательно их включаешьв роутер. Очередь там fifo т.е какую мидлварю воткнул впервой - отработает первой.
43 3397626
>>397623
app.Use(checkJWT())
app Use(checkCORS())

pidarGroup:= app.Group("/pidar")
PidarGroup.Use(checkPidar())
44 3397699
>>397626
>>397623
ебануться, понял, благодарю! а то у меня мидлваря оборачивает мидлварю и происходит фантастика
45 3398930
Чо там, го умир что-ли? Или все вкатились и работают?
Как вам 1.24? Щупали контекст для тестов?
46 3398932
>>398930
Индекс вката на го всего 5,35%, поэтому вряд ли все вкатились. Лично я читаю книжку новую по го.
47 3398941
>>398932
И чо как там? Я Полине PL go и 100 ошибок ничего по гошке не смог осилить. Какое то все душное. Лучше второй раз sicp прорешать
48 3398942
>>398941
Полине только
49 3398959
>>398941
Я только первую главу прорабатываю. В выходные попробую побольше продвинуться. Неделя просто сложная вышла, на работе заставляли работать.
50 3399555
А тут все перекатыши с опытом работы, или есть новички?
51 3399558
>>399555
Я вкатился в го с нулем опыта4 года назад
52 3399580
>>399558
Куда? Озон/авито/вб?
Возьми меня к себе
53 3399588
>>399555
С опытом работы на заводе?
1000061913.png174 Кб, 750x1000
54 3399596
Есть 8 лет опыта с базами данных. 10% DBA, 90% data engineering. Заебала меня эта тема хранилищ, хочу вкатиться в норм языки. Яву не хочу, как будто бы слишком много джавистов. Помимо этого поднимал апишки на петухоне, строил сервисы. Много работал с airflow и etl-тулами. Работал с докерами и cicd. Немного поднимал и конфигурировал постгресы.

Хочу вкатиться в гошечку. Как думаете, у кабана будет катироваться мой опыт? Или сразу же сольют, так как почти нет опыта в гошечке?
55 3399599
>>399596
Давай к нам в Авито в DBaaS. Как раз на го пишем обвязку вокруг постгреса, инфру, сайдкары и pgbouncer
56 3399611
>>399599
Какие требования у вас? Хотя бы примерно
57 3399613
>>399611
Уметь кодить, писать тесты, знать нюансы области(это уже зависит от команды куда идешь), база по БД - дефолт требования

По процессу примерно так - устный скрининг на дауна(типа отличить tcp от udp, acid, простые вопросы по гошке), лайвкодинг(2 легко-мидловые задачи, достаточно решить на литкоде пул с тегом Авито(там 8 задач) + погуглить на гласдоре, там примеры задач есть), затем подготовиться к интервью по языку(язык выбираешь тот который лучше знаешь, можешь пройти например на питоне, даже если работать будешь на го) - на нем пара задачек и устные вопросы, затем опциональная секция сисдиза уровня спроектируй маленький кусочек авито или твиттера(это если на сеньора претендуешь), затем финалка с тимлидом(тут как раз во всю можешь покрасоваться то как ты хорошо знаешь предметную область с базами)
58 3399618
>>399613
Спасибо за развернутый ответ. Я ближе к маю уволюсь с текущего банка. Чуток почилю, параллельно обучаясь. А далее буду ходить по собесам. Пока собираю учебные материалы.

DWH отупляет немного. У нас нет не тестеров, ни техлидов, даже ПМ нет. Ходишь сам как гей-шлюха собираешь требования. Заебало невыносимо. Надо премию получить и ливать.
image.png306 Кб, 591x1280
59 3399619
>>399618
куда вкатываться, в разработку или de?
самого больше в разработку тянет, но тяжко пиздец
60 3399620
>>399619
Из DE я хочу выкатится. В DE уже 8 лет. Но на джуна тоже идти зашквар чёт. Я сейчас сенька тут. Хотет мидла го.
61 3399664
>>399618
>>399620

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

Мидла скорее всего изи получишь. Если хватит софтов и экспертизы то предложат сисдиз, там уже от результатов могут и сеньку дать.
1000061835.jpg293 Кб, 1200x1453
62 3399715
>>399664
Софты норм, пришлось за 3 года сеньки прокачать, так как выполняю ещё неформальные функции и.о. техлида команды.

Спасибо, анонче. 4 часа уже прохожу тур по го. Далее хочу переписать свой питонячий бот телеги на го. Времени мало, надо за 2 месяца начать осиливать.
63 3400174
Go это в целом язык для бекэнда?
так же как java, C#, python?
что вообще на нем пишут?
64 3400191
>>400174
Еще в системщину можно
Докер с кубером тому доказательство
65 3400225
>>400191
почему именно ты выбрал Go и первый ли это твой язык?
много где натыкаюсь на него, но также же хейт тоже вижу
66 3400240
>>400191

>Еще в системщину можно


Как Go в этом плане? Слышал, что на нем малвари пишут, но не могу понять почему именно он, а не плюсы/пидораст?
67 3400268
>>400225
на джаве не пишутся новые проекты сынок
за голенгом будущее и работа, надо только подождать
68 3400291
>>400191
Нельзя, го там только обертка для консольных команд, а ядро написано на си.
69 3400723
>>400268
Влажные фантазии. Ветерок го уже затихает, скоро он станет в один ряд с рельсами
70 3400748
>>400723

> один ряд с рельсами


ебать
я только начал С# изучать,лол
и че в РФ он больше не актуален?
а что актуально тогда?
в какой язык не плюнь, везде (этот старый, это слишком новый и так далее)
71 3400761
>>400748
Раст конечно же.
72 3400765
>>400748
Рельсы это ruby(on rails), кмк.
73 3400793
>>400765
а на c# есть проекты в РФ, ну я имею ввиду веб-разработка, бэк?
или его только за рубежом юзают
74 3400903
>>400793
Всякие аналоговнеты пишут. Гугли вакансии, лол. В ДС точно что то есть.
75 3400966
>>400723
А какой язык стоит учить, если не го?
76 3401109
>>400966
Да учите вы го если нравится. Спрос заметно растет, у меня на родной галере раньше сплошная нода была, сейчас практически все проекты уже на го идут, ищут ещё разрабов даже, рук не хватает. Вакансий тоже порядочно даже на хх.рю. Единственное, не представляю как искать первую работу, т.к джуны гошники не востребованы, хотят мидлов.
77 3401141
>>401109

>ищут ещё разрабов даже, рук не хватает


Готов пойти в к вам джуном за еду. Еда, естественно, с меня.
78 3401177
>>401109
Как будто бы вкат в го идит исключительно через вакансии, где го это смежный язык. Часто вижу - желание изучать го в ваках дата инженеров, например.

Да и в целом сейчас в ИТ не хотят вкладываться в джунов. После известных событий горизонт планирования минимальный. А джуны это инвестиция вдолгую.
79 3401186
>>401177
Звучит пиздец как грустно.
мимо джун
80 3401197
>>401141
Лучше бы накрутил опыта и устроился туда же на 300к/сек
81 3401199
>>401186
Да, для вкатунов неприятно. На джуновкую ваку конкурс в 10-20 раз больше чем на мидловскую. На сеньерскую ещё меньше.
82 3401543
>>400966
Если цель найти работу, то проще будет в питоне, пхп или джаве. За сишарп не скажу, мне кажется там мало вакансий. Го можно рассмотреть как второй язык для последующего переката. Либо искать вакансию с фирмой, которая перекатывается на го, и там в процесс внутри фирмы перекатиться.
83 3401547
>>401543
А целом удваиваю, хотел ровно то же написать, разве что от вката в пыху я бы наверно держался в 2025 подальше. С какой-нибудь джавой у разбитого корыта не останешься.
84 3401632
>>401543
>>401547
>>401199
Ладно мужики, ухожу от вас в джаватред, было приятно с вами сидеть.
Обязательно увидимся, т.к. потом перекачусь в ГОвно.
Успехов вам!
85 3401728
>>401547
Дак пхп надо выбирать не вордпресс, а нормальный фреймворк типа ларавеля или симфони.
86 3402042
>>401547
Вкат в пыху остается все еще самым профитным среди вкатов
Но до этой мысли надо дорасти
87 3403522
>>402042
дошёл до ларавел фреймворка, изучив ООП и базу PHP, задумался уйти на Go. Норм вариант? Живу в ДС-2, поэтому тут есть всякие стажировки/junior позиции, на которые попасть можно, как мне кажется. Опыта программирования нет, но как-то хочется сразу зарабатывать больше 100к, чем в пыхе сидеть год-два на 50–60к. Будет тестовое через месяц, нужно будет прорешать алгосы, GPT сказала, что вполне реально за месяц задрочить алгоритмы и изучить Go на уровне, чтобы решить задачи. А в случае чего можно просто в GPT скормить задачки и на собесе на стажировке отвечать за реальные знания о языке, которые ты получил за месяц + всякие видосы с собесами перед этим просмотреть. План говно или рабочий? Либо лучше дальше познавать ларавел?
88 3403687
>>403522

>GPT сказала, что вполне реально за месяц задрочить алгоритмы и изучить Go на уровне, чтобы решить задачи


Угар. Ты всему веришь, что угадыватель букв пишет?
89 3403688
>>403687
нет, поэтому и пришёл сюда :)
я так понял, что лучше дальше учить лару?
90 3403954
>>403522

>сразу зарабатывать больше 100к


Только с накруткой опыта

>в пыхе сидеть год-два на 50–60к


Чем плохо? Хоть программировать научишься
91 3403998
>>403954
изначально и планировал в пыхе крутить, но как будто набирают охотно даже на junior позицию сейчас на go, поэтому и задался вопросом. Например вот вакансия (свежая): https://www.aviasales.ru/about/vacancies/3909357
92 3404095
>>403998

>но как будто набирают охотно даже на junior позицию сейчас на go, поэтому и задался вопросом. Например вот вакансия (свежая): https://www.aviasales.ru/about/vacancies/3909357



Это для тех, у кого уже есть 1-2 года опыта работы на го (или в айти в принципе). Меня вот недавно выпиздили на мороз из моей конторы, сейчас отправил в авиасейлс резюме на эту вакансию. У меня 3 года опыта кста.
93 3404135
>>404095

>на мороз


Ты не из Казахстана часом?

у нас тут недавно одна компания жидко дристанула себе в штани, решив запилить маркетплейс. Непонятно зачем туда сунулись, учитывая что их мобилка (суперап с остальными продуктами) - лагучий не оптимизированный кал. Ну и по итогу на мороз выкинули продукт команды, ответственные за маркетплейс
94 3404137
>>404095
также можно накрутить и на го 1-2 опыта. сочувствую, анончик, прорвёшься. У тебя 3 года опыта в го или пхп?
в общем твой главный аргумент, что не нужно идти в го, т.к. нет реального коммерческого опыта? даже на стажировку, если задрочить перед этим алгосы как не в себя за месяц?
95 3404218
В срочном порядке перекатываюсь в го так как через 2 недели собес на го разраба (по знакомству в контору где тимлид друг детства), на предыдущей работе (реакты-хуякты + пхп/жава фуллстак макака). Основной синтаксис уже освоил, но та же проблема что была и с другими языками - в душе не ебу что делать дальше, какой пет проект мутить (для себя чтоб собрать знания во едино). С дрокером и прочей поеботой знаком. Подскажите что ли, что запросить для прокачки скиллов
96 3404220
>>404218
Не дописал. На предыдущей работе выпиздили на мороз, сократив целый отдел, последняя зп в апреле а потом нахуй шлют. Опыта 3 года, из которых 2 года чисто фронт макака и 1 год фуллстак, но скорее бэкэнд разраб. В основном хуярил всякие парсеры, делал пару микросервисов
97 3404242
>>404218

>что делать дальше, какой пет проект мутить


Да какой угодно. Напиши свой язык, например.
98 3405094
>>404137
У меня 3 года опыта в го. Уволили с текущего места работы за лоуперфоманс.

>>404137

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



У меня никаких аргументов особо и нет. Если нравится го, то подавайся на стажировки и все открытые вакансии, это самый рабочий вариант.
Но на позиции младших разрабов, джунов, где просят 1-3 года опыта как правило приходят опущи вроде меня, которых выпиздили с прошлых мест работы и вероятнее всего ты на многих вакансиях будешь проигрывать конкуренцию другим челикам с реальным опытом.
99 3405127
>>405094
Спасибо, анон. Буду думать по поводу го, а то грустно прощаться со знаниями пхп и ооп +2 месяца
100 3405636
>>405094
Как могут уволить за лоуперформанс? В трудовом законодательстве же нет такого пункта.
101 3405700
>>405636
Если напугать корзиночку юристом и судом, то он сам убежит
102 3405705
>>405636
Вот именно что никак. Но напугают статьей и вкатун с тряской побежит ПСЖ писать. И будет благодарить барина-кабана что не уволил его по статье хотя его и невозможно было так уволить.
103 3405706
>>405636
Ты прав, в ТК такого пункта нет.
Уволили так: в прошлый четверг мне мой тимлид поставил встречу 1-1, типо на поговорить. Я думал, что все ок должно быть, никаких негативных сигналов от него не поступало. К тому же я в этой конторе почти 3 года работаю. Но оказалось что нет - на встречу пришла HR и сказала что до конца марта уволят по соглашению сторон с двумя окладами. Причина увольнения - долго делал таски и мой уровень не дотягивает до уровня команды. Я обомлел и даже ничего возразить не смог. В итоге полча просидел и слушал ее 30 минут, потом поблагодарил за встречу и отключился. С сегодняшнего дня начал поиск новой работы, на старой пока еще числюсь, но скоро буду уволен.
104 3405714
>>405706
Это сокращение, а не увольнение
105 3405764
>>405714
А итог тот же: надо выходить на рынок и искать работу.
106 3406225
>>405764
Можешь зафиксировать всё и идти в суд, говорить, что вынудили подписать заявление. Но раз ты "сидел и молчал", то всё уже.
107 3406254
Аноны, я правильно понимаю что раз спрос на миддл-сеньку на го выше и конкурс ниже (если сравнивать активные резюме и вакансии на hh), то и крутануть здесь полегче? Мне рили впадлу полгода учить стеки на джаву/петухон и сидеть на 40-80к год+, хочется вместо этого крутануть 3 года в гошке и к осени начать собеситься на мидла. Какие подводные?
108 3406259
>>405706
Еком тех/самокат/купер?
109 3406279
>>406254
Уже даже самые отсталые хрюши требуют выписку из электронной трудовой и 2ндфл
110 3406350
>>406279
Пидорасы.
17381780234660.webp16 Кб, 598x480
111 3406357
>>406279
Кстате, в трудовой стэк не пишут. Можно же напиздеть что на предыдущей работе ебашил Го? Никто не проверит
112 3406396
>>406357
Можно
113 3406410
>>406279
Все хрюши просто до техсобеса требуют выписку и кидают в игнор, если не скинуть или отморозиться или левый pdf договор скинуть?
Как часто тебя или других анонов просили это делать? И есть ли вообще в этом треде крутанувшие вкатуны?
114 3406968
мы жуки-плавунцы или мужики российские ржаные гречневые?
если умирать - то умирать достойно.
я вкатываюсь в го и ищу свою первую работу без опыта работы на голенге.
никакой джавы/пыхи, сразу в то, что нравится.
115 3406971
>>406968

> в то, что нравится


Думаешь это на долго?
116 3406974
>>406971
не знаю, от джавы прям сильное отторжение, на го просто приятнее, не знаю как описать.
117 3406978
>>406974

>не знаю как описать


Инфантилизм
118 3406981
>>406978
возможно, язык всё же это просто инструмент и всё такое
но что делать? если нравится язык, то на нём и писать хочется
119 3406986
>>406978
У меня было сильное отторжение от пыхи. Перебежал в го. Не жалею ни секунды, доволен как слон.
120 3406987
>>406981

>но что делать?


Пиши на го, там разберёшься дальше
121 3407005
>>406981
Пролистал много вакансий и в целом нравится чем голангисты занимаются. Нет упоротого ООП. Я именно про ООП когда его суют когда он нахуй не нужен.

Ну и в целом протоколы, сеть, базы, контейнеры. Это все интересно и за это платят.
122 3407016
>>407005
ООП в 90% случаев не нужен. А так гошники обычно тем же бэкендом занимаются, только без дроча фреймворков.
123 3407032
>>405706

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


А ещё рассказывают, про логику у программистов.
УВОЛИТЬ по соглашению сторон - НЕЛЬЗЯ. Ты САМ соглашаешься на это. Да на тебя надавили и ты испугался, но это ты согласился. У тебя после созвона была возможность взять себя в руки и не подписывать соглашение.
124 3407114
>>407032
Я не он, но продолжать работать в коллективе где тебя уволить хотели не очень приятно
125 3408350
>>406410
вот недавний пост анона из qa, сейчас у всех так полагаю https://2ch.hk/pr/res/3336387.html#3401827 (М)
126 3408357
>>407032

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


Ок, а дальше какие действия? Требовать не 3 оклада, а 5? В чём смысл-то? Меня вот за 2 месяца предупредили + 3 оклада дать должны.
127 3408378
>>408350
Ну так а хуле хотели, волчары позорные. Нет бы залетали на джунов, ну мидл1 - максимум. Так я раза три вычпнул с собеса дебилов, которые на сеньку пришли. В резюме стек, что хоть сейчас в гугл забирай, а на банальных задачах/вопросах просто рассыпались. Жадность фраеров губит, кек.
128 3408390
>>408378

>на банальных задачах/вопросах просто рассыпались


Давай примеры. Опять душные глубины кишочков, которые только самодовольный красноглаз на собесах знает?
129 3408400
>>408390
1 сломался на джуновско/мидловской задаче с мутексами и рейс кондише. Чел не знал что нельзя передавать мутекс по значению
2. Сломался на оффсет коммите Кафки. не смог назвать даже варианты. При том, что по его словам он на прошлой работе внедрял кафку
130 3408403
>>408400

Чел ты бы еще про литературу серебряного века вопрос задал. У тебя литералли вопросы для надроченной на кишках ллмки, а не для живого человека.
131 3408407
>>408403
Ясно. Ну мне как то не хочется брать в команду людей, который будут автокомитить в кафку и проебывать сообщения или чтобы у меня в проде рейс кондише стрелял.
Ты же можешь с любым сбродом работать, меня эт не ебет
132 3408410
>>408403
Вопрос про синтаксис языка и взаимодецстви с брокером - это уже вопросы про кишки? Троллишь тупостью?
133 3408454
>>408407

> мне как то не хочется брать в команду людей


Во-первых, ты один решаешь, кого брать, а кого нет? Во-вторых, имплаинг у вас там очередь за забором.
134 3408473
>>408454
Ну если я провожу тех собес и даю свое заключение по кандидату - да, это моя ответственность и в т.ч от моего слова зависит попадет ли человек к нам в команду. Поэтому дебиков я предпочитаю зарубать, чем потом ебаться с последствиями
135 3408542
>>406279

>выписку из электронной трудовой


Как быть, если в электронной трудовой указаны места начиная с момента, когда эту электронную трудовую завели? До этого места работы указаны только в бумажной трудовой книжке..
136 3408843
люблю го.
написал пиздец какую эзотерику и вроде работает, нихуёво.
137 3408848
>>408400

> Чел не знал что нельзя передавать мутекс по значению


Так оно так не скомпилируется же, или вы на листочках пишите и в голове компилируете?
image.png38 Кб, 414x588
138 3408850
>>408848
Схуяли оно не скомпилируется?
139 3408853
>>408850
ну ладно, линтер отловит, всё равно на прекоммите должен линтер стоять который не пропустит такое
140 3409132
>>408850
Мб тогда использовать не структуру мьютекса, а соответствующий интерфейс Locker?
141 3409243
>>407114

>Я не он, но продолжать работать в коллективе где тебя уволить хотели не очень приятно


>>408357

>Ок, а дальше какие действия? Требовать не 3 оклада, а 5? В чём смысл-то? Меня вот за 2 месяца предупредили + 3 оклада дать должны.


Смысл в том, что у тебя больше пространство для маневра. Хрюша всегда начинает с самого минимума, хорошие условия надо выбивать. Ты можешь:
1. Потребовать больше.
2. Договориться о том что ты будешь искать новую работу, а пока ищешь будешь работать/числиться на текущей.
3. Договориться о переходе в другую команду если конечно есть куда переходить.
В любом случае начав торговаться ты получишь больше, чем просто согласившись.

У нас так хотели чувака уволить, но он упорно отказывался. В итоге с ним договорились, что он год ничего не делает, не ходит в офис, а просто ищет работу. Найдет раньше - может уволиться раньше.
142 3409319
соевые братья вместе мы сила.
143 3409632
>>408850
Нахуй ты вообще мьютекс внутрь другой функции передаешь? Там где создал мьютекс - там и работай.
144 3409669
>>409632
У тебя мутекс может лежать внутри структуры, лол
145 3409750
А вы в курсе, что рекрутеры палят, что вы опыт крутите?
Хрюши давно сидят в ЦРМ-ках, которые собирают базу резюме, и в этой базе видно историю изменения резюме. А так же "отзывы" и дополнительные фильтры, чтобы автоматом отказывать.

talantix.ru, https://huntflow.ru/ да много их...

https://www.youtube.com/watch?v=b5tDa56GDmw&list=WL&index=12&ab_channel=%D0%90%D0%BD%D1%82%D0%BE%D0%BD%D0%9D%D0%B0%D0%B7%D0%B0%D1%80%D0%BE%D0%B2I%D0%9E%D1%81%D0%BE%D0%B7%D0%BD%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F%D0%9C%D0%B5%D1%80%D0%BA%D0%B0%D0%BD%D1%82%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C
146 3409767
>>409669
Может конечно, но нахуй его туда класть? Если ты намекаешь что кому-то захочется делать свой errgroup или еще какую-то залупу - то это его задача возвращать ссылку из функции New(). А создавать структуру с мутексом? Нахуя
147 3409835
>>409767

>А создавать структуру с мутексом? Нахуя


Например чтобы синхронизировать доступ к методам структуры.
148 3409867
>>409632
Ты конченный? Анон утверждал, что код не скомпилируется. Я доказал обратное. Ко мне какие вопросы? Мьютексами я умею пользоваться.
149 3410026
>>409767
Ну например у тебя в структуре есть марка из ты с одним экземпляром из разных горутин хочешь ее мутировать
150 3410743
Можно ли на го написать сайт?
151 3410745
>>410743
Можно, разрешаю
152 3410756
>>410745
А как скомпилировать код, чтобы он загружался в браузер?
153 3410834
прохожу курс на степике и что-то начинаю душиться, аноны, кто вкатился/вкатывается, подскажите, вы по каким книгам/курсам получаете знания? Офк нужно полученные знания закреплять практикой, мне просто интересно, что по вашему мнение хидден гем/база, которую скипать нельзя, она очень быстро даёт основы и понимание логики языка? Tour of Go, а потом делать пет-проект сразу? А то решая задачки со степика у меня складывается чувство, что я двигаюсь очень медленно.
154 3410873
>>410834
Меня вот всегда удивляет, что изучая какие-нибудь циклы и массивы, люди думают, что они уже изучают язык и скоро смогут устроится на работу. Нет! Это как первоклассник изучает азбуку и до написания сочинения на выпускном экзамене ему ещё очень далеко. Нужно с умеренностью пройти все эти этапы, не перескакивая. Потом эти пробелы аукнутся и придётся всё равно начинать всё заново.
155 3410905
>>410756
GOOS=js GOARCH=wasm go build ...
156 3411017
А с фронтендов в го успешно перекатывался кто-нибудь? После 4 лет формошлепства не могу уже на жс/тс смотреть и все что с этим связано. Задумался о бэке, а бэк по состоянию на 2к25 это в осноаном го.
157 3411058
>>410834
Нужно чередовать теорию и практику. Прошел тур, теперь попробуй написать маленькую программку, например консольную утилиту, которая на вход получает аргумент ID треда на дваче и распечатывает в консоль последний пост с треда.
158 3411061
>>411017

>бэк по состоянию на 2к25 это в осноаном го


У тебя ошибка в слове PHP
159 3411108
>>410873
я перекатываюсь из пыхи, в которой дошёл до фреймворка Ларавел, поэтому и уточняю у знающих, спасибо
160 3411110
>>411058
понял, спасибо, анон
161 3411218
>>410834
я тоже прохожу и задания максимально впадлу делать
первые 2 понравились, но потом душка началась
3е где тесты нужны были через силу пришлось делать
162 3412130
>>411017
Тс кстати на гошке переписали
163 3412161
>>412130
так переписали не для того, чтобы на голенге писать, дурачек
164 3412189
>>412130
А Deno сначала писали на гошке, но потом переписали на ржавчину. Тогда просто ещё зига не было.
165 3412191
>>411218
Я вообще на ваши двачи заглянул, потому что влом уже читать всё это.
166 3412192
>>411017
Недавно смотрел вакухи, на го теперь ищут от 3-х лет опыта.
17422193018780.jpg260 Кб, 595x578
167 3412613
>>411017
Я бекендер без опыта в го, и меня пока только нахер посылают. А найти работу без знания баз данных, архитектуры, очередей, паттернов, алгосов совсем тяжко будет имхо.

Не думал просто перейти в более интересный "фронтенд"? Например в IOS\Android разработку? Тоже кнопочки красить но там есть и более интересные задачи.

А вообще скажу тебе как человек однажды перекатившийся с одной хуйни на другую - через 5 лет тебя новая хуйня точно так же заебет как и старая. Вот и думай стоит оно тех усилий...
168 3412671
>>412613

> Не думал просто перейти в более интересный "фронтенд"? Например в IOS\Android разработку? Тоже кнопочки красить но там есть и более интересные задачи.


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

мимо проходил
169 3412718
>>412613

> через 5 лет тебя новая хуйня точно так же заебет как и старая. Вот и думай стоит оно тех усилий...


Зачем вообще жить тогда, лол? Ведь всё в итоге надоест и умрём!
170 3412850
А че, в языке нет способа скопировать массив в одну строчку?
171 3412873
>>412850
Гуглить не пробовал? copy(x, y)
172 3412891
Аноны миддл+, сеньки, поделитесь с какими задачами сталкиваетесь на го
173 3412906
>>412891
Добавить параметр в джсон
Сделать запрос в другой микросервис
Высрать событие в кафку
Дописать иф
По идее все
17422338624832.jpg181 Кб, 639x680
174 3412960
>>411017
Еще вариант вспомнил - видел пару вакансий, где требовался фронтендер со знанием web3 и блокчейна. Там и платят в крипте и опыт твой будет релевантный и что то новое попробуешь без долгого мозгоебства с перекатом.
175 3413059
>>412891
Написать пробер.
image.png602 Кб, 2638x1604
176 3413624
>>390005 (OP)
В этом треде есть опытные аноны? Подскажите пожалуйста вот этот вот набор кала из пикрила работает в Go? Вроде особо и не должен работать, так как в Go классов нет, конструкторов нет, наследования нет и инкапсуляции тоже как-таковой нет, а с другой кто мешает сделать свою реализацию этих паттернов?
177 3413633
>>413624
Спокойно работает, где то на гх есть репозиторий с реализациями всех этих паттернов
178 3413662
>>413624
Паттерны как раз придумали по той причине что языки были недостаточно гибкие. Для Го паттерны намного актуальнее чем для Питона например. Паттерны подсказывают как сдлеать код более гибким.
179 3413753
>>412906

>Вроде все


А как же "сходить на очередную встречу" ?
180 3413774
>>412613

>Не думал просто перейти в более интересный "фронтенд"? Например в IOS\Android разработку?


Чел, это хуйня все. Интересный фронтенд - это d-apps с web3 solidity/rust, но в тот же го и то проще попасть чем туда.
181 3413775
>>412960
Да вот про енто
182 3413784
>>413774

> но в тот же го и то проще попасть чем туда.


А в чем сложность, если не секрет?
мимо 4 года в крипте
183 3413803
>>413784
Везде требуют сеньеров. Причем сеньеров именно в разработке крипты и ее стеке, а не залетных.
184 3413952
>>413624
Мне кажется половина паттернов нахуй не нужна. А другая половина супер полезна
17328972640050.png58 Кб, 600x600
185 3413955
>>413624
>>413633
Вы чё угараете? Какие паттерны в го? Это язык для велосипедостроения. Хотите паттерны пиздуйте в пыху или джаву.
186 3414068
>>412161
А для чего? Я думал, на го и расте для этого и пишут...
187 3414069
>>412891

>с какими задачами сталкиваетесь на го


Парсить XML.
188 3414076
>>413952
Какие можешь назвать нужными?
189 3414224
>>414076
Adapter, Decorator, Observer, Iterator, Strategy
190 3414441
>>414224

>Adapter, Decorator


Одно и то же. Требуется для работы с легаси из 1995 года, в го таких проблем нет.

>Observer


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

>Iterator


Твой код воняет дотнетом и кари.

>Strategy


Говно без задач. В 2025 году пишут сервисы с дтошками.
191 3414469
>>414441

>Твой код воняет дотнетом и кари.


То ли дело

>Seq[V any] func(yield func(V) bool)


более уебанского способа сделать итератор не придумать
192 3414565
>>414469
Зачем вообще делать итератор? Чтобы что? Отправлять в бд запросы в цикле йес саар? У тебя в 99.9% случаев будет проход по массиву через индекс, нахуя оборачивать индекс в IAbstractProxyDecoratorIteratorBean?
193 3414568
>>414565

>Зачем вообще делать итератор?


Например чтобы итерироваться по sync.Map
194 3414595
>>414568
Для кого придумали вот это?
for k, v := range map
195 3415001
>>414595

>Для кого придумали вот это?


>for k, v := range map


Ты программировать то умеешь?
196 3415052
>>415001
Че он не так сказал?
Стикер512x512
197 3415105
>>415052

>Зачем вообще делать итератор?


>Например чтобы итерироваться по sync.Map


>Код с обычной map

198 3415192
я обязательно найду работу на golang без опыта работы
я справлюсь ведь нет предела человеческой живучести
image.png22 Кб, 801x213
199 3415194
Насколько я хуйню написал и почему?
мимо первый пет проект
200 3415293
>>415194
Кто вообще добровольно пишет на этом языке? Какой-то внебрачны сын питона и сишарпа.
мимокрокодил
201 3415312
>>415192
на что конкретно ты готов ради работы го разработчиком?
202 3415315
>>415194
по такому кусочку не понятно, нужно в целом на проект смотреть, может там слои архитектуры нарушены, может солид.
мимо нихуя не понимаю в го но очень хочу разобраться
203 3415327
>>415194
Анон выше прав, очень всратый язык.
Где и как у тебя происходит работа с транзакциями?
204 3415335
Да хуй знает, очень понятный синтаксис. Иногда приходится по работе на педерасте писать, вот это боль ебаная.
205 3415345
>>415335
Раст придумали в дурке, это литерали творчество душевнобольных пидорасов в чулках. На фоне раста любой язык будет простым и понятным.
На сишарпе тот же код будет выглядеть лучше без мусора с err!=nil и всратых сигнатур функций. Жаль, что сишарп умер на бекенде. Приходится перекатываться на го, если не хочешь нырять в фулстек парашу.
206 3415360
>>415293
Все нормальные люди пишут, кому фабрики, адаптеры, фреймворки на каждый пук остоебенили.
207 3415399
>>415194
Как правильно сказали кусок слишком маленький, но на что бы я обратил внимание:
- []ProjectResponseDTO возвращается по значению, значит будет много копирований памяти. Для больших объектов надо возвращать ссылки
- ошибка слишком общая, неплохо бы или создать специальный тип чтобы потом можно было вернуть правильный 5XX код
- у тебя в цикле вызывается dto.UserToResponseDTO(), по идее owner же один и тот же, такое надо выносить из цикла
- ProjectRepo - публичный, надо сделать приватным
- если размер известен сразу и фиксирован, то не надо использовать append(), просто make(type, size) и slice = XXX
208 3415471
>>412891
Ну тут иб надо бы
>>415399

> - []ProjectResponseDTO возвращается по значению, значит будет много копирований памяти


Слайсы - это же всегда ссылка, не?
209 3415508
>>415471

>Слайсы - это же всегда ссылка, не?


Мне кажется он имел в виду []*ProjectResponseDTO
210 3415510
>>415471

>Слайсы - это же всегда ссылка, не?


Сам слайс да, но внутри массива будет лежать значение. И если ты будешь читать или писать в слайс то у тебя ДТО целиком будет копироваться.
17080190863540.jpg696 Кб, 1080x1080
211 3415513
Что добавить в пет-проект который я буду показывать компаниям, чтобы они прям офигели, что к ним такой джун (свитчер) пришел?

У меня есть микросервис, у которого уже есть канкаренси, рест апи, грпк, вебсокет, бд, логирование. Что еще в него можно впихнуть, что часто используется на Го проектах? Может что то набирает популярность, либа или очередь там...
212 3415517
>>415513
Наверни очередей
213 3415520
>>415513

>У меня есть микросервис, у которого уже есть канкаренси, рест апи, грпк, вебсокет, бд, логирование. Что еще в него можно впихнуть, что часто используется на Го проектах? Может что то набирает популярность, либа или очередь там...


Бинго по базворд, а проект поди говно.
214 3415525
>>415513

>чтобы они прям офигели


Чувак... Это какое-то "вау мышление". Я знаю, что можно сделать, но это название 99.999% людям ничё не скажет. Предположим, можно сделать xbrl-парсер, он будет разбирать семантически финансовые отчёты. Но чтобы это ВЫЗВАЛО ВАУ, все ахуели, попадали, заопладировали - это уже какая-то показуха. Это делать что-то, чтобы кому-то понравиться, а не ради того чтобы облегчить жизнь или заработать на этом деньги. То есть, я например заебусь вручную разбирать 50,000 финансовых документов и для этого создаю парсер. В этот момент мне обычно пахую что о моём проекте подумают люди. А ты делаешь ради какой-то тупой цели "кого-то впечатлить".
215 3415572
>>415513
Никому твой код не нужен. За идемпотентность и распределенные транзакции можно было бы поговорить с сеньками, но они даже смотреть не будут, им неинтересно. Может быть, какой-то чмоня мидл с 2 годами опыта доебется до названия переменных, но ты сам понимаешь уровень экспертизы у такого ревьюера. Ты напрасно пытаешься кого-то впечатлить, всем похуй.
216 3415586
>>415572

>идемпотентность и распределенные транзакции


Вот это ты хорошо придумал. Бахну второй микросервис и реализую между ними транцакцию с откатом в случае фейла.

Заодно можно и очередь между сервисами вкорячить... что обычно между гошными сервисами используют? Kafka или какой-нибудь NSQ?

>Никому твой код не нужен.


Мне самому нужен, чтобы претендовать на работу нужно сначала уметь ее выполнять.
217 3415783
>>415192
Я тоже вкачусь и найду, я же не лох какой-то
218 3415998
>>415513
Если хочешь потренироваться, можешь добавить мониторинги в прометее (наклепать метрик и ебануть алертов к себе в телегу, допустим), трейсинг на егере, поднять пресловутую кафку и покидаться калом через нее.
В целом на этом базовые технологии для гошного проекта кончаются. Не то чтобы кто-то будет смотреть твой код, но хоть сам будешь знать, что так можно.
219 3416212
Так блять, почему в go до сих пор не завезли оператора/функций для nil-safe nested object traversal?

Вы совсем ебанутые? 2к25 на дворе, а вы все еще на nil руками проверяете я с вас хуею))0
220 3416366
>>416212
Это не говей.
221 3416532
Раньше плевался от го, что он какой-то не такой. Но недавно, решив дать второй шанс гошке, почитал примеры по работе с gin.
Я вам отвечаю, такой кайф с разработкой бэкенда никогда не встречал. Это лучший язык просто. Как же я счастлив, что решил сделать апишку на гин, а не кторе.
Спасибо го комьюнити, вы открыли мне глаза и теперь я вижу прелести вашего языка
222 3416584
>>416532
Контроллеры на гине пишутся так же, как на ноде или дотнете. Все пиздят удачные идеи друг у друга, все фреймворки одинаковые. Другой вопрос, что нода - это фулстек, дотнет - фулстек для дебилов, с соответствующим уровнем проектов и зарплат. Если хочется писать только бэк, не касаясь фронта пятиметровой палкой - го единственный выбор.
sage 223 3416585
>>416532

> что решил сделать апишку на гин, а не кторе.


тут таких не любят, надо писать на net/http
224 3416611
>>416584
Да это понятно, просто удобная вещь, я просто в шоке. Я сам по себе не бэкендер, просто апишку надо для приложения написать. Учить спринг или асп.нет под такие запросы - ну херня идея. Гошка просто как нож по маслу зашла.

>>416585
Я пока не копал в эту сторону,сразу с примеров гина решил. Пока-что очень нравится, так что буду изучать net/http тоже
20250326192629.jpg3,6 Мб, 4032x3024
225 3416808
Анон расскажи про свой путь к Golang
(мой был достаточно тернистым)
226 3416827
>>416808
Вкатился, неделю писал на крестах, 2 мясяца на питоне и сейчас пишу на голанг.
227 3416837
>>416808
Ебать книжка по питону жирная, о чем там столько текста?
А так вкатывался в вузе, рандомно учил си, питон, кресты и жабу, на работу взяли гофером, вот и весь вкат.
228 3416840
>>416837

>Ебать книжка по питону жирная, о чем там столько текста?


Лол в питоне только про ООП можно больше написать чем про весь Го.
229 3417049
>>416840

>Лол в питоне только про ООП можно больше написать чем про весь Го


Ты реально считаешь это плюсом ?
230 3417077
>>417049
я думаю, что не бывает одних плюсов или одних минусов.
Когда в языке куча возможностей это хорошо, когда ты пишешь повторно используемую библиотеку (например ОРМ). Но плохо когда пытаешься разобраться в чужом говнокоде.
231 3417128
>>415513

>У меня есть микросервис, у которого уже есть канкаренси, рест апи, грпк, вебсокет, бд, логирование.


Охуенно, только забыл сказать что именно твой микросервис делает...
232 3417155
>>417128
В /dev/null пишет, а что?
233 3417188
>>417128
неважно что он делает, мне нужны широко применяемые инструменты.
234 3417189
>>415513

>канкаренси


Ебать звучит. Ты же по факту просто go перед фанк коллом воткнул.
235 3417207
>>417189
воткнул твой батя твоей мамке и получился ты, а я имплементировал канкаренси для ускорения ио баунд операций!
236 3417212
>>417207
И я получился сеньром-помидором. Потому что наши отцы красноглазики знали что и зачем они втыкают. А вы, поколение инфантильных пидарасов, только и способны что речи сладкие из себя изрыгать и у гопоты код копипиздить. Но на первой же заебной таске - сломаетесь и будете плакать
Снимок экрана 2025-03-27 134017.png331 Кб, 1992x1544
237 3417243
>>417212
хуя у тебя самомнение)) ну ничего, когда нибудь на заводе встретятся два Петровича и один тихо выругается на станок: "у сука чего эта гайка сюда не деплоится!" я улыбнусь про себя и пойму, что это ты - мой брат, айтишник.
238 3417257
>>417243
Ну мы же пойдем в подсобку жахаться?
1743091060925.jpeg159 Кб, 2048x1152
239 3417491
Есть тут кто? Или смотри онлайн хотя бы?
240 3417556
>>417491
О Кейт Бекинстейл тоже в гошечку вкатывается^^
дай хоть ссыль
1743099705544.jpeg227 Кб, 2048x1152
242 3417625
Ваши будущие наниматели
1743101741446.jpeg158 Кб, 2048x1152
243 3417645
Решите?!
244 3417672
>>417645
Поцесс с таймером + 1 атомик.
245 3417683
>>417491
Хорошая баба. Кто такая??
246 3417688
>>417683
Хз, кто то из зрителей
247 3417805
>>417645
В чем проблема? Один поток раздает токены. Для каждого ключа храним в хеш-таблице структуру (сколько токенов запросили, флаг блокировки). Блокировку делаем через атомик + спинлок, на таком коротком промежутке нет смысла уходить в мьютексы. По текущему времени вычисляем, сколько было начислено токенов всего, минус сколько запросили - итого сколько доступно сейчас. Поебаться с отладкой придется, конечно, это же многопоточка, но ничего охуительно сложного тут нет.
248 3417832
>>417672
>>417805
Что за атомики? Почему про это не написано в книжке Донована и Кернигана?
249 3417833
>>417645
На джаве для этого либа есть...
1743141534995.jpeg163 Кб, 2048x1152
250 3417846
Тогда решите это!
251 3417855
>>417645
Возьму синк рейт.
>>417846
Возьму еррор группу.

Как тебе такое решение?
252 3417876
>>417855
>>417805

Вы код прикладывайте.
253 3417904
Подходит ли го для написания игор?
254 3417909
>>417904
да, осталось подключить и и р
255 3417910
>>417832
Примитив синхронизации.
256 3417932
>>417904
Смотря что ты играми называешь. У raylib есть биндинги для всего, даже для php. Можешь свою товер дефенс на голенге написать.
257 3417936
>>417910
Я так и знал, что Донован и Кериган схалтурили, когда писали книгу. Я её прочитал от корки до корки и осталось послевкусие, что меня обманули. Они и 10% языка наверно не описали.
258 3417963
>>417936
Хуй знает, я вообще не го разраб. По-моему это больше база по основам программирования.
image.png219 Кб, 941x609
259 3417971
Блять, с новой мапой разобрался а вот держать сука микрофон к своим годам нахуй не научился, ббуббу пфпфпп чота там новая мапа пук среньк бббуббу пфпфпф....
260 3417977
>>417971
Всё ещё лучше, чем то, что сделал в жизни ты.
261 3418010
>>417977
Владимир Марунин разлогинтесь пожалуйста
1743155782840.jpeg181 Кб, 2048x1152
262 3418014
Когда нибудь в этом треде все станут такими же успешными как этот
263 3418028
>>417963
Это не база программирования. Они описали только синтаксис языка, но забыли, что у языка ещё есть стандартная библиотека. А может и не забыли, а подумали, что и так сойдёт.
Это вам не сишарп, где полностью описывают всю стандартную библиотеку, фреймворки и кишочки CLR.
264 3418038
>>418014
9 лет в ИТ, да что он вообще знать может? Такие дебилы потом всю почту засирают своим: «пук, среньк, наша ошибка страшная в логах, гуглить не умеем» :(
265 3418039
>>418010
Ну ни диванонь, ну ты чего...
266 3418041
>>417846
У меня такое однажды на джуна спрашивали пару лет назад. Я обосрался и в итоге меня не взяли. Пошел работать в помойное легаси на пхп, откуда меня сейчас сокращают потому что у кабана деньги закончились. Ебало имаджинировали?
1000064708.jpg1,6 Мб, 4096x2304
267 3418046
Найдите проблемы в коде
268 3418049
Лол, кек. Сейчас в вакансиях Сбера увидел, что они ищут миддл+ и сенек под написание ActiveDirectory с нуля. Каковы шансы на успех затеи?
269 3418061
>>418041
Я вот на пхп+го уже несколько лет работаю, сейчас перехожу на почти чистое го. И не уверен, что даже через год РАБоты смогу решать все эти задачки. Хотя хз, тут внутренние экзамены на грейды тоже есть.
Я к тому, что в бигтехах обычно просто пердолишь джейсончики в кафку, а не вот это всё.

>>418049
Так а какая разница на успех, лишь бы платили и дунасить можно было.
1743162588093.jpeg322 Кб, 1152x2048
270 3418105
Зачем этому гошнику два портфеля?
17431625910680-jpg-Изображение-JPEG-1152-×-2048-пикселей-—-Масштабированное-46-.png718 Кб, 744x682
271 3418118
>>418105
он просто решил двачеров из рюкзакотредов потролить
272 3418257
>>418046
Сам этот код и есть проблема
273 3418432
>>415510

>И если ты будешь читать или писать


Можно даже наверное буферок сделать
274 3418435
>>401177

>Как будто бы вкат в го идит исключительно через вакансии


Я вкатился, потому что лид принес сказал "вот на го теперь пишем". В итоге "гофер" который го не знает
image.png202 Кб, 298x569
275 3418488
>>418118
Не надо привыкать к воде, она поработит вас и вы будете по ней тосковать!
276 3418492
>>418488
Там во втором кармане тоже была вода.

>>418118
На этом МТС-митапе вообще нездоровая любовь к РЮКЗАКАМ.
277 3418632
уважаемые GOсподины, вкатываюсь к вам в тред!
Студент, начинаю учить этот язык. По факту будет моим первым ЯП. Подкиньте пожалуйста пару советов.
Также посоветуйте годные каналы по GO помимо justforfunc.
278 3418642
>>418632

> уважаемые GOвноеды, вкатываюсь к вам в кал!


> Копрофил, начинаю пробовать это говно. По факту будет моим первым копро. Подкиньте пожалуйста пару советов.


> Также посоветуйте годные каналы по копро помимо fecesforfun.

279 3418662
>>418632
Какой у тебя план по поиску работы?
Го используют в хайлоад проектах поэтому новичков в него не берут, сейчас даже с другого бэкенд языка сложно вкатиться, а ты вообще без опыта программирования хочешь сразу в Го.
280 3418667
>>418662
Хочу тоже вкатиться, но я дата инженер.

Опыт с высокозагруженными хранилищами есть. Оцените мои шансы на успех
281 3418673
>>418667
Вкатиться куда, в бэк? Тогда шансы очень средние, ДЕ и бэк слабо связаны, если ты не сам писал весь тулинг (а ты не писал, ибо в соло такое никто не напишет).
282 3418678
>>418673
Меня ДЕ подзаебал. Сейчас получил премию и думаю, отдохнуть поучить Гошечку, проходить собесы напиздев что есть опыт в го. В DE всякие свистелки и переделки писал. Типа всякие загрузчики данных на питоне. Тулы для оркестрации. Генерация дагов в airflow. Всякие дополнения к dbt на jinja+python. Ну и две апишки поднял на fast api.

Я смогу вкатиться в полноценный бек?
283 3418688
>>418678

>Я смогу вкатиться в полноценный бек?


Чтобы в голодных ирах участвовать?
284 3418690
>>418688
Все так плохо? Рынок работодателя?
285 3418692
>>418690
Нет, конечно, все заебись. Рынок вкатунов пиздунов.
286 3418693
>>418692
Ну шо ты злой такой. Сегодня суббота. Потрогай траву сходи. Погуляй в парке.
287 3418701
>>418678

>всякие загрузчики данных на питоне. Тулы для оркестрации. Генерация дагов в airflow. Всякие дополнения к dbt на jinja+python. Ну и две апишки поднял на fast api


Это стандартные вещи для ДЕ, которые с бэком слабо связаны. Вон, выше фотки с конфы кидали. Сможешь с ходу такие задачи решить?
288 3418709
>>418701
Лол, это я и кидал.
289 3418712
>>418709
Круто. А решить-то сможешь?
290 3418721
>>418712
Сейчас очень хуева смогу про урлы. Но я научусь!
291 3418723
>>418662
Какого-то конкретного плана пока нет. Т.к. не работал ни с чем - без понятия куда в итоге начну развиваться.
Го кажется самым приятным языком, поэтому решил начать с него. Какой смысл учить годик-два питончик или JS, искать работу будучи одным из миллионов джунов?
В го мб конкуренция поменьше + кажется язык перспективным. Нравится его читаемость.
Вот и надеюсь, что его изучение может запустить мне какую-никскую карьеру.
Но да, именно факт что это первый язык - гемного напрягает. Ну хоть не раст...
292 3418816
>>418723
Тебе нужно иметь что-то больше чем го, если ты хочешь катиться дальше. Питончик был бы хорошим вариантом вдовесок.
А вообще одного го мало, изучай постгрес, кафку, реббит, грпц и прочее говно.
293 3418829
>>418816
Спасибо. Ну да, понимаю что вдовесок нужно много что дополнительно выучить.
294 3418965
>>418723
>>418816
хорошая идея! когда более менее выучишь Go потрать пару вечеров на PHP и Python (чисто на синтаксис, ничего кроме умения создать класс, функцию, массив, цикл, переменную и запустить чтобы вывело результат не нужно). Гошников часто берут переписывать с этих языков. Будешь на собесах пиздеть: "да, могу читать и понимать код на пхп\питоне и переписывать на Го". Это будет твоим большим плюсом.
1000064206.jpg79 Кб, 702x394
295 3418968
>>418965
Каким раком вообще PHP связан с Go?
296 3418973
>>418968
На hh.ru есть отдельная категория вакансий, которая называется php/go

И там переписывают проект с пхп на гошку

Мимо вуесос. Я пишу фронт
297 3418978
>>390005 (OP)

Что за херня на 3-м пике?
298 3419005
>>418973
Я видел обратное. На собесе сказали что переписывают с го на пыхы.
299 3419149
>>417971
рассмешил содомит
300 3419168
>>417971
А что за мапы то новые? Новичок, найти инфу не могу
301 3419201
>>419168
Оптимизировали RwMutex для йоба многопроцессорных систем на 64+ ядра, теперь на таких монстрах sync.Map работает чуток быстрее, чем классическое map + sync.RWMutex. Для обычных EC2 машин неатуально. Короче, как обычно задроты нашли свою задротскую проблему и эффективно оптимизировали на 1%.
302 3419227
>>419201
А, понял, спасибо анонче!
303 3419269
>>419005
Это в какой конторе?
304 3419322
>>418965
прикольно придумал, спасибо
image.png90 Кб, 800x496
305 3419602
>>419168

>А что за мапы то новые? Новичок, найти инфу не могу


Переписали реализацию map на Swiss Tables, что должно улучшить производительность и более экономно расходовать память.
https://dev.to/ocodista/go-124-uses-swiss-table-what-are-they-3c2l

sync.Map тоже ускорили, но это вторично, т.к. им реже пользуются.
306 3419632
>>419602
Вот, погрокал за тебя анон
https://grok.com/chat/a1a22154-8c5d-4a7a-a06d-71055c60a0b3
307 3419642
>>419632
это говно оказывается просто так не работает, нужно шарить
https://grok.com/share/bGVnYWN5_cd81cd4f-b2cd-4d13-90df-da5c05517d6a
308 3419764
>>419602
Спасибо!
Почитал, стало еще яснее. Честно, хочется такого же в котлине, но, к сожалению, сейчас котлин это продукт маркетологов и там все "фичи" - экспериментальные и работают через раз.
309 3419840
Посоветуйте плизик. Пишу на шарпах 3 года ком. Опыта, но хочу убежать в микросервисы и го. На шарпах плотно с микросервисами и стеком так и не удалось поработать - даже сейчас новый проект монолит. Думаю - стоит ли обращаться к менторам чтобы за ручку проводили по го в связке с микросервисным стеком, или есть другой вариант? Посмотрел, конечно, 150% от оффера хотят - пиздец.
310 3419861
>>419764
Котлин ЖВМ использует реализацию мапы Джавы. И в целом она достаточно эффективна, благодаря сборке мусора с компактинацией.
311 3419887
>>419840

>менторы


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

ты сам го роадмап не можешь загуглить или список вопросов на собесе?
312 3419921
>>419887
Ты не понимаешь, когда ты сам читаешь про WaitGroup - это хуита, а когда ты заплатил N денег и читаешь на том же сайте - вот это настоящие знания!
313 3419922
>>419642

>1 бит для статуса слота (занят, пустой или удалён)


Хуясе черная магия! Это и есть та самая нейросеть, которая заменила всех разработчиков?
314 3419937
>>419922
Ну шизов, что бит от байта отличить не могут она уж точно заменит
315 3419949
>>419937
Upd: не чекнул, что хт цитата грока. Обосрался получается
i.webp10 Кб, 480x294
316 3419964
Анон, привет! Подскажи, где можно найти ментора по гошке, который не чурается "приукрашивания" в резюме и любых других способов попадания на работу?

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

Готов за это платить, разумеется.
317 3419990
>>419964
Ментор, пошел нахуй с двачей, хватит тут свои услуги пиарить.

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

Сейчас гоев будут максимально прогревать, репутация уже не важна.
318 3420016
почему так?
319 3420017
>>419887
Тут вопрос именно про пет с микросервисным стеком, остальное то понятно выучить не проблема.
320 3420035
>>420017
а что там с петом с микросервисным стеком? спроси тут, я тебе бесплатно накидаю)
321 3420036
>>420016
ты на Win XP что ли сидишь? давно проблем с кодировкой не видел
322 3420043
>>420035
Вопрос пока общий - нужна поставленная задача и по факту чел, который проконтроллирует пердолинг пета с нужными технологиями с комментариями - вот это говно, это можно сделать иначе и т.д... Т.е. мне ментор нужен как репетитор, мол так делать надо, а так не надо. Всякие слайсы хуяйсы и че там у вас еще я выучить и сам в состоянии и подрочить это на литкодовских задачках или подобном.
323 3420044
Но, по первому впечатлению, менторы выглядят как какой-то скам - "ВКАЧСУ С НУЛЯ в голованг за 2 месяца" и т.д. Вкатится то окей, как работать потом? Я то поэтому и думаю, че делать. Про перспективы голованга я еще в 21 году знал когда только учился прогать, но потом случилось ИРЛ и не было возможности сидеть и перекатываться в него пока работал на шарпах.
324 3420055
>>420043
Говно вопрос. Сделай сервис денег с шардирование по юзеру, чтобы деньги Васи лежали в бд1, а деньги Пети - в бд2. Сделай сагу, которая переводит деньги от Васи к Пете. В процессе наебешься так, что возненавидишь микросервисы ебаные и полюбишь монолит.
325 3420110
>>420016
вроде само починилось
>>420036
не, десятка
1000064873.jpg796 Кб, 2667x4000
326 3420647
Новые мапы юзаете?
327 3420654
>>420044

> как работать потом?


Огребать баги на проде из-за пропущенных нюансов
Огребать кучу легаси-лапши от таких же как ты перекатунов, которых уже уволили (или хуже, которые ЗАКРЕПИЛИСЬ на метсах и диктуют стиль)
Огребать пизды на перф-ревью за незнание кишок (хотя ты просто ворочал джейсоны весь квартал)
328 3420659
>>420647
Каво?
329 3421205
17414611535950.png1,2 Мб, 1025x1280
330 3421211
Что то у меня сомнения аноны, перекатываться в Го из Питона или нет...

С одной стороны Го нравится - как глоток свежего воздуха - минимализм, интересная конкурентность, отсутствие фреймворков, грпк...

Но с другой стороны, а вдруг изо дня в день будет жесткий дрочь на производительность. Улучшение на 0.5% времени респонса какой-то хуйни.
Бесконечное копание и оптимизация кода для еще большего перформанса...

Аноны, которые уже вкатились, есть тут такие? Насколько у вас скучные или интересные таски? Расскажите о своих тасках на работке!
331 3421318
>>421211
В основном на го перекладываются разного рода жсоны.
Оптимизация производительности это редкая задача и ее наоборот довольно приятно делать в рамках рутины.
Если нужен такой xxx перформанс, странно вообще брать го, а не что-то поближе к железу.
332 3421744
>>421681 (Del)
Я хотел заниматься историей, но пришлось идти в айтишку.
333 3421757
>>421681 (Del)

> ЗАЧЕМ ТЫ ВКАТЫВАЕШЬСЯ В ИТ?


Давно вкатился. А в ГОшку потому что стек у нас сейчас такой, да и синтаксис ничо так.

> Чем тебя привлекает кодинг?


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

> Только честно! И готов ли ты вкатиться в любую другую сферу в которой будешь зарабатывать столько же или больше?


Есть только одна сфера, в которую бы хотел вкатиться кроме ойти, но физухи нет и старый уже для этого.
334 3421764
>>421757

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


Колись.
335 3421791
>>421764
Военная авиация, лол.
336 3422671
>>422508 (Del)

>Даю маленькую подсказку


Тоже даю: на западном рынке пиздорез похлеще нашего, там глыбы компьютерсаенсные с дипломами элитных учебных заведений вылетают на мороз
337 3422744
>>422671
ага, только глыбы с компьютерсайнс живущие в Америке хотят высокие зарплаты, а нам и 5-6К будет заебись.
338 3426202
Аноны, на чем проще и быстрее админку сделать? Слыхал про буффало, но ни разу не пользовался.
339 3426585
Попадал кто на стажировку в авито? Что скажете?
340 3426630
>>426585
Авито - это яндекс на минималках. Дроч на kpi, команды из одних студентов, бешеная текучка, вот это все. Там нечего делать.
341 3426696
>>426585
Хуета с кранчами, не рекомендую
342 3427272
>>426630
>>426696
Понял, подамся всё равно, хоть посмотрю как тестовые на golang'е выглядят.
343 3427287
>>427272

>хоть посмотрю как тестовые на golang'е выглядят


Напиши сюда потом, тоже интересно.
344 3427291
>>427287
сначала тест, в тесте вопросы уровня
что произойдёт при обращении по несуществующему индексу в слайсе
как создать alias для типа данных
что возвращает функция len для nil слайса
как создать лямбда функцию
context background vs context todo
количество символов в строке go
что такое select с default
можн сравнивать int с nil?

tasks :+ make(chan int, 1)
tasks <- 1
tasks <- 2
что произойдёт если никто не прочитал до выполнения этого кода
345 3427295
Авито, Яндекс, Озон - потогонка с KPI, перфоманс ревью и квотами на увольнение. Нахуй не надо туда идти сейчас в эти помойки.
346 3427297
>>427287
>>427291
а вот само тестовое

https://github.com/avito-tech/tech-internship/blob/main/Tech%20Internships/Backend/Backend-trainee-assignment-spring-2025/Backend-trainee-assignment-spring-2025.md

МУЖИКИ, дайте оценку тестовому

>>427295
Разве существуют другие компании, которые используют Golang и активно нанимают рабоджунов?
347 3427302
>>427297

>Разве существуют другие компании, которые используют Golang и активно нанимают рабоджунов?


В Yadro точно нанимали джунов. Есть еще конторки поменьше.

Но да, найм стажеров самый большой в Я, Авито и Озоне.
348 3427304
>>427302

>В Yadro точно нанимали джунов


У них даже стажировка с Golang'ом есть, пойду закину резюме, хули мне
349 3427309
>>427297

>МУЖИКИ, дайте оценку тестовому


Хорошее тестовое, как раз проверяет навыки крудописания + сбора метрик и логов. Ну и деплой по мелочи. Я вот 2 года в одном проработал и сходу с этим тестовым вряд ли справлюсь - ни разу не пользовался prometheus. Надо самому что ли сесть и сделать для себя, чтобы мозги размять.
350 3427313
>>427309

> Я вот 2 года в одном проработал и сходу с этим тестовым вряд ли справлюсь


трагедия
у меня опыт в два созданных пет проекта, придётся ебашить невообразимо видимо
351 3427317
>>427313
Да опыт работы это хуйня если честно. Я вот 2 года в Яндексе просидел. Научился литералли ничему - 2 года сидел и фиксил баги в легаси монолите. Каких-то больших новых фичей не делал, микросервисов так и не увидел. Да, познакомился с внутренним стеком технологий, но за пределами Я он никому не нужен, совсем. Каких-то плюшек кроме строчки в резюме лично я не получил от такой работы.
352 3427318
>>427317

>Каких-то плюшек кроме строчки в резюме


Так это же самое главное сейчас? Буквально фильтр, без него до собеса не допускают даже?

Что обсуждают на яндексовском аналоге двача?
353 3427327
>>427297

>1. Авторизация пользователей:


>Используя ручку /dummyLogin


Это слово handle так перевели?
354 3427328
>>427318

>Так это же самое главное сейчас? Буквально фильтр, без него до собеса не допускают даже?



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

>>427318

>Что обсуждают на яндексовском аналоге двача?


Половина тредов это срачи ватники vs либерахи. Оставшиеся треды это жалобы на перфоманс ревью, зарплату, грейдапы и все что с этим связано. Интересных тредов крайне мало.
355 3427331
>>427327
Именно
>>427328
Понял, спасибо
Пойду скромно почитывать про DDD в голенге и скромно реализовывать тестовое
356 3427441
>>427297
Они охуели? Это задача на синьора и там работы на неделю потного кодинга как минимум. Только с редактированием накладной будешь ебаться несколько дней. Еще и требуют развернуть инфру, чтоб и IAM работал и саги бегали. Пусть нахуй идут с такими тестовыми, дебилы, блять.
357 3427445
>>427441
Ебать, на первый взгляд показалось что не всё так сложно

>сага


даже паттерна не знал такого до этого поста, ох бля...
358 3427457
>>427445
Ответь для себя на следующие вопросы:
1. Как ты будешь масштабировать эту систему? Это главный вопрос в бекенде.
2. Сервисы не существуют в вакууме. Как ты сделаешь поддержку распределенных транзакий?
3. Что по идемпотентности?
4. Что делать с конфликтами, если два юзера начнут вбивать одну и ту же накладную?
359 3427544
>>427441
А зачем тут саги? Я пробежался быстро, вроде как монолит хотят сделать. Один сервис, не несколько.
360 3427644
>>427544
Тут вопрос, что конкретно они хотят увидеть в этом охуевшем тестовом задании. Вряд ли монолит, они же работают на микросервисах.
Вообще, в микросервисах требуются три дополнительных параметра:
1. transaction_id чтобы откатить распределенную транзакцию
2. operation_id для идемпотентности
3. trace_id чтобы собирать инфу по логам и строить красивый стек вызовов между сервисами.
Все эти хуйни надо где-то генерировать и они должны быть уникальны. Клиент это не видит, он просто дергает ручку, а дальше ебись сам. В случае с сагой айдишки геренятся на старте саги, внутри саги значения уникальны (это ключи в бд), добавляем префиксом айди самой саги и получаем уникальный ключ на всю систему. Без саги - ну ты поебешься, потом все равно напишешь сагу.
361 3427651
>>427457
Как я много не знаю, это ужас просто.
В рамках одного сервиса - напихать транзакций с уровнем Serializable - решение или нет?
В рамках нескольких - внезапно, не знаю, пойду курить про распределённые транзакции.
Алсо, где искать ответы на эти вопросы? Сам ответить не могу.
Есть ощущение, что надо копать в сторону КАБАНЧИКА, я прав?
Спасибо, из постов на дваче узнаю много нового
362 3427671
>>427297
Где нарыл тестовое, если не секрет?
363 3427674
>>427327
А что не так? Вроде всегда ручкам называли, нет?
image.png26 Кб, 578x402
364 3427677
>>427671
Открыто лежит в гитхабе, как и тестовые с прошлых лет.
365 3427697
>>427674
Ну как бы handle в этом контексте - это не дверная ручка.
366 3427772
>>427651
Serializable - это сразу полный окончательный пиздец производительности. При большой нагрузке вообще транзакции не используют и ставят read uncommitted.
Распределенные транзакции через двухфазный коммит так себе решение, когда зависнет координатор, вся система встанет раком. Лучше поебаться с сагой и версионированием данных в бд.
Кабанчик - это справочник, очень душный. Там общая картина не показана, зато много дрочева по деталям. Лучше просто смотри выступления с хайлоада, где они обсуждают свои велосипеды, понемногу собирай информацию.
Алсо может это я слишком загоняюсь, а для тестового достаточно пукнуть в бд и не выебываться.
367 3427781
>>427772

>Serializable - это сразу полный окончательный пиздец производительности


В моем текущем бигтехе мы используем только serializable транзакции для любой записи в таблички. И у нас монолит, кста.
368 3427803
>>427772

>При большой нагрузке вообще транзакции не используют и ставят read uncommitted.


То есть при большой нагрузке постгрес не используют?

>зависнет координатор - все ляжет


>лучше поебаться с сагой


То есть когда зависнет контроллер в саге этого не произойдет?

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


Ну с таким уровнем рассуждений конечно.

>Лучше просто смотри выступления с хайлоада


Ахахахахахаххахаха
369 3427818
>>427772
Спасибо, буду изучать!
370 3427865
>>427772

>Кабанчик


>много дрочева по деталям


В этом и смысл книги, как бы...
371 3427876
>>427803

>То есть при большой нагрузке постгрес не используют?


Используют. Не используют блокировки.

>То есть когда зависнет контроллер в саге этого не произойдет?


В саге используется версионирование записей, как в гите. Двухфазка держит блокировки. Разницу примерно улавливаешь? Сага работает вообще для любых разных баз, 2PC между постгресом и постгресом.

>Ну с таким уровнем рассуждений конечно.


Душнила, спок.

>Ахахахахахаххахаха


Зря смеешься, там часто проскакивают интересные детали. И на хайлоаде рассказывают про живые системы, а не маняфантазии про чистую архитектуру.
372 3427884
>>427876
Я про твою фантазию про рид анкоммитед писал вообще, для справки: but internally only three distinct isolation levels are implemented, i.e., PostgreSQL's Read Uncommitted mode behaves like Read Committed. This is because it is the only sensible way to map the standard isolation levels to PostgreSQL's multiversion concurrency control architecture.
373 3427905
>>427884
Хуясе говноделы. Теперь понятно, почему большой энтерпрайз не сидит на постгресе. Моя основная бд mssql и немного оракл.
374 3427964
>>427772

>Serializable - это сразу полный окончательный пиздец производительности


>Кабанчик - это справочник, очень душный. Там общая картина не показана


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

Вообще аноны, не слушайте никого на двоче, тут одни долбаебы.
375 3428030
>>427964
Хорошо, я не буду слушать тебя о том, чтобы не слушать других.
376 3428039
>>427964
Свинку, кабанчик - это обзорный справочник. Вкатываться в микросервисы по кабанчику - это как вкатываться в программирование по Кормену: нихуя не понятно. Из кабанчика ты узнаешь про асинхронную репликацию и алгоритмы консенсуса, но как из этого сделать масштабируемый микросервис ты не узнаешь. Зато кабанчика любят душнилы на собесах: всегда можно задать каверзный вопрос оттуда и потом сидеть гундеть "ммм вы не понимаете основы".
377 3428058
>>390005 (OP)
В линкедине почти в каждой вакансии на голенг идет знание кубера is a must. Они там ебанулись? Далеко не каждый девопс сможет поднять кубер, а гейропейцы хотят эти навыки от разработчика. Кто-нибудь подавался в подобные компании, что спрашивают на собесах?
378 3428152
>>428058
А зачем платить за разраба и девопса отдельно, если можно просто взять разраба с навыками девопсинга?
379 3428176
>>428039
да ты бы в Serializable для начала вкатился потом уже в микросервисы лез.
380 3428179
>>428030
ну да, меня тоже не нужно)

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

Теперь говорю, что у Питона нет перспектив, но меня опять называют долбаебом. Ну посмотрим)
381 3428198
>>428179

>Теперь говорю, что у Питона нет перспектив


Это уже давно говорили и без тебя. Но петузы из дата саенса засрали питоном всё сейчас.
382 3428213
>>428198

>Это уже давно говорили и без тебя


давно хуйню несли, а вот сейчас появилось много объективных причин.
383 3428271
>>428213
Ну да, через 5 лет будут ровно то же самое говорить, что раньше не было уверенности, а вот сейчас-то уж точно...
384 3428605
>>428179

> 10 лет назад говорил, что у ПХП нет перспектив и с него нужно валить


Меня литералли все эти 10 лет пыха кормит, и будет кормить дальше. С хера ли нет перспектив-то? Язык развивается, проекты пишутся, причём немало.
Да, гошка по деньгам поинтереснее сейчас, причём я тоже знал что надо её учить, но вечно ленился, кек...
Но пыха никуда не денется точно ещё десяток лет.
385 3428613
>>428605
Много сейчас проектов с нуля на пыхе пишется? Только нормальных, с микросервисами, очередями и.т.д? И чтобы вакансия была чистый бекенд без фронтенда.
386 3428664
>>428613
Ну судя по вакансиям - да, много. Даже говёный антипаттерновый ларавель зачем-то берут.
387 3428731
>>428664
Попахивает пиздежом. 10 лет назад я перекатился с пхп на питон как раз потому, что пхп стремительно терял популярность и новые проекты писали на питоне, а на пхп было одно легаси. А теперь вдруг снова массово новые проекты на пхп пишут? С чего бы вдруг?)
388 3428753
>>428613

>нормальных, с микросервисами


Почему копросервисы это нормально, хипстер?
389 3428847
Сап.
Просто хочу разобраться в устройстве работы. Новичок, так что не бейте.
Если я напишу такой код:
func createPointer() int {
x := 42
return &x
}

func main() {
ptr := createPointer()
fmt.Println(
ptr)
}

Тогда же должна быть ошибка, верно? Функция отработала, x находится в стеке функции createPointer(), но почему-то не кидает эксепшн. Спросил гопоту и он сказал, что это такой йоба механизм в го есть, который сканирует память и если часть стека функции еще нужен - функция не очищается до конца, а хранит память на эти переменные.
Если же я сделаю x через x := new(int), тогда стек функции отчистится полностью, ведь x - это поинтер на хиповую память, верно?
390 3428850
>>428847
https://pastebin.com/D3tBLQsr

макака не сделала до сих пор удобное форматирование, боже мой.
1.PNG61 Кб, 1323x471
392 3428877
>>428850
Изи ж, убегает в хип

> go tool compile -m -m main.go


/data/main.go:5:6: can inline createPointer with cost 8 as: func() int { x := 42; return &x }
/data/main.go:10:8: cannot inline main: function too complex: cost 93 exceeds budget 80
/data/main.go:11:25: inlining call to createPointer
/data/main.go:12:17: inlining call to fmt.Println
/data/main.go:6:3: x escapes to heap:
/data/main.go:6:3: flow: ~r0 = &x:
/data/main.go:6:3: from &x (address-of) at /data/main.go:7:11
/data/main.go:6:3: from return &x (return) at /data/main.go:7:4
/data/main.go:6:3: moved to heap: x
/data/main.go:12:18:
ptr escapes to heap:
/data/main.go:12:18: flow: {storage for ... argument} = &{storage for ptr}:
/data/main.go:12:18: from
ptr (spill) at /data/main.go:12:18
/data/main.go:12:18: from ... argument (slice-literal-element) at /data/main.go:12:17
/data/main.go:12:18: flow: fmt.a = &{storage for ... argument}:
/data/main.go:12:18: from ... argument (spill) at /data/main.go:12:17
/data/main.go:12:18: from fmt.a := ... argument (assign-pair) at /data/main.go:12:17
/data/main.go:12:18: flow: {heap} = fmt.a:
/data/main.go:12:18: from fmt.Fprintln(os.Stdout, fmt.a...) (call parameter) at /data/main.go:12:17
/data/main.go:12:17: ... argument does not escape
/data/main.go:12:18:
ptr escapes to heap
393 3428881
>>428179
Go очень нишевый язык для инфры и в подавляющем большинстве случаев его не используют для написания бизнес-логики.
В России Go учить смысла нет. Будете прыгать между помойными бигтехами: из Озона в Авито, из Авито в Яндекс, из Яндекса в WB, и так по кругу, каждый раз получая говна за шиворот на очередном перфоманс ревью. Либо застрянете в каком-то ноунейм болоте.

Для релокации Go тоже плох, основной стек технологий в западных конторках это жаба, питон, джаваскрипт.
394 3428883
>>428875
>>428877
А, я даже и не знал, что го так умеет. Учу гошку где-то 4 день.
Спасибо за ответы, теперь стало понятнее.
395 3428900
>>428881
У меня наоборот очень хорошие предчувствия насчет Го. Шесть лет назад я его не до конца оценил. А сейчас плотно поработав с питоном мне как будто глаза открылись. Мне больше не нужны все эти питоновские свистоперделки, фремворки, ОРМы.
396 3428925
>>428883
В сишарпе есть понятие boxing/unboxing, в гошке та же фигня. Когда компилятор видит, что ты берешь указатель на переменную, он кладет ее в кучу и возвращает указатель. Это не с/с++, выстрелить себе в ногу не получится.
397 3428930
>>428900
Го хорошо ложится на чатгопоту. Самому руками выписывать эти err != nil заебывает, а гопоту не жалко. Вот, например, я набросал в копилоте промт для простенького туду листа:

Create http service in golang for shopping list application.
Do now write all code in main function.
Server port comes from environment variables with default value 8080.
Log errors to console.
Do not report errors to the client, instead log error to console with unique key (use local time ticks), then return to the client this key and status 500.
Use postgres database to store data.
Do not use global db instance, instead open new connection on each http request.
Open new database connection in a separate function, do not inline it.
Database connection parameters come from environment variables, panic if any of database connection parameters is not set.
Must use connection pooling for db.
Connection pooling parameters come from environment variables with default values.
Use validation for incoming request parameters.
Use HTTP status codes for endpoint results and errors.
Check http verb in endpoint.
Must use inplace payload structures for incoming json validation, must not map request parameters to business logic structures.
Shopping item has ID, name and yes/no mark.
Service has http endpoint GET /list that returns json with a list of shopping items.
Service has http endpoint POST /mark that sets mark to true for a specific item, item ID comes from request.
Service has http endpoint POST /add that adds a new shopping item, item name comes from request.
Service has http endpoint POST /delete that deleted a specific item, item ID comes from request.

Потратил часа два и тут еще есть над чем поработать. Сам бы я охуел столько кодить.
398 3428934
>>428930

>Го хорошо ложится на чатгопоту


тоже думаю, что это весомый плюс го. Просил нейросеть переписать сгенерированный код на го на питоне и она жидко обосралась, несколько раз я ей подсказывал и просил исправить но она так и не написала рабочий код.
399 3428985
>>427327
>>427697
Это яндекс-сленг. Они эндпойнты стали на русском называть ручками, остальные подхватили
400 3429044
>>428881
джава это кал сынок
401 3429065
>>428881

> Для релокации Go тоже плох, основной стек технологий в западных конторках это жаба, питон, джаваскрипт.


Только возьмут джавистом не русского понаеха, а своего местного. Надо скиллы качать с меньшим числом голодных ртов на место. Сейчас бы как раз на ГОшку и педераст смотрел, да.
402 3429178
>>429065

>педераст


Нахуй он нужен?
403 3429227
>>429178
В том же бч спрос, а спецов нихуя.
404 3429231
>>428985

>Они эндпойнты стали на русском называть ручками


Зачем? Просто так, чтобы не как все?
405 3429234
>>429227

>В том же бч


Где?
406 3429248
>>429234
Блокчейн.
407 3429256
>>429248
Лол.
408 3429298
>>429256
Ну дело твое.
409 3429300
>>428900

>Шесть лет назад я его не до конца оценил


А с чего ты решил, что сейчас ты его "до конца" оценил?
410 3429323
>>428925
Понятно. Я даже не думал, что тут так продуманно, хотя ожидаемо.
carbon(1).png75 Кб, 1042x596
411 3429324
>>429300
отвечу одной картинкой
412 3429392
>>429324
Бессмысленный код. Лог фатал пишется ровно в одном месте на самом верху, внутри функций собирается длинная сопля из ошибок через fmt.Errorf
413 3429406
>>429392

>Бессмысленный код. Лог фатал


это да. посыл был в том что мне гошка настолько понравился, что даже с бесконечной проверкой ошибок смирился.
414 3429430
>>429392
нука подробнее про логирование
на любой выпук пишу fmt.Errorf("что то не так")
прокидываю это говно до уровня хендлераи там уже slog.Error("err", err)
всё так или проебался?
415 3429615
>>429430
Все так.
416 3432782
>>426585
Я, вкатун вообще без коммерческого опыта, уже второй раз подаюсь - в первый раз охуел со сложности(БД до этого не трогал, Джокер в первый раз пощупал), но сделал за бессонную неделю, как итог - не прошел
В этот раз подумал, что ну уж с прошлого-то раза все должно быть легче, но все равно охуел, да еще и проебланил момент - в 23:50 запушил решение задания, дальше ночью докоммичивал уже тесты
Сегодня увидел, что, судя по трафику ГХ, они клонят решение в момент дедлайна, похоже, так что покрытие тестами вышло 0%
Вышел, как и в прошлый раз, рабочий сервис, с несколькими выполненными дополнительными заданиями, но что-то надежды я все равно особо не ощущаю - как минимум операции с бд в половине случаев грязные - я вынес в отдельные функции несколько распространенных операций, но у меня не было времени разбираться с контекстами для бд транзакций
В целом, конечно, по ощущениям это все полный пиздец - если такое просят от стажера 40к зп в месяц, джуна попросят прошлого СЕО воскресить? Миддлы скорость света и силу гравитации перелопачивают для того, чтобы миникабаныч мог партию трусов сбыть на 0.01% быстрее?
Но выбора особо нет, все без опыта/джуновские вакансии меня успешно заигнорили (я был бы очень рад преувеличить, но вакансий такого толка было крайне мало)
417 3432787
>>432782
Что там за задание такое? Чому не юзал нейросеть? Алсо джун - это низшая лига, там литерали голодные игры в говне. Подавайся на мидла.
418 3432788
>>432787
Анон выше скидывал задание, вот https://github.com/avito-tech/tech-internship/blob/main/Tech%20Internships/Backend/Backend-trainee-assignment-spring-2025/Backend-trainee-assignment-spring-2025.md
Нейронку юзал, без нее бы я не написал ебанистический запрос к бд для сбора инфы по сущностям с 3-мя уровнями вложенности, да и тесты они очень помогают писать, я обычно к моменту, когда приходит время писать тесты, уже выматываюсь порядочно - сроки сжатые, инфы много
Для остального стараюсь сам, чтобы набить руку на такого рода задачах - просто у меня то, чем я развлекаюсь и что пишу для себя, не сильно подходит под коммерцию, есть такое ощущеньице(типа, запилить триде движок в терминале, переводчик на брейнфак, бот для дискорда)
Согласен с мыслью, что нужно сразу на миддла, но есть несколько страхов
1) Даже если я вдруг куда-то попаду, не умру ли я от миддловских задач? Я совсем не понимаю, готов ли, при том, наверное, даже не столько в плане программирования, сколько в плане всякой бюрократии/формальностей, мне кинут под ноги на входе репозиторий, я его облизывать начну, а надо было перешагнуть, в таком духе
2) У меня нет опыта, накручу я какую-нибудь несуразицу, по которой даже ничего пояснить не смогу - опыта-то нет
Но тут, наверное, выход пойти к волчаре и купить накрутку+легенду, чтобы это хотя бы не выглядело как будто вкатуныш пытается рассказать, как он себе представляет процессы в компании
419 3432804
>>432788
Очень потное задание. Сколько времение на него дается? Что дает выполнение? После такого можно смело подаваться на синьора.
420 3432847

>Авито


Недавно разговаривал с их рекрутершей, предлагал меня взять за 150К \ мес. У меня 10 лет опыта в бекенде на питоне, гошку учу пол года. Посмотрели резюме и даже на собес не позвали. При том, что у меня в резюме реально интересные проекты с микросервисами, кафками, канкаренси и.т.д. Хуй знает кого они тогда ищут и какие у них требования...
421 3432860
>>432847
Ты для них оверквалифаед, джуна говно разгребать ищут же.
422 3432875
>>432860
да не, у них сейчас буквально акция проходит: "стань мидлом по быстрому". На мидл позиции я уж точно оверквалифаед не буду.
423 3432934
придумайте за меня идею пет-проекта, а я реализую
что вам надо? xbrl-парсер уже существует
424 3432942
>>432934

> придумайте за меня идею пет-проекта, а я реализую


Я тебе уже ответил в ньюфаго-треде, сделай аналог трелло со встроенной базой, чтобы можно было легко запускать на отдельной машине.
425 3432944
>>432934
запили генератор кода чего нибудь, например есть sqlc который генерирует методы на основе sql. Может структур конфига на основе yaml файла или еще какой-нибудь дрисни.
426 3432946
>>432875
Если у тебя 10 лет опыта на другом стеке то ты уже синиор должен быть, старые миддлы не нужны
427 3432986
>>432942
yet another tasks/projects managing app?
делал такое в вебе, в чём прикол пилить десктоп?
428 3432991
>>432986
Трелло - это канбан доска.

>делал такое в вебе


>в чём прикол пилить десктоп?


Ну можно веб сайт открывать, запущенный на этой же машине. Прикол в том, что аналоги трелло для локального запуска - это слишком простые/ограниченные проги или развесистые на пыхе, которым нужна ещё постгря в качестве базы. А вот так, чтобы как трело, но с одним бинарником и встроенной базкой - таких продуктов я не встретил.
429 3433017
>>432788
нихуя там задание блядь на интерна
430 3433027
>>426585
Кулстори про авито,
Ходил к нам на собес на техлида команды из 4 человек. Сам я и так техлид в одной крупной продуктовой конторе.

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

такие дела.

Вообще, во всех этих конторах всегда есть чуваки, которые там просто очень давно сидят и от того, получили какой то авторитет в компании. Который они всеми силами стараются сберечь. И если видят что к ним хочет пойти работать кто-то лихой и шутливый, то для таких толстяков - это угроза
431 3433029
>>433017

>ПВЗ РЕСТ ХУЕСТ


Нахуя в это люди вообще идут? Какой-то подобный кал всю жизнь писать, я ебал.
432 3433032
>>433029
А да забыл, это всё надо писать на говне и зачем-то использовать постгрю (на тестовом задании).
433 3433041
>>432804
По времени - вечером 8-го числа прислали, дедлайн был до 14-го включительно, т.е. 5 с половиной дней, получается, а если учитывать, что расчет потенциально на занятого студня/работягу, который и стажериться не фултайм будет, то полноценных дня 3, я думаю
По поводу того, что дает выполнение - прошлое тестовое дало мне наконец посмотреть докер, поработать с бд, к этому разу я уже изучил часть подводных, если заходить +- по колено, а на этом тестовом я еще и на ходу разбирался, как опенапи спеку подкорректировать для более правильной кодогенерации, не ломая, собственно, саму схему (правда, у них там кириллица и это все равно генерило интересный нейминг, типа ProductTypeОбувь)
Жаль, прометей присобачить не успел, так была бы еще + технология, но это надо уже сейчас, в спокойной обстановке, поделать
На синьора, конечно, вдохновляет, но без опыта особо не попляшешь
434 3433057
>>433041
покажи хоть репо своё, интересно как сделал
435 3433077
>>433057
Вот(с флажком фоткаться не буду, предыдущий как-то неудачно провалился внутрь и наискось встал, не достать) https://github.com/ST359/pvz-service
Если что, обращения к бд сделаны говено (как, наверное, и все остальное, я не могу сам оценить), там точно аномалии грязного чтения и фантомов будут - я вынес проверку на существование нескольких штук в отдельные функции, но из-за сжатых сроков не успел разобраться, как контексты под транзакции прокидывать(прочитал, что что-то такое есть под схожие случаи, надо будет наверстать)
436 3433088
>>433077
У тебя твоя штука под рутом работает в курсе?
437 3433090
>>433077
почему не ddd?
почему gin а не net/http?
почему подключение к бд не в конфиге/клиенте а в репозитории?
выглядит заебись, буду разбирать, думаю дохуя для себя подчерпну
студентота?
438 3433103
>>433088
Да откуда бы мне знать, я самоучка безопытный, а на прошлое тестовое, например, фидбека и не было
Надо погуглить, я даже и не подозревал о таких моментах
>>433090
Не DDD, потому что я не знаю, как - увидел когда-то паттерн с репозиторием и в стесненных условиях его и юзаю
Gin - это одно из требований, выбора не было(хотя, наверное, если бы был, я бы все равно юзал его, потому что привычно, но привычность - единственный для меня плюс, я бы не пояснил, чем он ценен сам по себе)
Подключение к бд в репке потому что я только такой вариант и видел, у меня нет других примеров
Не студентота, я рухлядь древняя 29-тилетняя, уже был сениор-рисовакой в геймдеве
439 3433105
>>433103

>Да откуда бы мне знать


Ну так я типо на правах совета со стороны пишу.
440 3433118
>>433105
Да не, я без претензии, если что, это скорее было "ну а чего ожидать от вкатуна-самоучера", спасибо за наводку, анонче
Уже образовываюсь по этой теме, читаю стаковерфлоу, странно, что не натыкался, проблема, видимо, нередкая
441 3433128
>>433118
почему в го то решил? это же пиздец ебатория без опыта
442 3433153
>>433090
DDD это говно на палке для миддлов которые только что книжку прочитали всем известную
443 3433161
>>433077
на самом деле хорошо, давно учишь?
444 3433162
>>432946
При смене стека как раз опускаешься на уровень. Сеньер питон это максимум мидл го, это если еще хорошо гошку выучил.
445 3433206
>>433128
Кодил на змее, потом кодил на жиесе, жиес мне прямо очень не зашел, не знаю, не удалось прочувствовать, кажется, будто на небольшого старательного пацана корпораты поверх строительным степлером наклепали куски мяса, железки всякие, свистоперделки
На питоне нормуль, долгоиграющий проект(бот для дискорда), которым ежедневно 20 человек пользуется уже года 2, на нем есть, но все равно что-то немного не щелкает, хотя писать, конечно, приятно
Но как я попробовал го - мне прямо понравилось, все довольно стройно, последовательно, на нем, к тому же, меньше конкуренции(скамбокс учил народ питону, а не го), свежие проекты начинаются сейчас начинаются на нем в ощутимом проценте случаев, старые переписываются на го, да и зепки поплотнее, куда без этой части мотивации(за исключением того, что до зепки я вряд ли когда-то доберусь, лул)
А вообще сам язык будто бы не столь важен, сейчас знание языка это, как мне кажется, процентов 30-40, нужна куча сопутствующих технологий, которые, если не одинаковы, то схожи много где
Да и судя по тому, что я вижу, ебатория без опыта сейчас практически везде
446 3433220
>>433206
В питоне слишком много фич по сравнению с го, ну и языки для разных вещей, то что долбоёбы всюду суют го - не есть гут.
447 3433225
>>433161
Спасибо, приятно слышать, но я бы, наверное, оценил на уровень "час в день можно посмотреть без сварочной маски с пяти метров"
В целом программирую относительно осознанно с июня 2023(с уровня "понять, что такое классы и переменные"), но я плотно работал некодером параллельно, для изучения тогда был питон, в 2024 почти прошел бекендерский курс RSSchool с жиесом(чуть не помер, на старте жиес только дней 4-5 ковырял), и вот в этом году 16-го февраля сделал первое тестовое на гошке, получается, в нем я месяца 4
448 3433236
>>433220

>то что долбоёбы всюду суют го - не есть гут.


вот тут поподробнее, что по твоему не стоит писать на го? мимо другой анон питонист перекадчик
449 3433250
>>433236

>не стоит писать на го?


Например, ебалу с ProductTypeОбувь, которую выше анон пишет.
Что стоит писать на говне, вернее, даже переписать лол,, например, это CUPS.
450 3433258
>>433032
На чём предлагаешь такое писать?
451 3433262
>>433250
Хм, мне, напротив, думалось, что примерно для таких вещей он и разработан гуглом, не показалось чем-то противоестественным в процессе(кроме того, что столько ебалистики нужно знать на стажера)
Но, как бы оно ни было, музыку заказывают кабанычи, так и кручусь
452 3433264
>>433258
Ну всю жизнь подобное пишут на джава дрисне, почему нужно менять инструмент, который работает?
>>433262

>разработан гуглом


Для системного программирования.
453 3433276
>>433250
это я уже понял, конкретнее, что именно дает питон при написании ебалы ProductTypeОбувь что не дает го? только конкретный пример а не общие фразы типа пук среньк проще, быстрее
454 3433285
>>433264

>всю жизнь подобное пишут на джава дрисне


Так было до выхода го_вна.

>Для системного программирования


Нет, он в первую очередь для микросервисов делался, чтобы минимальный отпечаток был и собирался бинарь под разные платформы.
455 3433291
>>433276

>что именно дает питон


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

>Нет


Засовывателя го во все дыры ответ.
456 3433292
>>433291

>Засовывателя го во все дыры


Не в ту сторону воюешь, пирожок.
457 3433293
заебали сраться, пошлите учить друг друга микросервисной архитектуре
458 3433295
>>433292
Я уже выше озвучил своё авторитетное мнение, если очередной пыникс с микросервисами и вебдерьмом в чем-то несогласен, кто я такой, чтобы заниматься образованием дебичей.
459 3433296
>>433295
Если твоё авторитетное мнение касается того, что го изначально разрабатывался для системного программирования, то это объективно неверно.
460 3433302
>>433291

>Я не писал про питон в этом ключе.


ну все, съехал с темы. По факту не важно питон, жаба, колодец...
современный бекенд это микросервисы, а микросервису нафиг не нужно развитое ООП.
461 3433307
>>433302

>ООП


Ты, конечно, охуеть додумыватель.
462 3433315
>>433162
Да с хера ли? Кто сказал, кабан кабаныч? Это развод для лохов какой-то и обесценивание знаний. Уровня "пхп не считаем за опыт" в яндексе.
463 3433322
>>433315
Объективно каким бы разработчик хорошим не был, ему слишком много вещей незнакомо и не привычно на новом языке.
А ты планируешь свичнутся в го с сохранением зп и уровня?
464 3433330
>>433315
И что тут не так? Экспертиза любой вебмакаки исчерпывается знанием ФРЕЙМВЁРКА, на котором вебмакака делает единственное, что она умеет — круды. Поскольку фреймвёрки ПеХоПе Яндекс в своих крудах не использует, ПеХоПе за опыт он не считает — зачем ему бесполезная макака, которая не приносит ВЭЛЬЮ здесь и сейчас?
465 3433334
>>432847

>гошку учу пол года


Что там учить полгода? Голанг простой язык, не раст дроченый. У меня перекат с сишарпа занял неделю с чатгпт. Если ты понимаешь, как вся хуйня работает, ты просто пишешь в промте "use postgres, use grpc, use kafka with outbox" и нейросеть генерит тебе простыню кода.
466 3433337
>>433334
По сравнению с питонов го другой подход к построению приложения. Изучаю лучшие практики, как применять патерны. Распостраненные библиотеки для работы с бд. очередями. логами. энвами и.т.д. Короче чтобы мог плюс минус так же сесть и написать сервис с минимальными подсказками.
467 3433344
>>433077
Для конектов к бд лучше юзать пул, а так все норм.
У меня бы не хватило терпения тратить неделю на такое охуевшее тестовое задание.
468 3433348
>>433337
Ты прикалываешься? Это все пишет нейросеть.
469 3433350
>>433348
как ты поймешь хорошо нейросеть написала или плохо? Например какой подход ты бы использовал для передачи пула подключений бд в обработчики запросов ?
470 3433356
>>433334

> Голанг простой язык


Это пиздёж для продвижения языка.

> нейросеть генерит тебе простыню кода


А потом начинаются утечки горутин и памяти, которые хуй отдебажишь, да?
471 3433359
>>433350
Вариант раз: глобальная переменная. Используется в 99% кода, потому что го это не джава и не надо сюда тащить энтерпрайзное безумие с AbstractProxyFactorySingletonBean.
Вариант два: параметром через замыкание. Тоже встречается.
Вариант три: обернуть бд в интерфейс и инжектить его через убер, но это уже пованивает энтерпрайзом. Прям сильно так пованивает.
Ты скажешь: а как же чистый код, ДДД, АБВГД и 100500 уровней абстракции над абстракцией? Это нахуй не надо. Юнит тесты для бизнес-логики бесполезны, лучше написать один интеграционный тест с реальной бд в докере.
472 3433361
>>433356
А ты не клади что попало в контекст и память не потечет.
473 3433395
>>433344
Спасибо
Про коннекты пулом до этого прочитал, подумал, что без пула каждый запрос будет ждать, пока освободится один единственный коннект к БД, оказалось, я не правильно понял, что такое пул соединений - изкаробки sql/db и psql и иже с ними поддерживают, судя по всему, открытие множества соединений, но это не пул, а под пулом имеется в виду заранее создать и держать некоторый запас соединений для переиспользования, без открытия новых без крайней надобности, я правильно понял? Почему-то было ощущение, что такой прикол мог бы быть абстрагирован, не думал в эту сторону
По поводу тестового - у меня и самого руки порой опускаются, одно из предыдущих тестовых в какие-то рогакопыта вообще заигнорили(благо, заняло день), и, я так думаю, это очень распространенная практика, но делать нечего, приходится учиться профессионально терпеть(более того, я каждый раз стараюсь что-то новое узнать в процессе, так хотя бы не возникает ощущение, что время потрачено совсем впустую)
474 3433421
Пару задач с сегодняшнего собеса на которых я обосрался

1. Возвести элементы в квадрат. (исходный список отсортирован)
// [-3, -1, 0, 2, 3, 10] => [0, 1, 4, 9, 9, 100]
Требуемая сложность О(n).

2. Есть журнал заселения отеля, в которых есть пары чисел - дата заселения и дата выселения, например [[1, 2], [4, 10], [3, 7]], надо узнать сколько комнат надо.

Мне кажется или сложновато для джейсоноукладчика бекендера. раньше по проще задачки были. Или вы их сейчас за секунды решите без нейросетей и скажете какой я долбоеб?
475 3433428
>>433395
Идея в том, что ты не держишь коннект со старта сервера, а берешь каждый раз новый из пула.

Промт для копилота:

write service in golang. use pgxpool. acquire new connection, start and commit/rollback transaction on each request in a separate function, then pass connection to the handler. handler is a separate function.

Код:

package main

import (
"context"
"fmt"
"log"
"net/http"

"github.com/jackc/pgx/v5/pgxpool"
)

type Server struct {
dbPool pgxpool.Pool
}

// acquireAndHandleTransaction manages connection acquisition and transaction lifecycle
func (s
Server) acquireAndHandleTransaction(ctx context.Context, handler func(context.Context, pgxpool.Conn, pgx.Tx) error) error {
// Acquire a new connection from the pool
conn, err := s.dbPool.Acquire(ctx)
if err != nil {
return fmt.Errorf("failed to acquire connection: %w", err)
}
defer conn.Release()

// Begin a transaction
tx, err := conn.Begin(ctx)
if err != nil {
return fmt.Errorf("failed to start transaction: %w", err)
}

// Execute the handler with the connection and transaction
if err := handler(ctx, conn, tx); err != nil {
// Roll back the transaction in case of error
if rollbackErr := tx.Rollback(ctx); rollbackErr != nil {
return fmt.Errorf("rollback error: %v (original error: %w)", rollbackErr, err)
}
return err
}

// Commit the transaction
if commitErr := tx.Commit(ctx); commitErr != nil {
return fmt.Errorf("failed to commit transaction: %w", commitErr)
}

return nil
}

// standaloneHandler is the request handler function
func standaloneHandler(ctx context.Context, conn
pgxpool.Conn, tx pgx.Tx) error {
// Perform transaction operations
_, err := tx.Exec(ctx, "SELECT now()") // Example operation
if err != nil {
return fmt.Errorf("transaction operation failed: %w", err)
}

fmt.Println("Transaction operation succeeded")
return nil
}

func (s Server) httpHandler(w http.ResponseWriter, r http.Request) {
// Use acquireAndHandleTransaction to manage transaction lifecycle
err := s.acquireAndHandleTransaction(r.Context(), standaloneHandler)
if err != nil {
http.Error(w, "Transaction failed", http.StatusInternalServerError)
log.Printf("Error handling request: %v\n", err)
return
}

// Response upon success
w.WriteHeader(http.StatusOK)
fmt.Fprintln(w, "Transaction succeeded")
}

func main() {
// Database connection configuration
dbURL := "postgres://username:password@localhost:5432/dbname"

// Create a connection pool
dbPool, err := pgxpool.New(context.Background(), dbURL)
if err != nil {
log.Fatalf("Failed to create connection pool: %v\n", err)
}
defer dbPool.Close()

// Start the HTTP server
server := &Server{dbPool: dbPool}
http.HandleFunc("/", server.httpHandler)

log.Println("Server is running on :8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}
475 3433428
>>433395
Идея в том, что ты не держишь коннект со старта сервера, а берешь каждый раз новый из пула.

Промт для копилота:

write service in golang. use pgxpool. acquire new connection, start and commit/rollback transaction on each request in a separate function, then pass connection to the handler. handler is a separate function.

Код:

package main

import (
"context"
"fmt"
"log"
"net/http"

"github.com/jackc/pgx/v5/pgxpool"
)

type Server struct {
dbPool pgxpool.Pool
}

// acquireAndHandleTransaction manages connection acquisition and transaction lifecycle
func (s
Server) acquireAndHandleTransaction(ctx context.Context, handler func(context.Context, pgxpool.Conn, pgx.Tx) error) error {
// Acquire a new connection from the pool
conn, err := s.dbPool.Acquire(ctx)
if err != nil {
return fmt.Errorf("failed to acquire connection: %w", err)
}
defer conn.Release()

// Begin a transaction
tx, err := conn.Begin(ctx)
if err != nil {
return fmt.Errorf("failed to start transaction: %w", err)
}

// Execute the handler with the connection and transaction
if err := handler(ctx, conn, tx); err != nil {
// Roll back the transaction in case of error
if rollbackErr := tx.Rollback(ctx); rollbackErr != nil {
return fmt.Errorf("rollback error: %v (original error: %w)", rollbackErr, err)
}
return err
}

// Commit the transaction
if commitErr := tx.Commit(ctx); commitErr != nil {
return fmt.Errorf("failed to commit transaction: %w", commitErr)
}

return nil
}

// standaloneHandler is the request handler function
func standaloneHandler(ctx context.Context, conn
pgxpool.Conn, tx pgx.Tx) error {
// Perform transaction operations
_, err := tx.Exec(ctx, "SELECT now()") // Example operation
if err != nil {
return fmt.Errorf("transaction operation failed: %w", err)
}

fmt.Println("Transaction operation succeeded")
return nil
}

func (s Server) httpHandler(w http.ResponseWriter, r http.Request) {
// Use acquireAndHandleTransaction to manage transaction lifecycle
err := s.acquireAndHandleTransaction(r.Context(), standaloneHandler)
if err != nil {
http.Error(w, "Transaction failed", http.StatusInternalServerError)
log.Printf("Error handling request: %v\n", err)
return
}

// Response upon success
w.WriteHeader(http.StatusOK)
fmt.Fprintln(w, "Transaction succeeded")
}

func main() {
// Database connection configuration
dbURL := "postgres://username:password@localhost:5432/dbname"

// Create a connection pool
dbPool, err := pgxpool.New(context.Background(), dbURL)
if err != nil {
log.Fatalf("Failed to create connection pool: %v\n", err)
}
defer dbPool.Close()

// Start the HTTP server
server := &Server{dbPool: dbPool}
http.HandleFunc("/", server.httpHandler)

log.Println("Server is running on :8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}
476 3433438
>>433421

>Требуемая сложность О(n)


Как блеать?! У квиксорта NlogN

>журнал заселения отеля


Отсортировать по первой цифре. Идем по списку, на каждой итерации делаем счетчик +1. Если начало текущего интервала больше конца предидущего, делаем счетчик -1. Сложность NlogN из-за сортировки.

Вообще конечно пиздец. Ни слова про пулы и аутбоксы, дрочи литкод, литкод сам себя не подрочит. Потом получается яндекс маркет.
477 3433445
>>433428
Занятно, еще не видел такого, хотя в одном из тестовых даже pgxpool юзал(но так, наугад, без особого понимания, следуя требованию), спасибо
478 3433460
>>433438

>Как блеать?


С помощью алгоритма two pointers. ну как такое можно не знать?!

>Ни слова про пулы и аутбоксы


ага, по теории поверхностно поспрашивал, зато с этим говном чуть ли не пол собеса мурыжил.
479 3433463
>>433421
Элементы в квадрат я бы возводил с двумя указателями, отыскав для начала самое маленькое число в абсолютном значении, т.е. там получится 2n в худшем случае, что, вроде как, считается O(n)
Нашли число, возвели в квадрат - ставим на него два указателя - шагаем влево и вправо(с соответствующими условиями, чтобы не выйти за пределы списка и чтобы в нужный момент "выключить" указатель, который уже уперся в край и отдал число под собой)- сравниваем числа под указателями в абсолютном значении - меньшее возводим в квадрат и ставим в результат - двигаем указатель и т.д.
Вторая задачка - анон выше, вроде, решил, я бы не догадался на ходу
480 3433502
>>433460

>two pointers


Лол и правда. Туплю.
Осталось выяснить, нахуя это надо для шараги уровня ламода. Совсем обезумели со своим карго культом.
481 3433582
завтра собираемся в дискорд и решаем литкод
после этого идём изучать DDD и микропенисы
положняк ясен?
всем быть, добровольно-принудительно
482 3433769
>>433582
А паттерны? Паттерны забыл! Я когда изучил паттерн "Сратель" всегда стал срать за O(1) даже если съел n дошиков.
483 3433803
>>433769
Ты — живой пример паттерна "Наёбыш".
484 3433806
>>433769
Это не го вей. В го ты сначала лепишь из глины свой унитаз, потом садишься срать.
485 3433844
>>433090

>ddd


Что ты под этим имеешь в виду?
486 3433887
>>433844
парадигма проектирования и разработки
487 3433892
>>390005 (OP)
Посоветуйте плиз годных книг и ресурсов для изучения DDD и микросервисов.
488 3433895
>>433892
через часик заходи в дискорд я тебе расскажу
открою первую ссылку в гугле и мы будем разбираться что это за хуйня
а по факту - https://www.youtube.com/watch?v=VyUGi8_n66A неплохая но обзорная, начни с неё
489 3433935
>>433887
Ну как расшифровывается?
490 3433938
>>433935
Погугли или у ЛЛМ спроси.
491 3433946
>>433938
Пиздец пидор гнойны, первая буква - это data или domain? Я откуда должен знать, что ты там у себя пидорской голове думаешь.
492 3433948
>>433946
домейн, конечно же
493 3433965
>>433948
Тогда это ненужная хуйня для гнойных пидоров от пидораса фаулера. Вебмакакичам норм должно зайти.
494 3433971
>>433965
бигтех (а golang только там) требует ddd
если сильно пизданутые - ещё и clean architecture
щитоподелать, корпоративный код такой корпоративный
495 3435330
хули молчите то? давайте, делитесь знаниями по ddd + микросервисам
496 3435368
>>435330

>ddd


Пусть это говно останется в джаве, иначе скоро придется выкатываться из голенга в раст.

>микросервисам


Задавай вопросы.
497 3435521
>>435368
а как же проектирование и организация кода без ддд?

>Задавай вопросы.


какой наиболее популярный (а значит правильный и единственный/неповторимый) способ JOIN'а данных в микропенисах?
запрос к бд1 -> получение сущности где есть атрибут FK -> передача FK через кафку (Достаточно ли её скорости для этого, или, например, вебсокет будет лучше?) -> запрос к бд2 -> склеивание получившегося результата из 2 сущностей - это хороший подход или не особо?
498 3435797
>>435521

>а как без ддд


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

>как пукать


Какую задачу ты решаешь, посылая этот fk через кафку?
мимо
499 3435811
>>435521

>способ JOIN'а данных в микропенисах


Ты только что распределенный монолит. Так часто пишут новички, которые воспринимают слово "микросервис" буквально, а не как маркетинговый пиздежь. Правильно - это объединить эти два микросервиса в один и делать джоин внутри бд.
Алсо кафка - это входящий буфер, когда у тебя 100500 датчиков долбятся в одну ручку. Масштабирование на запись. Не надо пересылать сообщения через кафку, надо писать саги.
500 3435826
>>435811

>Не надо пересылать сообщения через кафку, надо писать саги.


А я сунул кафку прямо в домен без портов-адаптеров как шину событий и заебись.
501 3435970
>>435797

>структуру гошного проекта


Это (https://go.dev/doc/modules/layout) или (https://github.com/golang-standards/project-layout)?
Про дрочении на слои и дип знаю, поэтому сейчас без задней мысли делю всё на model/router/handler/service/repository, но это не go-way, как я понимаю?

>Какую задачу ты решаешь, посылая этот fk через кафку?


Ну как я понимаю, у каждого микросервиса - своя БД, иначе действительно монолит, вот и думаю, как связывать данные в разных БД.
>>435811
>>435826

>как шину событий и заебись


Думал она для этого и нужна, лол

>а не как маркетинговый пиздежь


Что не так с микропенисами? Для себя вижу 2 плюса:
1. Можно набрать любых бомжей с улицы для разработки - бизнес выигрывает от этого
2. В случае отъёба одного микропениса, остальные продолжают работать

Есть у кого пример типовой крудопараши на пару сущностей, которой вы можете поделиться?
502 3435993
>>435970

>делю всё на model/router/handler/service/repository, но это не go-way, как я понимаю?


Почему? Просто засунуть их в internal/ и сразу всё go-way
503 3436202
Вкатываюсь в Го, хочу написать api небольшое с базой данных и jwt токенами. Какую библиотеку взять в качестве основы? Щас сделал на mux по туториалу, но туториалу уже 6 лет. Какую библу взять для бд? только не орм не предлагайте, хочу писать sql
504 3436214
>>436202
открываешь cursor и копируешь туда свой пост
505 3436216
>>436214
AI хуетой пользоваться не хочу
506 3436225
>>436216
Это литерали задача для нейросети.
507 3436227
>>436225
Согласен, задача тривиальная, но моя цель изучить язык, поэтому без нейросетей
508 3436238
>>436227
Тогда какая разница, какие либы взять? Любые. Всё равно руками эти имплементации не пишут уже. Взял модель, взял интерфейс, и пусть курсор ебашит. Шаблоны учи и архитектуру, чтобы промты правильно задавать.
509 3436252
>>436238
Не знаю, как курсор в работе, но сайт у них тормозит просто пиздец. Такая-то реклама АИ кодинга, лол. Еще эту хуиту надо ставить на комп, а копилот работает из браузера. Я использую копилот для генерации кусков кода как образец, потом подгоняю их под проект, чисто на одном промте все сделать не получится.
image.png490 Кб, 736x721
510 3436301
Сложно ли вкатиться в Го со знанием сишки? Если я напизжу работадателю что знаю го, то потом не сложно будет его освоить.
511 3436553
>>436252
Про сайт курсора удваиваю, лагает просто пизда
512 3436559
>>436301
Челибос, добавь libmill и какую-нибудь либку с gc и вот ты уже на го пишешь лул.
image.png299 Кб, 736x736
513 3436571
>>436559
пасибо. тогда буду смело пиздеть. всё равно я так посмотрел по собесам - знание языка это последнее что спрашивают, везде спрашивают именно про технологии всякие
514 3436575
>>436571
А да вспомнил тут одну тему в 2020 вызвало бурление говн на тему собесов и знания говна: https://habr.com/ru/companies/oleg-bunin/articles/521582/
Почитай.
515 3436587
>>436238
Ты сломал все мои шаблоны. Я думал что на бэке крудошлёпством занимаются, собсно сам это и делал на ноде с пет проектами. Что же делают прогеры на бэке если не крудошлёпят?
516 3436591
>>436587

>Что же делают прогеры на бэке если не крудошлёпят?


Пока кабаны не прочухали – работают час в день, суют промты в курсор и не глядя кидают пр.
517 3436731
>>436575

>до меня добираются только резюме интересных кандидатов


Классика. Сначала тупые пезды отбирают улыбчивых волчар, потом лид в ахуе от кандидатов. Оставшиеся за бортом прекрасно знают и про алгебраические типы, и про утиную типизацию, но один из них был хмурый, второй проработал на одном месте 6 лет, третьему за 40 - красный флаг нет пути.
image185 Кб, 663x658
518 3436773
>>396537
Держи котика, анончик. Больше у меня пока нихуя нет.
image379 Кб, 995x1244
519 3436792
Анон, дай советов мудрых.

Мечтаю создавать свои проекты в web и около того. Есть несколько идей. Изучаю Петухон, нравится, получается. Но смотрел обзоры и сравнения - Го намного шустрее, даже чем даже FastAPI.

Как думаешь, хорошая идея не бросать Пиструн, а просто параллельно изучать Гошечку и юзать оба? На Пиструне сделать упор на анализ данных и простенький ML с шансом в рост. А на Го - всё остальное.
Нормальный план или хуйня?

Устраиваться на работу не мечтаю, потому что меня и так не возьмут. Упор на реализацию своих проектов, о которых давно мечтаю. Фронт пока отдам нейродебилам, незамысловатые вещи они делают вполне нормально, а потом может быть друга или компаньона найду на фронт.
520 3436797
>>436792
Твои проекты хайлоад? Ответ очевиден: если делаешь для себя, то пиши на том, что нравится. К конкретному языку привяжешься, если решишь на работу вкатиться, да и то выбирают по зепкам, а не потому что какой-то язык "лучше" другого, это холивары для даунов.
521 3436800
>>436797

>Твои проекты хайлоад?


Да, как минимум в теории. Я пробежался галопом по Го, на первый взгляд приятный язык.
522 3436809
>>436800
Ого, уважаемо. Тогда добро пожаловать
523 3436812
>>436731
Да там чисто набросочная тема, но так чисто для себя вопросы ок.

>тупые пезды отбирают


Согласен, баб нельзя допускать до серьёзного дела, слушать их тоже не надо, только во вред.
524 3436814
>>436792
Го - это параша как язык, писать на нём для души нет смысла, только если за деньги.
525 3436834
>>436809
>>436800
мужики аккуратнее работы НЕТ если у тебя нет опыта работы
526 3436836
>>436834
Факт. Ну так надо писать, что есть.
527 3436844
>>436836
откуда/как набраться знаний на мидла?
ну вот у меня получается создавать туду листы, я джун или ещё нет?
если да, то как стать мидлом?
528 3436856
>>436834

>работы НЕТ если у тебя нет опыта работы


Так я и не ищу работу для Go. Я хочу сделать своё. Будет это коммерчески успешным или нет - мне не слишком важно, точнее я об этом не думаю. Я просто чувствую, что должен. Поэтому подыскиваю подходящий инструментарий.
529 3436965
>>436844
Влететь на мидла по ГПХ. Уволят после месяца-двух, но когда влетишь второй раз, уже будешь в курсе.
530 3436969
>>436965
так там же на собесе всё сразу поймут, что я нихуя не знаю как ведётся настоящая разработка
531 3436972
>>436969
Собесы на го одинаковые как под копирку, везде одни и те же вопросы. Несколько раз сходишь и будешь пиздеть как сеньор
532 3436976
>>436792
Питон + джанго хорош для быстрой разработки. Если хечешь сделать в одно рыло проект, то лучше связки не найти. Там и фронтенд не нужен, в джанге есть свой шаблонизатор.

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

мимо питонист изучающий го.
Анонимный кот в пакете.mp42,7 Мб, mp4,
504x720, 0:14
533 3436999
>>436976

>мимо питонист изучающий го.


Можешь подкинуть материалов? Где и как учишься, может книжки какие, курсы-шмурсы?
Добра тебе заранее.
534 3437009
>>436999
Лучше Донована ничего нет + практика.
пуксреньк.mp41,3 Мб, mp4,
1920x1080, 0:01
535 3437013
>>437009

>Лучше Донована ничего нет


Не было. 10 лет назад.
536 3437171
>>436800

>в теории


Если рпс не 100к, то нах вообще парится о скорости языка
537 3437348
>>436976

>Го стоит брать когда высокие нагрузки и архитектура микросервисная. Пока у тебя нет 1000 запросов в секунду к твоему сайту про Го можешь и не думать. Смысла нет распылять силы на 2 языка.


Или пишешь системный сетевой софт ВЕБЧИК ПО УСБ https://github.com/OpenPrinting/ipp-usb
image.png56 Кб, 655x358
538 3437362
Есть такое тестовое на джуна.
Проблема - я нихуя не понимаю, что я должен сделать.

>получать результаты работы задач


Понимаю, что тестовое на проверку работы с горутинами и context.WithTimeout()
Но нихуя не понимаю, что делать дальше. time.sleep насовать как имитацию бурной деятельности или как?
539 3437445
>>437362
От тебя хотят вебхуки или хотя бы ручку, по которой можно запросить статус процессинга и результат.
Для тестов да, time.sleep?
540 3437451
>>437362
ну сделай отдельный пакет таск. там структурку Tasks и методы для нее: добавить задачу, получить статус задачи, отменить задачу, получить результат работы задачи.

ну и главный метод Ран который будет в бесконечном цикле брать задачи из очереди и запускать горутины. Еще предусмотри настройку макс задач параллельно.

Еще один пакет api в котором будет стандартное рест апи гошное. Ну а в пакете мейн просто вызовешь в отдельной горутине таск Ран и ниже свой апи сервис.

Имитировать работу тайм слип.

Не кислое тестовое на самом деле, это в какой конторе такое дают?
541 3437682
>>437362
Вот тебе промт для копилота:
write service in golang. service runs long tasks in a gorutine. use map and RWMutex to store task status. write endpoint to launch a new task. write endpoint to check task result by id.
542 3437730
Сап! Поделитесь опытом, кто хранил строки в синк пулле. Моя приложулька просто подыхает от невероятного количества аллокаций. Переиспользую все что можно переиспользовать. Кроме строк. Как их переиспользовать и не обосраться феерически?
543 3437750
>>437730
Хуйня конечно будет, потому что ты можешь только слайсы байт в пуле хранить и надеяться, что длины хватит. Но всё равно будет аллокация при конвертации в строку.
От конвертаций можно избавиться, если через рефлексию вытаскивать/создавать указатели на строки и работать с ними как на си, аренку собрать можно.
544 3437753
>>437750
Не, а если через unsafe? Делаешь байтики, пишешь в них что-нибудь. Дальше делаешь вот такую операцию (string)(unsafe.Pointer(&b)), чтобы получилась строка. Сбрасываешь длину слайса байтов и давай по новой.
545 3437758
>>437753
Так это и есть через unsafe, только тебе рефлексия + unsafe нужны. (string) работает над слайсом байт или рун, не над голым указателем (хотя я не пробовал конечно)
546 3437765
>>437730
Поделись, ради интереса, что у тебя за приложуха такая и какая нагрузка на нее, что тебе приходится так извращаться с оптимизациями?
547 3437799
>>437765
RTB-аукцион. На каждую ноду влетают тысячи запросов в секунду 24/7. Нишевые базы данных, огромное количество алгоритмов фильтрации трафика, нейронные модели. И всё это на каждый запрос.
548 3437809
>>437799
Может пришло время масштабировать систему, а не вешать весь трафик на один сервер? Суровое байтоебство актуально только в ембеде, где физически не засунешь в ракету больше железа. В клауде просто ставишь рядом еще одну стойку. Это дешевле, чем дрочить байты и в итоге все равно обосраться
549 3437811

>обычный консольный viewer для md файлов, твои зависимости https://github.com/charmbracelet/glow/blob/master/go.mod


>йоба-вебсервер nginx для сборки нужны openssl, zlib, pcre


Почему так нахуй, когда го свернул не туда?
550 3437812
>>437730
Не храни строки, храни байты.
Т.е. если прям совсем хочешь упороться по перфомансу храни слайсы массивов байт. Тебе пришла строка, скорее всего она будет UTF-8. Ты берешь из пула N массивов стандартной длинны M и пишешь туда строку и всё это пихаешь в свой кастомный тип. Ну и для этого типа надо реализовать базовые операции: сериализация в жсон, запись в лог и т.п. При деаллокации твоего объекта возвращаешь строки в пул или метод Close() возвращает строки в пул, последнее предпочтительней.

>>437809
Лейтейнси так забороть можно только на очень жирных серверах. Где памяти будет на порядок больше чем в текущем, так чтобы ГЦ вызывался очень редко.
551 3437814
>>437730

>Моя приложулька просто подыхает от невероятного количества аллокаций.


>RTB-аукцион. На каждую ноду влетают тысячи запросов в секунду 24/7. Нишевые базы данных, огромное количество алгоритмов фильтрации трафика, нейронные модели. И всё это на каждый запрос.


Вангую тут бы просто зарешал незумероподход на одном современном CPU.
552 3437818
>>437799
Я чот такое видел только во всяком hft, но там один C++ кругом.
Не уверен, что думаю, что на ебле со строчками ты мало что выиграешь в перфомансе. Про unsafe тебе сказали, можешь еще в C-биндинги и CStrings копнуть, всяко попроизводительнее будет чем гошный string.
553 3437847
>>437753
>>437812
>>437818
Аноны вы в какой сфере таких знаний набрались? Дрочу ваще ойти уже почти два года, но ощущуение такое что предела нет. Что учить чтобы знания в ойти полезными были?

Для себя выделил полезными знания в области компьютерных сетей, адресация, сетевые протоколы
554 3437848
>>437847
Тебе нужны просто знания или полезные знания? Если просто знания иди учи свои сетевые протоколы. Если нужны полезные знания тебе нужно решать проблемы бизнеса.
Крик отчаяния.mp4430 Кб, mp4,
720x720, 0:07
555 3438299
>>437847

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


Такая же хуйня, бро. Только думаю, что захватил хотя бы основы, хотя бы половину основ, но нет - незнаком буквально КАЖДЫЙ НАХУЙ ТЕРМИН.
Такое ощущение, что нейронка в которой я нахожусь просто издевается надо мной: только-только продвинусь, она на ходу выдумывает целую гору непонятной хуйни, превращая всё это в снежный ком.
кролик играет на коте.mp4558 Кб, mp4,
720x716, 0:08
556 3438307
Есть кто делает фронт из под go?
Делают стартапик помочь некому, а сам лезть в js не нахожу в себе сил и жизненных способностей.
Или это тухлая тема и все равно придется выдрочить хотя бы базовый js с реактом?
557 3438330
>>438299
Идёшь и гуглишь каждое слово ебаное.
Но вообще самое верное кмк - искать любую работу за дошираки лишь бы начать решать реальные задачи. В офис ходить КРАЙНЕ желательно. Иначе охуеть можно.
558 3438336
>>438307
Шаблонизатор templ гугли, там js не нужен
559 3438361
>>438330

>искать любую работу за дошираки лишь бы начать решать реальные задачи


да я блять сам дошираки готов давать только возьмите на работу
мимо магистрант 1 курс нет опыта нет работы пиздос
560 3438533
>>438307
Реакт пишет нейросеть.
561 3438573
Господа, просите за нубские вопросы. Если я хочу делать Андроид и иОС аппки к моему веб-приложению, у которого уже готова вся инфраструктура, то в какую сторону мне смотреть?
Я хочу сделать так - создать какую-то фронт апку, вся логика которой будет на api, а в телефоне чисто визуальная болванка. Как реализовать, куда смотреть?
562 3438585
>>437847
Писал лоу лейтенси трейдинг в банке. Потом в телекоме процессинг кол рекордс.

Но вообще у Го хуевый ГЦ. У джавы лучше.
563 3438598
>>438585

>у Го хуевый ГЦ


Что такое ГЦ?
564 3438609
>>438598
Городской Центр
565 3438610
>>438598
garbage collector
566 3438622
>>438585

>лоу лейтенси трейдинг


>на го



Да где такое пишут-то? Я что не видел - один C++ везде. Перфоманс, лок-фри, ручное управление памятью, вся хуйня.
567 3438632
>>438622
Переписал лоу-лейтенси сервис с крестов на го. Полёт нормальный.
568 3438634
>>438632
Я в основном трейдинг и hft подразумеваю.

>с крестов на го



Ядро/МТС что ли какое нибудь?
569 3438788
>>438622

>>на го


>Да где такое пишут-то?


Так он и не на го был, а на джаве. Но подходы к уменьшению гц одни и те же. один немецкий банк
147534170437a92202e6ab.jpg144 Кб, 1024x768
570 3438894
Накидайте тестовых заданий по гошке. Хочу практиковаться.
То, что чуть выше анон скидывал уже сделал.
571 3438941
>>438894
Покажи для начала что сделал.
572 3439043
>>438941
Кек, сам делай свое тестовое.
image120 Кб, 500x624
Есть вопросик 573 3439085
GOспода, ну вот вы пишите свой пердолинг на гошечке, тут всё понятно. А бизнес-логику на чем пишите, тоже на нем?
574 3439087
Кто нибудь релоцировался в ЕС(не Кипр) на гошке?
Какие компании в принципе из тех кто еще готов делать visa sponsorship - используют go?

Подумываю уже обратно на джаву камбекаться, все немецкое ойти почти на нем написано походу.
575 3439110
>>439085
Конечно на нём, а что?
image689 Кб, 585x944
576 3439132
>>439110
Но ведь бизнес-логика может быть очень сложной и запутанной. Причем с постоянными изменениями и упдейтами от кабана. Декораторов нет, ООП нет... Нет, я не спорю, без них можно обойтись вполне, но мне кажется, что именно бизнес-логику писать на Go, особенно поддерживать ее - это такое себе удовольствие на любителя обмазываться говной. Пруф ми вронг.
577 3439142
>>439132
Дык лучше это делать на го, где значительно меньше лишних абстракций, чем, например, в джаве, шарпе и современных плюсах.
578 3439146
>>439132
Кейс-бай-кейс, братан. Здесь нет смысла рассуждать сферовакуумными теориями. Го не может плохо подходить под требования конкретного бизнеса – ну ок, пусть пишут на другом.
Но кмк такие ситуации исключительно редки, скорее просто архитекторы говно. Вон все маркетплейсы на Го сидят, уж где может быть ещё больше постоянных апдейтов от кабана с требованиями сделать всё позавчера.
579 3439149
>>439146

>Го не может плохо подходить


Го может, конечно
фикс
580 3439165
>>439132

>Декораторов нет


Передача функции как аргумента в другую функцию чем тебе не декоратор

>ООП нет


В микросервисах ООП не нужно особо, там копмозиции хватит. А большие сложные монолиты уже стараются не делать.
581 3439217
Нахуя было добавлять логер в стандартную библиотеку если в нем даже уровней логирования нет? Это даже звучит абсолютно
582 3439240
>>439217
Ну так пользуйся тем, в котором есть уровни логирования. В чём твоя проблема?
import "log/slog"
583 3439310
мужики, поясните
подал резюме, написал проджект менеджер, начал сразу спрашивать про желаемую зп, тестового нихуя не было
это норм или чё за хуйня вообще?
мимо без опыта работы
Пистон восторг.webm8,3 Мб, webm,
640x360, 1:03
584 3439314
>>439310
Говори, что готов работать бесплатно просто за предоставляемое тебе право убираться в офисе после работы.

GOвна уже слишком много - бигтех раздул хайп вокруг GO до такой степень, что даже дристуны, которые не видели на своих проектах и 10k rps начали срочно переходить на GO. Мне постоянно реклама с goвно-курсами и goвноменторством идет. Как в 2021 в Пиструном.
585 3439330
>>439314
такой диалог произошёл
image47 Кб, 700x466
586 3439347
>>439330
Наверное это нормальный диалог. Он(а) явно изменяет тебе с другими собеседует и других кандидатов, чтобы потом кабанчику предоставить отчет, как много и тяжело он(а) работал(а).

Можешь пожалуйста поделиться инфой как ты изучал Go. Что читал, какие курсы, что смотрел. Из того, что считаешь годным, кроме го тутор конечно.
image.jpg78 Кб, 700x463
587 3439349
>>439314
поздно, мы уже перекатываемся в гошку из своих перегретых петуховенов\пхпись. А кончится гошечка станем педерастерами
588 3439351
>>439347
миллионы видосов на ютубе - мастхев, русские очень годно пилят контент по голангу, советую Николая Тузова и в принципе всех нищеёбов с 500 подписчиками
Алсо, ChatGPT ОЧЕНЬ хорошо рассказывает про голенг, просто охуенно
Если можешь в ангельский - пирать курс (fulltimegodev) от AnthonyGG и смотри его видосы на ютубе, их там дохуя, он конечно в край ебанутый - но годный мужик
589 3439356
>>439351
>>439347
алсо, читал - Джон Боднер - Идиомы и паттерны проектирования Golang
хуйня/10, для новичка нихуя не понятно
590 3439359
>>439132
К сожалению, ооп не сильно помогает со сложной логикой. По моему опыту, люди сверху только своих выдумок добавляют в проекты.
591 3439365
>>439351

>советую Николая Тузова


Этот питуз вечно впрягается за жидбрейнс и банит всех, кто хоть что-то в их сторону не положительное скажет. И хвалится тем, какой он казах крутой.
Тоже ебанутый, короче.
592 3439367
>>439365
про мапу и планировщик он заебись объяснил %%мапу после этого видоса поменяли, если не ошибаюсь)

>жидбрейнс


залупа, на время обучения их автокомплит = хуета, на работе - заебись
а ещё у них тема говно пиздец, а новый ui вообще до связи
593 3439372
>>439367

>залупа, на время обучения их автокомплит = хуета, на работе - заебись


На чем пишешь? VSCode?
594 3439376
>>439372
конечно
во время обучения - заебись, заставляеть писать код самому + самому запускать
595 3439391
>>439110

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


Просто приходится много писать, много похожего кода. Зато он достаточно прямолинейный и читается легко. Хотя конечно надо следить за чистотой кода и чтобы не злоупотребляли интерфейсами.

Но в целом >>439146

>Кейс-бай-кейс, братан.


прав. Случаи бывают разные, что за система, что за разрабы и т.п.
596 3439407
>>439391

>Зато он достаточно прямолинейный


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

Она не только следит за типами но еще и мешает писать универсальный Goвнокод который потом фиг поймешь\изменишь.
597 3439433
>>439407
Да уже дохуя вкатилось петухов, которые требуют от других писать на дженериках.
598 3439553
>>439433
Что плохого в дженериках? Просто не надо везде хуярить T any, а интерфейс в констрейн ставить
599 3440818
>>435521

>какой наиболее популярный (а значит правильный и единственный/неповторимый) способ JOIN'а данных в микропенисах?



никак
микропенисы должны быть отдельными bounded context как говорят в твоем любимом ддд
то есть никаких транзакций и джоинов между баундед контекстами
601 3441089
>>440818
один микропенис работает с пользователями, другой с заказами
как найти заказы определённого пользователя тогда?
602 3441174
>>441089
В смысле - как?
Дергаешь из 1 сервиса 2ой по user_id ручку getOrders - получаешь заказы юзера. Во 2 сервисе заказы лежат в БД в привязке к юзеру.
image971 Кб, 1516x790
603 3441273
>>441089
Бро, даже я, будучи макакой рудералис, понимаю. А ты точно программист?
604 3441292
>>441174
вот меня именно передача user_id в другой сервис интересует
kafka как шина событий? банальный запрос по rest? websocket нахуй?
>>441273
я токо вкатываюсь, обещаю разобраться и понять
605 3441296
>>441292
От сценария зависит.
Если что-то типа "юзер заходит на страницу посмотреть свои заказы" - то зачем тебе асинхронное API? Шлешь обычный http запрос на свою ручку в сервис который занимается заказами - он делает выборку по user_id из таблицы заказов и отдает в ответ.

Асинхронное API нужно для каких-то операций которые занимают длительное время, могут выполняться в фоне и которые можно и нужно ретраить по необходимости.
606 3441517
>>441292
Пишешь сагу, которая параллельно вызывает UserService.getUser(userId) и OrderService.getOrders(userId)
Сервисы UserService и OrderService ничего друг про друга не знают.
Шина событий не нужна, это неправильная архитектура.
Обновить тред
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

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