С чего начать:
- В обязательном порядке проходим "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)

Ну давай покормлю тролля
Во-первых, отдельная структура под передачу инта это сука мощно, нужно добавить конструктор для этого "конфига" и будет вообще заебись
Во-вторых, какая в сраку истинная случайность метод, это даже не случайность, хуйня из под коня
>Во-первых, отдельная структура под передачу инта это сука мощно, нужно добавить конструктор для этого "конфига" и будет вообще заебись
Кто же виноват, что в говне нет дефолтных параметров. Приходится такие структуры изобретать.
>Во-вторых, какая в сраку истинная случайность метод, это даже не случайность, хуйня из под коня
Не для тебя написано, хам.
Надо:
- выделить интерфейс Randomizer, а реализация переименовать в RandomizerImpl
- создать RandomizerFactory, куда передавать
type RandomizerSupplier func(config RandomizerConfig) Randomizer
- создать SystemRandomizer который будет использовать системную реализацию
- и конечно MockRandomizer для тестирования
- добавить комментарии к коду
// Randomizer возвращает случайное число
Вот тогда это будет нормальный Java код.
Подрывом обезумевшего от корпоративной культуры фабрикодекорирующего джаваскуфа удовлетворён
Да напиши, мне интересно.
Почему в го не используются всякие паттерны? Они же вроде относятся к бек-разработке В ОБЩЕМ?
Почему абстрактная фабрика, например, это плохо?
Почему Clean Code - это плохо?
я вкатун, джаву знаю на уровне лаб
Все там используется.
Достаточно посмотреть на внутреннюю библиотеку, где одних только методов для конструирования Request несколько штук. И на то как в go предлагается работать с бд (никак, вот тебе интерфейс - пиши свои имплементации сам).
Среди гошников очень много фанатов минимализма и нездорового KISS'а (особенно видно по реддиту, где на просьбу посоветовать ORM или фреймворк обязательно набежит чмо и начнет вонять что ничего для го не надо кроме встроенных функций). Но их мнение не учитывается, мало ли че петухи орут.
func getRandom() int {
return 42
}
Двачую. Много долбоебов, для которых го - это не джава. Они и код пишут, чтобы было максимально не как в джаве. В итоге снова и снова делают кривой спринг, у каждого свой.
Пока не дошли руки дописать валидатор этого """ГСПЧ""", но по стилю могу сказать:
- не надо использовать структуру для передачи одного параметра
- NewRandomizer возврашает структуру по значению, а не ссылку на неё, тут сразу несколько проблем:
-- GetXxx() не будет обновлять previous
-- будет копироваться мьютекс, чего делать нельзя
- методы принято называть без Get/Set префиксов
- подозреваю что генератор говно и не даёт нормальный результат, но это не точно
Что надо менять:
- сделать публичный интерфейс и приватный тип. Таким образом создать генератор можно будет только с помощью метода, который будет возвращать ссылку и инициализировать поля
- создать пару New методов, с изначальным значением и без в этом случае инициализировать самим
- назвать метод Int()
- по желанию заменить мьютек на атомик или вообще убрать его
>не надо использовать структуру для передачи одного параметра
а как же depency injection и прочая залупа? мы же условный репозиторий передаём в сервис и больше нихуя
Автор той хуйни выше с New. Приятно услышать критику, спасибо.
По замечаниям есть комментарии и вопросы.
>не надо использовать структуру для передачи одного параметра
Идея была в том, чтобы позволить инициализировать без передачи параметров. Написал хуево, все равно пришлось передавать конфиг. Но зато previous можно не передавать.
Из альтернатив в го есть только костыль с foo(value... int), но мне он эстетически не нравится. Питоновского аналога с foo(value = 0) нет.
>NewRandomizer возврашает структуру по значению, а не ссылку на неё, тут сразу несколько проблем:
>-- GetXxx() не будет обновлять previous
>-- будет копироваться мьютекс, чего делать нельзя
Это действительно проеб. И открытие для меня, что мьютексы копировать нельзя. Насколько я понимаю ты о случае
rand1 := NewRandomizer(config)
rand2 := rand1
Но вот дальше я не очень понимаю что именно сломается. Можешь привести пример когда будет паника?
>- методы принято называть без Get/Set префиксов
Согласен. Привычка.
>Что надо менять:
>- сделать публичный интерфейс и приватный тип. Таким образом создать генератор можно будет только с помощью метода, который будет возвращать ссылку и инициализировать поля
Чтобы пофиксить потенциальные сложности с копированием мьютекса или еще что-то? В целом согласен.
>- создать пару New методов, с изначальным значением и без в этом случае инициализировать самим
Да, это я хотел делать, но было слишком лениво конфиговский New заворачивать еще раз.
>- назвать метод Int()
Согласен.
>- по желанию заменить мьютек на атомик или вообще убрать его
Покажи пример как менять на атомики. Все что я видел - выглядит как клоунада с кучей оберток, так как я не могу заблокироваться пока считываю, произвожу математику и записываю обратно. Мьютексы очевиднее работают (хоть и дороже).
Автор той хуйни выше с New. Приятно услышать критику, спасибо.
По замечаниям есть комментарии и вопросы.
>не надо использовать структуру для передачи одного параметра
Идея была в том, чтобы позволить инициализировать без передачи параметров. Написал хуево, все равно пришлось передавать конфиг. Но зато previous можно не передавать.
Из альтернатив в го есть только костыль с foo(value... int), но мне он эстетически не нравится. Питоновского аналога с foo(value = 0) нет.
>NewRandomizer возврашает структуру по значению, а не ссылку на неё, тут сразу несколько проблем:
>-- GetXxx() не будет обновлять previous
>-- будет копироваться мьютекс, чего делать нельзя
Это действительно проеб. И открытие для меня, что мьютексы копировать нельзя. Насколько я понимаю ты о случае
rand1 := NewRandomizer(config)
rand2 := rand1
Но вот дальше я не очень понимаю что именно сломается. Можешь привести пример когда будет паника?
>- методы принято называть без Get/Set префиксов
Согласен. Привычка.
>Что надо менять:
>- сделать публичный интерфейс и приватный тип. Таким образом создать генератор можно будет только с помощью метода, который будет возвращать ссылку и инициализировать поля
Чтобы пофиксить потенциальные сложности с копированием мьютекса или еще что-то? В целом согласен.
>- создать пару New методов, с изначальным значением и без в этом случае инициализировать самим
Да, это я хотел делать, но было слишком лениво конфиговский New заворачивать еще раз.
>- назвать метод Int()
Согласен.
>- по желанию заменить мьютек на атомик или вообще убрать его
Покажи пример как менять на атомики. Все что я видел - выглядит как клоунада с кучей оберток, так как я не могу заблокироваться пока считываю, произвожу математику и записываю обратно. Мьютексы очевиднее работают (хоть и дороже).

> -- GetXxx() не будет обновлять previous
С этим я не согласен, кстати. У меня в коде Pointer Receiver, все он обновляет.
Код обновил, вынес в отдельный пакет чтобы анон мог использовать.
>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-

ну мужчины блять, по 40 рублей то скиньтесь чё вы это самое
о существовании модели акторов с разделяемой памятью
о динамической линковке
об обобщенном программироние и о о функциях map, filter, reduce
и вообще судю по убожеству первого пейпера (и это-то после 30 лет опыта в белл лабс!) выдал какой-то полуси с корутинами и в дизайне яп не особо рубит
если бы не Дмитрий Вьюков, поднявший в свое время ГЦ голанга из той параши, где он находился, язык так и остался бы никому не нужным
Хуеватая система импорта, зашивающая в имя пакета путь в рептозитории, а если надо обратиться к защищенной репе, то скреды прописать ЯВНО В СТРОКЕ ИМПОРТА
ВНЕЗАПНО nil, переданный как значение в тип unterface{} перестает равнятся своему же значения
Язык объективно хуевый, чего стоит одна система типов, требующая постоянных подсказок в виде явного объявления типа над функцией. Вывод типов? Ленивые вычисления? Автор так и остался в Bell Labs середины 70-х.
Нет постоянного стандарта на язык, а только какие-то "отчеты".
И многое другое!
Язык говно конечно, но ОП-хуй попытался приплести вообще все что можно, вместо реальных проблем.
У акторов нет нормального решения для DeadLetter queue, в телекоме может и похуй, let it fail, но в финансах и много где еще так нельзя.
Динамическая линковка не нужна 99.9% приложений. А кому нужна, есть
Обобщенное программирование, с завозом дженериков появилось, хоть и кастрированное.
Импорт пакетов тупо делался под реалии google3 если вы понимаете о чем я.
Даже новая инкарнация ЖопоСкрипта требует обявления типов у функции. Даже душители удава, завезли к себе типизацию.
Ленивые вычисления кроме ФП нигде особо не используются. И в целом, как концепция ОК, а в реальном мире требует подготовки, чтобы правильно пользоваться.
Щас работаю формашлепом, как говорил выше, хочу стать крудойобом. Как вкатиться в GoGo и получить первую РАБотку.
Я не пойму, у тебя перманентно руки кривые или что? Ты перекатывать нормально умеешь вообще? Ещё программистом собрался стать...
Тег кривой был. Я попросил модера поправить. Спасибо ему, что оперативно поправил. В прошлых тредах ОП намерено искажал этот тег, в итоге ни один тред невозможно найти по тегу. Ещё он никогда не оставляет пост на перекат в старом треде, в итоге часть людей сидят там, а кто-то уже здесь. В общем, занимается умышленным вредительством.
Уже конец дня, а так никто и не выложил
Дай Бог тебе здоровья!
братиш я живу на 12к в месяц мне бы хоть что то получать и в принципе ВКАТИТЬСЯ
есть middleware для работы с CORS
теперь надо ещё одно делать для JWT (то что пользователь залогинился) и доставания айди из токена
что делать с несколькими middleware?
То есть? Ну последовательно их включаешьв роутер. Очередь там fifo т.е какую мидлварю воткнул впервой - отработает первой.
app.Use(checkJWT())
app Use(checkCORS())
pidarGroup:= app.Group("/pidar")
PidarGroup.Use(checkPidar())
Как вам 1.24? Щупали контекст для тестов?
Индекс вката на го всего 5,35%, поэтому вряд ли все вкатились. Лично я читаю книжку новую по го.
И чо как там? Я Полине PL go и 100 ошибок ничего по гошке не смог осилить. Какое то все душное. Лучше второй раз sicp прорешать
Я только первую главу прорабатываю. В выходные попробую побольше продвинуться. Неделя просто сложная вышла, на работе заставляли работать.
С опытом работы на заводе?

Хочу вкатиться в гошечку. Как думаете, у кабана будет катироваться мой опыт? Или сразу же сольют, так как почти нет опыта в гошечке?
Давай к нам в Авито в DBaaS. Как раз на го пишем обвязку вокруг постгреса, инфру, сайдкары и pgbouncer
Уметь кодить, писать тесты, знать нюансы области(это уже зависит от команды куда идешь), база по БД - дефолт требования
По процессу примерно так - устный скрининг на дауна(типа отличить tcp от udp, acid, простые вопросы по гошке), лайвкодинг(2 легко-мидловые задачи, достаточно решить на литкоде пул с тегом Авито(там 8 задач) + погуглить на гласдоре, там примеры задач есть), затем подготовиться к интервью по языку(язык выбираешь тот который лучше знаешь, можешь пройти например на питоне, даже если работать будешь на го) - на нем пара задачек и устные вопросы, затем опциональная секция сисдиза уровня спроектируй маленький кусочек авито или твиттера(это если на сеньора претендуешь), затем финалка с тимлидом(тут как раз во всю можешь покрасоваться то как ты хорошо знаешь предметную область с базами)
Спасибо за развернутый ответ. Я ближе к маю уволюсь с текущего банка. Чуток почилю, параллельно обучаясь. А далее буду ходить по собесам. Пока собираю учебные материалы.
DWH отупляет немного. У нас нет не тестеров, ни техлидов, даже ПМ нет. Ходишь сам как гей-шлюха собираешь требования. Заебало невыносимо. Надо премию получить и ливать.
Из DE я хочу выкатится. В DE уже 8 лет. Но на джуна тоже идти зашквар чёт. Я сейчас сенька тут. Хотет мидла го.

Софты норм, пришлось за 3 года сеньки прокачать, так как выполняю ещё неформальные функции и.о. техлида команды.
Спасибо, анонче. 4 часа уже прохожу тур по го. Далее хочу переписать свой питонячий бот телеги на го. Времени мало, надо за 2 месяца начать осиливать.
почему именно ты выбрал Go и первый ли это твой язык?
много где натыкаюсь на него, но также же хейт тоже вижу
>Еще в системщину можно
Как Go в этом плане? Слышал, что на нем малвари пишут, но не могу понять почему именно он, а не плюсы/пидораст?
Нельзя, го там только обертка для консольных команд, а ядро написано на си.
Влажные фантазии. Ветерок го уже затихает, скоро он станет в один ряд с рельсами
> один ряд с рельсами
ебать
я только начал С# изучать,лол
и че в РФ он больше не актуален?
а что актуально тогда?
в какой язык не плюнь, везде (этот старый, это слишком новый и так далее)
Раст конечно же.
а на c# есть проекты в РФ, ну я имею ввиду веб-разработка, бэк?
или его только за рубежом юзают
Всякие аналоговнеты пишут. Гугли вакансии, лол. В ДС точно что то есть.
Да учите вы го если нравится. Спрос заметно растет, у меня на родной галере раньше сплошная нода была, сейчас практически все проекты уже на го идут, ищут ещё разрабов даже, рук не хватает. Вакансий тоже порядочно даже на хх.рю. Единственное, не представляю как искать первую работу, т.к джуны гошники не востребованы, хотят мидлов.
>ищут ещё разрабов даже, рук не хватает
Готов пойти в к вам джуном за еду. Еда, естественно, с меня.
Как будто бы вкат в го идит исключительно через вакансии, где го это смежный язык. Часто вижу - желание изучать го в ваках дата инженеров, например.
Да и в целом сейчас в ИТ не хотят вкладываться в джунов. После известных событий горизонт планирования минимальный. А джуны это инвестиция вдолгую.
Лучше бы накрутил опыта и устроился туда же на 300к/сек
Да, для вкатунов неприятно. На джуновкую ваку конкурс в 10-20 раз больше чем на мидловскую. На сеньерскую ещё меньше.
Если цель найти работу, то проще будет в питоне, пхп или джаве. За сишарп не скажу, мне кажется там мало вакансий. Го можно рассмотреть как второй язык для последующего переката. Либо искать вакансию с фирмой, которая перекатывается на го, и там в процесс внутри фирмы перекатиться.
А целом удваиваю, хотел ровно то же написать, разве что от вката в пыху я бы наверно держался в 2025 подальше. С какой-нибудь джавой у разбитого корыта не останешься.
Дак пхп надо выбирать не вордпресс, а нормальный фреймворк типа ларавеля или симфони.
дошёл до ларавел фреймворка, изучив ООП и базу PHP, задумался уйти на Go. Норм вариант? Живу в ДС-2, поэтому тут есть всякие стажировки/junior позиции, на которые попасть можно, как мне кажется. Опыта программирования нет, но как-то хочется сразу зарабатывать больше 100к, чем в пыхе сидеть год-два на 50–60к. Будет тестовое через месяц, нужно будет прорешать алгосы, GPT сказала, что вполне реально за месяц задрочить алгоритмы и изучить Go на уровне, чтобы решить задачи. А в случае чего можно просто в GPT скормить задачки и на собесе на стажировке отвечать за реальные знания о языке, которые ты получил за месяц + всякие видосы с собесами перед этим просмотреть. План говно или рабочий? Либо лучше дальше познавать ларавел?
>GPT сказала, что вполне реально за месяц задрочить алгоритмы и изучить Go на уровне, чтобы решить задачи
Угар. Ты всему веришь, что угадыватель букв пишет?
>сразу зарабатывать больше 100к
Только с накруткой опыта
>в пыхе сидеть год-два на 50–60к
Чем плохо? Хоть программировать научишься
изначально и планировал в пыхе крутить, но как будто набирают охотно даже на junior позицию сейчас на go, поэтому и задался вопросом. Например вот вакансия (свежая): https://www.aviasales.ru/about/vacancies/3909357
>но как будто набирают охотно даже на junior позицию сейчас на go, поэтому и задался вопросом. Например вот вакансия (свежая): https://www.aviasales.ru/about/vacancies/3909357
Это для тех, у кого уже есть 1-2 года опыта работы на го (или в айти в принципе). Меня вот недавно выпиздили на мороз из моей конторы, сейчас отправил в авиасейлс резюме на эту вакансию. У меня 3 года опыта кста.
>на мороз
Ты не из Казахстана часом?
у нас тут недавно одна компания жидко дристанула себе в штани, решив запилить маркетплейс. Непонятно зачем туда сунулись, учитывая что их мобилка (суперап с остальными продуктами) - лагучий не оптимизированный кал. Ну и по итогу на мороз выкинули продукт команды, ответственные за маркетплейс
также можно накрутить и на го 1-2 опыта. сочувствую, анончик, прорвёшься. У тебя 3 года опыта в го или пхп?
в общем твой главный аргумент, что не нужно идти в го, т.к. нет реального коммерческого опыта? даже на стажировку, если задрочить перед этим алгосы как не в себя за месяц?
Не дописал. На предыдущей работе выпиздили на мороз, сократив целый отдел, последняя зп в апреле а потом нахуй шлют. Опыта 3 года, из которых 2 года чисто фронт макака и 1 год фуллстак, но скорее бэкэнд разраб. В основном хуярил всякие парсеры, делал пару микросервисов
У меня 3 года опыта в го. Уволили с текущего места работы за лоуперфоманс.
>>404137
>в общем твой главный аргумент, что не нужно идти в го, т.к. нет реального коммерческого опыта? даже на стажировку, если задрочить перед этим алгосы как не в себя за месяц
У меня никаких аргументов особо и нет. Если нравится го, то подавайся на стажировки и все открытые вакансии, это самый рабочий вариант.
Но на позиции младших разрабов, джунов, где просят 1-3 года опыта как правило приходят опущи вроде меня, которых выпиздили с прошлых мест работы и вероятнее всего ты на многих вакансиях будешь проигрывать конкуренцию другим челикам с реальным опытом.
Спасибо, анон. Буду думать по поводу го, а то грустно прощаться со знаниями пхп и ооп +2 месяца
Как могут уволить за лоуперформанс? В трудовом законодательстве же нет такого пункта.
Если напугать корзиночку юристом и судом, то он сам убежит
Вот именно что никак. Но напугают статьей и вкатун с тряской побежит ПСЖ писать. И будет благодарить барина-кабана что не уволил его по статье хотя его и невозможно было так уволить.
Ты прав, в ТК такого пункта нет.
Уволили так: в прошлый четверг мне мой тимлид поставил встречу 1-1, типо на поговорить. Я думал, что все ок должно быть, никаких негативных сигналов от него не поступало. К тому же я в этой конторе почти 3 года работаю. Но оказалось что нет - на встречу пришла HR и сказала что до конца марта уволят по соглашению сторон с двумя окладами. Причина увольнения - долго делал таски и мой уровень не дотягивает до уровня команды. Я обомлел и даже ничего возразить не смог. В итоге полча просидел и слушал ее 30 минут, потом поблагодарил за встречу и отключился. С сегодняшнего дня начал поиск новой работы, на старой пока еще числюсь, но скоро буду уволен.
Можешь зафиксировать всё и идти в суд, говорить, что вынудили подписать заявление. Но раз ты "сидел и молчал", то всё уже.
Еком тех/самокат/купер?
Уже даже самые отсталые хрюши требуют выписку из электронной трудовой и 2ндфл
Пидорасы.

Кстате, в трудовой стэк не пишут. Можно же напиздеть что на предыдущей работе ебашил Го? Никто не проверит
Можно
Все хрюши просто до техсобеса требуют выписку и кидают в игнор, если не скинуть или отморозиться или левый pdf договор скинуть?
Как часто тебя или других анонов просили это делать? И есть ли вообще в этом треде крутанувшие вкатуны?
если умирать - то умирать достойно.
я вкатываюсь в го и ищу свою первую работу без опыта работы на голенге.
никакой джавы/пыхи, сразу в то, что нравится.
не знаю, от джавы прям сильное отторжение, на го просто приятнее, не знаю как описать.
возможно, язык всё же это просто инструмент и всё такое
но что делать? если нравится язык, то на нём и писать хочется
У меня было сильное отторжение от пыхи. Перебежал в го. Не жалею ни секунды, доволен как слон.
Пролистал много вакансий и в целом нравится чем голангисты занимаются. Нет упоротого ООП. Я именно про ООП когда его суют когда он нахуй не нужен.
Ну и в целом протоколы, сеть, базы, контейнеры. Это все интересно и за это платят.
ООП в 90% случаев не нужен. А так гошники обычно тем же бэкендом занимаются, только без дроча фреймворков.
>сказала что до конца марта уволят по соглашению сторон с двумя окладами
А ещё рассказывают, про логику у программистов.
УВОЛИТЬ по соглашению сторон - НЕЛЬЗЯ. Ты САМ соглашаешься на это. Да на тебя надавили и ты испугался, но это ты согласился. У тебя после созвона была возможность взять себя в руки и не подписывать соглашение.
Я не он, но продолжать работать в коллективе где тебя уволить хотели не очень приятно
вот недавний пост анона из qa, сейчас у всех так полагаю https://2ch.hk/pr/res/3336387.html#3401827 (

> была возможность взять себя в руки и не подписывать соглашение.
Ок, а дальше какие действия? Требовать не 3 оклада, а 5? В чём смысл-то? Меня вот за 2 месяца предупредили + 3 оклада дать должны.
Ну так а хуле хотели, волчары позорные. Нет бы залетали на джунов, ну мидл1 - максимум. Так я раза три вычпнул с собеса дебилов, которые на сеньку пришли. В резюме стек, что хоть сейчас в гугл забирай, а на банальных задачах/вопросах просто рассыпались. Жадность фраеров губит, кек.
>на банальных задачах/вопросах просто рассыпались
Давай примеры. Опять душные глубины кишочков, которые только самодовольный красноглаз на собесах знает?
1 сломался на джуновско/мидловской задаче с мутексами и рейс кондише. Чел не знал что нельзя передавать мутекс по значению
2. Сломался на оффсет коммите Кафки. не смог назвать даже варианты. При том, что по его словам он на прошлой работе внедрял кафку
Чел ты бы еще про литературу серебряного века вопрос задал. У тебя литералли вопросы для надроченной на кишках ллмки, а не для живого человека.
Ясно. Ну мне как то не хочется брать в команду людей, который будут автокомитить в кафку и проебывать сообщения или чтобы у меня в проде рейс кондише стрелял.
Ты же можешь с любым сбродом работать, меня эт не ебет
Вопрос про синтаксис языка и взаимодецстви с брокером - это уже вопросы про кишки? Троллишь тупостью?
> мне как то не хочется брать в команду людей
Во-первых, ты один решаешь, кого брать, а кого нет? Во-вторых, имплаинг у вас там очередь за забором.
Ну если я провожу тех собес и даю свое заключение по кандидату - да, это моя ответственность и в т.ч от моего слова зависит попадет ли человек к нам в команду. Поэтому дебиков я предпочитаю зарубать, чем потом ебаться с последствиями
>выписку из электронной трудовой
Как быть, если в электронной трудовой указаны места начиная с момента, когда эту электронную трудовую завели? До этого места работы указаны только в бумажной трудовой книжке..
написал пиздец какую эзотерику и вроде работает, нихуёво.
> Чел не знал что нельзя передавать мутекс по значению
Так оно так не скомпилируется же, или вы на листочках пишите и в голове компилируете?
ну ладно, линтер отловит, всё равно на прекоммите должен линтер стоять который не пропустит такое
Мб тогда использовать не структуру мьютекса, а соответствующий интерфейс Locker?
>Я не он, но продолжать работать в коллективе где тебя уволить хотели не очень приятно
>>408357
>Ок, а дальше какие действия? Требовать не 3 оклада, а 5? В чём смысл-то? Меня вот за 2 месяца предупредили + 3 оклада дать должны.
Смысл в том, что у тебя больше пространство для маневра. Хрюша всегда начинает с самого минимума, хорошие условия надо выбивать. Ты можешь:
1. Потребовать больше.
2. Договориться о том что ты будешь искать новую работу, а пока ищешь будешь работать/числиться на текущей.
3. Договориться о переходе в другую команду если конечно есть куда переходить.
В любом случае начав торговаться ты получишь больше, чем просто согласившись.
У нас так хотели чувака уволить, но он упорно отказывался. В итоге с ним договорились, что он год ничего не делает, не ходит в офис, а просто ищет работу. Найдет раньше - может уволиться раньше.
Нахуй ты вообще мьютекс внутрь другой функции передаешь? Там где создал мьютекс - там и работай.
Хрюши давно сидят в ЦРМ-ках, которые собирают базу резюме, и в этой базе видно историю изменения резюме. А так же "отзывы" и дополнительные фильтры, чтобы автоматом отказывать.
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
Может конечно, но нахуй его туда класть? Если ты намекаешь что кому-то захочется делать свой errgroup или еще какую-то залупу - то это его задача возвращать ссылку из функции New(). А создавать структуру с мутексом? Нахуя
>А создавать структуру с мутексом? Нахуя
Например чтобы синхронизировать доступ к методам структуры.
Ты конченный? Анон утверждал, что код не скомпилируется. Я доказал обратное. Ко мне какие вопросы? Мьютексами я умею пользоваться.
Ну например у тебя в структуре есть марка из ты с одним экземпляром из разных горутин хочешь ее мутировать
Меня вот всегда удивляет, что изучая какие-нибудь циклы и массивы, люди думают, что они уже изучают язык и скоро смогут устроится на работу. Нет! Это как первоклассник изучает азбуку и до написания сочинения на выпускном экзамене ему ещё очень далеко. Нужно с умеренностью пройти все эти этапы, не перескакивая. Потом эти пробелы аукнутся и придётся всё равно начинать всё заново.
GOOS=js GOARCH=wasm go build ...
Нужно чередовать теорию и практику. Прошел тур, теперь попробуй написать маленькую программку, например консольную утилиту, которая на вход получает аргумент ID треда на дваче и распечатывает в консоль последний пост с треда.
я перекатываюсь из пыхи, в которой дошёл до фреймворка Ларавел, поэтому и уточняю у знающих, спасибо
понял, спасибо, анон
я тоже прохожу и задания максимально впадлу делать
первые 2 понравились, но потом душка началась
3е где тесты нужны были через силу пришлось делать
А Deno сначала писали на гошке, но потом переписали на ржавчину. Тогда просто ещё зига не было.
Я вообще на ваши двачи заглянул, потому что влом уже читать всё это.
Недавно смотрел вакухи, на го теперь ищут от 3-х лет опыта.

Я бекендер без опыта в го, и меня пока только нахер посылают. А найти работу без знания баз данных, архитектуры, очередей, паттернов, алгосов совсем тяжко будет имхо.
Не думал просто перейти в более интересный "фронтенд"? Например в IOS\Android разработку? Тоже кнопочки красить но там есть и более интересные задачи.
А вообще скажу тебе как человек однажды перекатившийся с одной хуйни на другую - через 5 лет тебя новая хуйня точно так же заебет как и старая. Вот и думай стоит оно тех усилий...
> Не думал просто перейти в более интересный "фронтенд"? Например в IOS\Android разработку? Тоже кнопочки красить но там есть и более интересные задачи.
Я бы поспорил что в мобильной разработке есть что-то интересное, лучше уж веб тогда, не надо ебаться с эмуляторами всякими
мимо проходил
> через 5 лет тебя новая хуйня точно так же заебет как и старая. Вот и думай стоит оно тех усилий...
Зачем вообще жить тогда, лол? Ведь всё в итоге надоест и умрём!
Гуглить не пробовал? copy(x, y)
Добавить параметр в джсон
Сделать запрос в другой микросервис
Высрать событие в кафку
Дописать иф
По идее все

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

В этом треде есть опытные аноны? Подскажите пожалуйста вот этот вот набор кала из пикрила работает в Go? Вроде особо и не должен работать, так как в Go классов нет, конструкторов нет, наследования нет и инкапсуляции тоже как-таковой нет, а с другой кто мешает сделать свою реализацию этих паттернов?
Спокойно работает, где то на гх есть репозиторий с реализациями всех этих паттернов
Паттерны как раз придумали по той причине что языки были недостаточно гибкие. Для Го паттерны намного актуальнее чем для Питона например. Паттерны подсказывают как сдлеать код более гибким.
>Не думал просто перейти в более интересный "фронтенд"? Например в IOS\Android разработку?
Чел, это хуйня все. Интересный фронтенд - это d-apps с web3 solidity/rust, но в тот же го и то проще попасть чем туда.
Да вот про енто
> но в тот же го и то проще попасть чем туда.
А в чем сложность, если не секрет?
мимо 4 года в крипте
Везде требуют сеньеров. Причем сеньеров именно в разработке крипты и ее стеке, а не залетных.
А для чего? Я думал, на го и расте для этого и пишут...
>Adapter, Decorator
Одно и то же. Требуется для работы с легаси из 1995 года, в го таких проблем нет.
>Observer
Говно без задач. Надо вызвать код - просто вызови его напрямую, блеать, без медиаторов и очередей.
>Iterator
Твой код воняет дотнетом и кари.
>Strategy
Говно без задач. В 2025 году пишут сервисы с дтошками.
>Твой код воняет дотнетом и кари.
То ли дело
>Seq[V any] func(yield func(V) bool)
более уебанского способа сделать итератор не придумать
Зачем вообще делать итератор? Чтобы что? Отправлять в бд запросы в цикле йес саар? У тебя в 99.9% случаев будет проход по массиву через индекс, нахуя оборачивать индекс в IAbstractProxyDecoratorIteratorBean?
я справлюсь ведь нет предела человеческой живучести

мимо первый пет проект
Кто вообще добровольно пишет на этом языке? Какой-то внебрачны сын питона и сишарпа.
мимокрокодил
на что конкретно ты готов ради работы го разработчиком?
по такому кусочку не понятно, нужно в целом на проект смотреть, может там слои архитектуры нарушены, может солид.
мимо нихуя не понимаю в го но очень хочу разобраться
Раст придумали в дурке, это литерали творчество душевнобольных пидорасов в чулках. На фоне раста любой язык будет простым и понятным.
На сишарпе тот же код будет выглядеть лучше без мусора с err!=nil и всратых сигнатур функций. Жаль, что сишарп умер на бекенде. Приходится перекатываться на го, если не хочешь нырять в фулстек парашу.
Все нормальные люди пишут, кому фабрики, адаптеры, фреймворки на каждый пук остоебенили.
Как правильно сказали кусок слишком маленький, но на что бы я обратил внимание:
- []ProjectResponseDTO возвращается по значению, значит будет много копирований памяти. Для больших объектов надо возвращать ссылки
- ошибка слишком общая, неплохо бы или создать специальный тип чтобы потом можно было вернуть правильный 5XX код
- у тебя в цикле вызывается dto.UserToResponseDTO(), по идее owner же один и тот же, такое надо выносить из цикла
- ProjectRepo - публичный, надо сделать приватным
- если размер известен сразу и фиксирован, то не надо использовать append(), просто make(type, size) и slice = XXX
>Слайсы - это же всегда ссылка, не?
Сам слайс да, но внутри массива будет лежать значение. И если ты будешь читать или писать в слайс то у тебя ДТО целиком будет копироваться.

У меня есть микросервис, у которого уже есть канкаренси, рест апи, грпк, вебсокет, бд, логирование. Что еще в него можно впихнуть, что часто используется на Го проектах? Может что то набирает популярность, либа или очередь там...
Наверни очередей
>У меня есть микросервис, у которого уже есть канкаренси, рест апи, грпк, вебсокет, бд, логирование. Что еще в него можно впихнуть, что часто используется на Го проектах? Может что то набирает популярность, либа или очередь там...
Бинго по базворд, а проект поди говно.
>чтобы они прям офигели
Чувак... Это какое-то "вау мышление". Я знаю, что можно сделать, но это название 99.999% людям ничё не скажет. Предположим, можно сделать xbrl-парсер, он будет разбирать семантически финансовые отчёты. Но чтобы это ВЫЗВАЛО ВАУ, все ахуели, попадали, заопладировали - это уже какая-то показуха. Это делать что-то, чтобы кому-то понравиться, а не ради того чтобы облегчить жизнь или заработать на этом деньги. То есть, я например заебусь вручную разбирать 50,000 финансовых документов и для этого создаю парсер. В этот момент мне обычно пахую что о моём проекте подумают люди. А ты делаешь ради какой-то тупой цели "кого-то впечатлить".
Никому твой код не нужен. За идемпотентность и распределенные транзакции можно было бы поговорить с сеньками, но они даже смотреть не будут, им неинтересно. Может быть, какой-то чмоня мидл с 2 годами опыта доебется до названия переменных, но ты сам понимаешь уровень экспертизы у такого ревьюера. Ты напрасно пытаешься кого-то впечатлить, всем похуй.
>идемпотентность и распределенные транзакции
Вот это ты хорошо придумал. Бахну второй микросервис и реализую между ними транцакцию с откатом в случае фейла.
Заодно можно и очередь между сервисами вкорячить... что обычно между гошными сервисами используют? Kafka или какой-нибудь NSQ?
>Никому твой код не нужен.
Мне самому нужен, чтобы претендовать на работу нужно сначала уметь ее выполнять.
Я тоже вкачусь и найду, я же не лох какой-то
Если хочешь потренироваться, можешь добавить мониторинги в прометее (наклепать метрик и ебануть алертов к себе в телегу, допустим), трейсинг на егере, поднять пресловутую кафку и покидаться калом через нее.
В целом на этом базовые технологии для гошного проекта кончаются. Не то чтобы кто-то будет смотреть твой код, но хоть сам будешь знать, что так можно.
Вы совсем ебанутые? 2к25 на дворе, а вы все еще на nil руками проверяете я с вас хуею))0
Это не говей.
Я вам отвечаю, такой кайф с разработкой бэкенда никогда не встречал. Это лучший язык просто. Как же я счастлив, что решил сделать апишку на гин, а не кторе.
Спасибо го комьюнити, вы открыли мне глаза и теперь я вижу прелести вашего языка
Контроллеры на гине пишутся так же, как на ноде или дотнете. Все пиздят удачные идеи друг у друга, все фреймворки одинаковые. Другой вопрос, что нода - это фулстек, дотнет - фулстек для дебилов, с соответствующим уровнем проектов и зарплат. Если хочется писать только бэк, не касаясь фронта пятиметровой палкой - го единственный выбор.
Да это понятно, просто удобная вещь, я просто в шоке. Я сам по себе не бэкендер, просто апишку надо для приложения написать. Учить спринг или асп.нет под такие запросы - ну херня идея. Гошка просто как нож по маслу зашла.
>>416585
Я пока не копал в эту сторону,сразу с примеров гина решил. Пока-что очень нравится, так что буду изучать net/http тоже

(мой был достаточно тернистым)
Вкатился, неделю писал на крестах, 2 мясяца на питоне и сейчас пишу на голанг.
Ебать книжка по питону жирная, о чем там столько текста?
А так вкатывался в вузе, рандомно учил си, питон, кресты и жабу, на работу взяли гофером, вот и весь вкат.
>Ебать книжка по питону жирная, о чем там столько текста?
Лол в питоне только про ООП можно больше написать чем про весь Го.
>Лол в питоне только про ООП можно больше написать чем про весь Го
Ты реально считаешь это плюсом ?
я думаю, что не бывает одних плюсов или одних минусов.
Когда в языке куча возможностей это хорошо, когда ты пишешь повторно используемую библиотеку (например ОРМ). Но плохо когда пытаешься разобраться в чужом говнокоде.
>У меня есть микросервис, у которого уже есть канкаренси, рест апи, грпк, вебсокет, бд, логирование.
Охуенно, только забыл сказать что именно твой микросервис делает...
В /dev/null пишет, а что?
неважно что он делает, мне нужны широко применяемые инструменты.
воткнул твой батя твоей мамке и получился ты, а я имплементировал канкаренси для ускорения ио баунд операций!
И я получился сеньром-помидором. Потому что наши отцы красноглазики знали что и зачем они втыкают. А вы, поколение инфантильных пидарасов, только и способны что речи сладкие из себя изрыгать и у гопоты код копипиздить. Но на первой же заебной таске - сломаетесь и будете плакать

хуя у тебя самомнение)) ну ничего, когда нибудь на заводе встретятся два Петровича и один тихо выругается на станок: "у сука чего эта гайка сюда не деплоится!" я улыбнусь про себя и пойму, что это ты - мой брат, айтишник.
Ну мы же пойдем в подсобку жахаться?

Хз, кто то из зрителей
В чем проблема? Один поток раздает токены. Для каждого ключа храним в хеш-таблице структуру (сколько токенов запросили, флаг блокировки). Блокировку делаем через атомик + спинлок, на таком коротком промежутке нет смысла уходить в мьютексы. По текущему времени вычисляем, сколько было начислено токенов всего, минус сколько запросили - итого сколько доступно сейчас. Поебаться с отладкой придется, конечно, это же многопоточка, но ничего охуительно сложного тут нет.
На джаве для этого либа есть...
Смотря что ты играми называешь. У raylib есть биндинги для всего, даже для php. Можешь свою товер дефенс на голенге написать.
Я так и знал, что Донован и Кериган схалтурили, когда писали книгу. Я её прочитал от корки до корки и осталось послевкусие, что меня обманули. Они и 10% языка наверно не описали.
Хуй знает, я вообще не го разраб. По-моему это больше база по основам программирования.

Это не база программирования. Они описали только синтаксис языка, но забыли, что у языка ещё есть стандартная библиотека. А может и не забыли, а подумали, что и так сойдёт.
Это вам не сишарп, где полностью описывают всю стандартную библиотеку, фреймворки и кишочки CLR.
9 лет в ИТ, да что он вообще знать может? Такие дебилы потом всю почту засирают своим: «пук, среньк, наша ошибка страшная в логах, гуглить не умеем» :(
Ну ни диванонь, ну ты чего...
У меня такое однажды на джуна спрашивали пару лет назад. Я обосрался и в итоге меня не взяли. Пошел работать в помойное легаси на пхп, откуда меня сейчас сокращают потому что у кабана деньги закончились. Ебало имаджинировали?
Я вот на пхп+го уже несколько лет работаю, сейчас перехожу на почти чистое го. И не уверен, что даже через год РАБоты смогу решать все эти задачки. Хотя хз, тут внутренние экзамены на грейды тоже есть.
Я к тому, что в бигтехах обычно просто пердолишь джейсончики в кафку, а не вот это всё.
>>418049
Так а какая разница на успех, лишь бы платили и дунасить можно было.
Сам этот код и есть проблема
>Как будто бы вкат в го идит исключительно через вакансии
Я вкатился, потому что лид принес сказал "вот на го теперь пишем". В итоге "гофер" который го не знает

Не надо привыкать к воде, она поработит вас и вы будете по ней тосковать!
Студент, начинаю учить этот язык. По факту будет моим первым ЯП. Подкиньте пожалуйста пару советов.
Также посоветуйте годные каналы по GO помимо justforfunc.
> уважаемые GOвноеды, вкатываюсь к вам в кал!
> Копрофил, начинаю пробовать это говно. По факту будет моим первым копро. Подкиньте пожалуйста пару советов.
> Также посоветуйте годные каналы по копро помимо fecesforfun.
Какой у тебя план по поиску работы?
Го используют в хайлоад проектах поэтому новичков в него не берут, сейчас даже с другого бэкенд языка сложно вкатиться, а ты вообще без опыта программирования хочешь сразу в Го.
Хочу тоже вкатиться, но я дата инженер.
Опыт с высокозагруженными хранилищами есть. Оцените мои шансы на успех
Вкатиться куда, в бэк? Тогда шансы очень средние, ДЕ и бэк слабо связаны, если ты не сам писал весь тулинг (а ты не писал, ибо в соло такое никто не напишет).
Меня ДЕ подзаебал. Сейчас получил премию и думаю, отдохнуть поучить Гошечку, проходить собесы напиздев что есть опыт в го. В DE всякие свистелки и переделки писал. Типа всякие загрузчики данных на питоне. Тулы для оркестрации. Генерация дагов в airflow. Всякие дополнения к dbt на jinja+python. Ну и две апишки поднял на fast api.
Я смогу вкатиться в полноценный бек?
Ну шо ты злой такой. Сегодня суббота. Потрогай траву сходи. Погуляй в парке.
>всякие загрузчики данных на питоне. Тулы для оркестрации. Генерация дагов в airflow. Всякие дополнения к dbt на jinja+python. Ну и две апишки поднял на fast api
Это стандартные вещи для ДЕ, которые с бэком слабо связаны. Вон, выше фотки с конфы кидали. Сможешь с ходу такие задачи решить?
Сейчас очень хуева смогу про урлы. Но я научусь!
Какого-то конкретного плана пока нет. Т.к. не работал ни с чем - без понятия куда в итоге начну развиваться.
Го кажется самым приятным языком, поэтому решил начать с него. Какой смысл учить годик-два питончик или JS, искать работу будучи одным из миллионов джунов?
В го мб конкуренция поменьше + кажется язык перспективным. Нравится его читаемость.
Вот и надеюсь, что его изучение может запустить мне какую-никскую карьеру.
Но да, именно факт что это первый язык - гемного напрягает. Ну хоть не раст...
Тебе нужно иметь что-то больше чем го, если ты хочешь катиться дальше. Питончик был бы хорошим вариантом вдовесок.
А вообще одного го мало, изучай постгрес, кафку, реббит, грпц и прочее говно.
Спасибо. Ну да, понимаю что вдовесок нужно много что дополнительно выучить.
>>418816
хорошая идея! когда более менее выучишь Go потрать пару вечеров на PHP и Python (чисто на синтаксис, ничего кроме умения создать класс, функцию, массив, цикл, переменную и запустить чтобы вывело результат не нужно). Гошников часто берут переписывать с этих языков. Будешь на собесах пиздеть: "да, могу читать и понимать код на пхп\питоне и переписывать на Го". Это будет твоим большим плюсом.
На hh.ru есть отдельная категория вакансий, которая называется php/go
И там переписывают проект с пхп на гошку
Мимо вуесос. Я пишу фронт
рассмешил содомит
Оптимизировали RwMutex для йоба многопроцессорных систем на 64+ ядра, теперь на таких монстрах sync.Map работает чуток быстрее, чем классическое map + sync.RWMutex. Для обычных EC2 машин неатуально. Короче, как обычно задроты нашли свою задротскую проблему и эффективно оптимизировали на 1%.
А, понял, спасибо анонче!
Это в какой конторе?
прикольно придумал, спасибо

>А что за мапы то новые? Новичок, найти инфу не могу
Переписали реализацию map на Swiss Tables, что должно улучшить производительность и более экономно расходовать память.
https://dev.to/ocodista/go-124-uses-swiss-table-what-are-they-3c2l
sync.Map тоже ускорили, но это вторично, т.к. им реже пользуются.
это говно оказывается просто так не работает, нужно шарить
https://grok.com/share/bGVnYWN5_cd81cd4f-b2cd-4d13-90df-da5c05517d6a
Спасибо!
Почитал, стало еще яснее. Честно, хочется такого же в котлине, но, к сожалению, сейчас котлин это продукт маркетологов и там все "фичи" - экспериментальные и работают через раз.
Котлин ЖВМ использует реализацию мапы Джавы. И в целом она достаточно эффективна, благодаря сборке мусора с компактинацией.
>менторы
ахах мамонты на курсы уже не ведутся, теперь придумали новый развод.
ты сам го роадмап не можешь загуглить или список вопросов на собесе?
Ты не понимаешь, когда ты сам читаешь про WaitGroup - это хуита, а когда ты заплатил N денег и читаешь на том же сайте - вот это настоящие знания!
>1 бит для статуса слота (занят, пустой или удалён)
Хуясе черная магия! Это и есть та самая нейросеть, которая заменила всех разработчиков?
Upd: не чекнул, что хт цитата грока. Обосрался получается

У самого есть 3 года реального коммерческого опыта, но на другом языке. Хочу подстраховаться и заручиться чьей-нибудь помощью, чтобы еще и дорожную карту по хардам составил.
Готов за это платить, разумеется.
Ментор, пошел нахуй с двачей, хватит тут свои услуги пиарить.
Обратный отчет уже запущен, до схлопывания айти остался год.
Сейчас гоев будут максимально прогревать, репутация уже не важна.
Тут вопрос именно про пет с микросервисным стеком, остальное то понятно выучить не проблема.
а что там с петом с микросервисным стеком? спроси тут, я тебе бесплатно накидаю)
Вопрос пока общий - нужна поставленная задача и по факту чел, который проконтроллирует пердолинг пета с нужными технологиями с комментариями - вот это говно, это можно сделать иначе и т.д... Т.е. мне ментор нужен как репетитор, мол так делать надо, а так не надо. Всякие слайсы хуяйсы и че там у вас еще я выучить и сам в состоянии и подрочить это на литкодовских задачках или подобном.
Говно вопрос. Сделай сервис денег с шардирование по юзеру, чтобы деньги Васи лежали в бд1, а деньги Пети - в бд2. Сделай сагу, которая переводит деньги от Васи к Пете. В процессе наебешься так, что возненавидишь микросервисы ебаные и полюбишь монолит.
> как работать потом?
Огребать баги на проде из-за пропущенных нюансов
Огребать кучу легаси-лапши от таких же как ты перекатунов, которых уже уволили (или хуже, которые ЗАКРЕПИЛИСЬ на метсах и диктуют стиль)
Огребать пизды на перф-ревью за незнание кишок (хотя ты просто ворочал джейсоны весь квартал)
Каво?