С чего начать:
- В обязательном порядке проходим "Go Tour":
https://go.dev/tour/welcome/1
- Читаем документацию прямо по порядку (пункт "Learning Go"): https://go.dev/doc/
- Ознакамливаемся с общим roadmap по изучению языка и сопутствующих инструментов: https://github.com/darius-khll/golang-developer-roadmap (постоянно обновлялось сообществом)
Литература:
- Донован, Керниган "Язык программирования Go"
- Также книги рекомендуемые для начала: https://go.dev/wiki/Books и https://www.practical-go-lessons.com/ (веб-версия — бесплатная и хорошо подходит для новичков в программировании)
- Книги из списка: https://github.com/dariubs/GoBooks
Полезные ресурсы:
- Сборник patterns и info по микросервисам: http://microservices.io/
- Смотрим видео https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSw
- Справочник энтузиастов: https://go101.org/
- Практические уроки: https://www.practical-go-lessons.com/
- Обновляемый список велосипедиста с пакетами: https://github.com/avelino/awesome-go
Небольшая конфа треда: https://t.me/golang2ch (выживает)
Прошлый тред: >>3643081 (OP)
мимо java-господин
так это не говнари, а как раз джависты приходят обсериться
карго-культ и дебилы в менеджерском составе
потому что бизнес-логика это обычные КРУДы со структурами, а не ебаные фабрики фабрик и декораторы которые заебешься чинить когда индусы-вайбкодеры выкатят очередной релиз срыгбута
Бизнес-логика это тоже круды. Получил запросом данные из табличек, посчитал скидочку, записал в табличку.
А в консольных утилитах нет бизнес логики?
А на чем надо писать? На пэхэпэ? Нет, спасибо
Там по всему языку такие нюансы
У озона красиво, глаз сразу цепляется на что надо - за цену. Сразу видно, сидят бизнесмены и занимаются там логикой.
Типо на бекенде ничего не расчитывается, да? Скидочка тебе на фронте считается, прям в консоль.логе?
А то, что эта скидка у всех разная, ты не знаешь даже
круды это все что работает с бд, в том числе произвольные расчеты и запись результатов расчетов в БД, а бизнес-логика это слишком широкое понятие, и есть везде, в том числе на фронте - определение цвета кнопочек и тд
>Бизнес логика это не круды.
Прав. Бизнес-логика это другое. Но что именно не буду писать, дабы не палить годноту быдлу.
Мимо инженер
Двачаю, если такой всратый ui генерирует больше прибыли чем менее всратый, то это бизнес логика
Парни, есть ли смысл с Ноды к вам перекатываться или один хуй работы нет?
Да.
>Очередные сокращения в Туту, Авито, Альфа, Skyeng
>В компании Туту сейчас сокращения, об этом даже пишут публично сотрудники что меня удивило.
>Сокращения действительно большие. Источник: тут
>Из моих источников, сейчас так же сокращения в Авито в разных департаментах, связано это со снижением инвестиций в новые продукты и закрытие убыточных.
>Альфа так же старается сократить расходы и увольняет людей, пытаясь переложить временные расходы на аутстафф.
>Так же знаю что сокращение в SkyEng, об планах я знал еще полгода назад.
>По некоторым моим источникам, скоро ожидается еще пару волн сокращений в различных больших компаниях.
Прямо сейчас гошников увольняют, а не нанимают.
В других стеках технологий такая же ситуация. Рухнумизация идет полным ходом.
Ну да, в авито каждая уборщица кодит на го, как я забыл.
Ну чё, как попереписывали на голенк?
КАК Я ДОЛЖЕН ОПРЕДЕЛЯТЬ ПУСТОЙ МАССИВ ИЛИ НЕТ?
кешируй быстрее а то барин выебет
потому что пустой массив и нул - разные вещи, долбоеб
в пгх есть херовина чтоб с этим правильно работать, кури доку
давайте лучше про умирающую гошку, чем это...
> потому что пустой массив и нул - разные вещи, долбоеб
почему этот аноньчик сначала говорит очевидные вещи а вслед за этим пытается оскорбить?
> в пгх есть херовина чтоб с этим правильно работать, кури доку
не знаю никакого пгх, да и я давно уже нашел pq.Array, то что было нужно
>очевидные вещи
ты свой вопрос перечитай
>не знаю никакого пгх
ясно, еще один ни дня не работавший додик
> ты свой вопрос перечитай
и что? там всё по делу
> ясно, еще один ни дня не работавший додик
я псиной работаю а прогаю для себя
Нетворковое io тоже не работает с контекстом, те методы которые принимают используют его только на этапе резолва, а потом игнорируют
Легаси + специфика ОС.
Сам напиши. Слушай контекст и при событии исполняй file.Close(). И если с операционной системой повезет - сработает.
Потому что контекст нужен для утечек памяти, а не для завершения работы. Единственный способ завершить работу здесь и сейчас - это убить процесс.
Бредик не пишем
>Легаси + специфика ОС.
ОС то как раз все поддерживает https://linux.die.net/man/2/io_cancel
Не поддерживает Го.
>Потому что контекст нужен для утечек памяти, а не для завершения работы.
Лучше бы молчал.
Package context defines the Context type, which carries deadlines, cancellation signals, and other request-scoped values across API boundaries and between processes.
Как же вы заебали, вкатуны малолетние. До пизды твои сигналы, если зависла внешняя железка с кривыми драйверами.
>зависла внешняя железка с кривыми драйверами.
Ты про свои мозги? Сходи к мозгоправу, он тебе таблеточки пропишет.
мне больше жопы и сиськи нравятся, но язык тож ниче
Додстер, нахуй ты мне линукс показываешь? Я тебе че написал? Если повезет с ОС - закроют твою ебучку. Го это не linux-only язык, ебанату Пайку было похуй приводить все ОС со всеми разными имплементациями IO к единому стандарту.
Жри че дают.
Дебил, ты чего порвался? Какие еще у тебя ОС на серверах, Windows Server что ли? Так и там есть CancelIoEx https://learn.microsoft.com/en-us/windows/win32/sync/synchronization-and-overlapped-input-and-output
Держи лайвхак: если по сути нечего сказать, можно просто завалить ебало.
В чем смвсл вашего срача? Как будто ваши жсоноукладчики не в кубере крутятся и если это поделие как то ебанет ос в контейнере - придет ООМ и все почистит по красоте. Или вы embed на гошке писать собрались?
Даже пыха такое выдать может
https://interviewhustlers.com/go/page/abc?utm_source=bot_golang&utm_medium=3day
Я 20 лет в бекенде, на последней работе мы с коллегой плюсовиком вытащили из говна финтех стартап, который написали такие максимки тимлиды +33см. Го - хуйня. Максимум на что он годится - это консольные утилитки и только потому, что собирается в один бинарник. Язык ебаный, все через жопу, нет пути.
Javaдебил, спокуху оформи уже.
>на го все действительно так хорошо как пишет этот педрикс
Этот чел инфоцыган. Разумеется у него все хорошо и прекрасно, так как надо курсы и менторство продавать.
В реальности хуйня и работу не найти.
Так работы нет ни на джаве, ни на го.
Стек вообще не роляет, сейчас даже в 1С работа исчезла.
мимо безработный, есть 4 года опыта в бигтехах как с jvm так и с go бекендами
А почему ты так боишься подключать зависимости? Осталась травма после плюсов?
Не бойся.
Да, ну и меня смущает, что везде она описывается как "де факто стандарт", "да бля буду скоро в стандартную библиотеку добавят", "база, каждый должен уметь пользоваться", при этом последняя версия самого пакета 0.20, то есть как будто хуитка в стадии беты
тут не жава, чтобы дрочить на циферки и выпускать на каждую хуйню N-версию
го до сих пор 1.2*,и че?
Просто блять как?????? Как мне сделать отдельный пакет с функциями чтобы я мог его импортировать, при этом не выкладывая ничего на github?
Зато 2 релиза в год
>тут не жава, чтобы дрочить на циферки и выпускать на каждую хуйню N-версию
Регулярно делать релизы не помешало бы, это дисциплинирует.
релиз чего блядь? там меньше 100 строк, что ты туда собрался насрать, поехавший?
Терпи
Лол, я думал это норма, кек. Ну да ладно, мои петы всё равно полетят в гитхаб. А как правильно?
>релиз чего блядь? там меньше 100 строк, что ты туда собрался насрать, поехавший?
У тебя проблемы с головой? Не можешь два приложения прочесть?
>го до сих пор 1.2*,и че?
>Регулярно делать релизы не помешало бы, это дисциплинирует.
Нет, ну серьезно, ребзя, это же просто какой-то пиздец. Вот как я привык в любом языкнейме с нормальными эксепшнами:
- валидирую формочку, формочка невалидна - плюнулся каким-нибудь условным new ClientException(418, "формочка невалидна, пашел нахуй отсюда"), на самом верху его поймал и вернул 418 с опциональной датой
- база встала раком / ридер не ридит / врайтер не врайтит - плюнулся эксепшном, поймал наверху, пукнул в лог, вернул 500
- фейл авторизации - плюнулся AuthException, поймал, вернул 401
При этом есть стектрейсы из коробки, то есть при мало-мальском использовании мозга стектрейс уже должен предоставлять полный контекст ошибки без каких-либо лишних телодвижений.
А в goвне что? Стектрейса нет, изобретать его считается не тру говновей. Предлагается юзать тот факт, что ерроры приходится руками просирать наверх через все слои, и ручками же обмазывать их дополнительным контекстом, ну ок. В сети толковых примеров, как это делают достопочтенные goспода, хуй да маленько, зато тысячи мамкиных вебмастеров наперебой друг другу рассказывают, как охуенно удобно делать fmt.Errorf("baza puknula: %w", err), ебаный стыд блять, с такими еррорами ни о каком структурном логгировании говорить конечно не приходится, не говоря уже о том, что зачастую будет крайне хуевой идеей сирануть юзеру в ебало сырым еррор месседжем, а никакой дополнительный типа message/reason с этим Errorf не протащишь.
Но хорошо, допустим я накостылил какой-то свой ахуительный кастомный еррор с возможностью врапа с обмазыванием доп контекстом. Допустим, где-то в кишках бизнес логики у меня сидит функция, которая может вернуть еррор. Что там за еррор - одному богу известно с точки зрения вызывающего кода, может форма не провалидировалась, может база пукнула, может еще что. Но если это форма не провалидировалась, то такой еррор надо пропустить наверх без изменений; если база пукнула, то надо его обмазать контекстом/каким-то трейсом и пропустить наверх; если еще что-то, то обернуть в свой кастомный накостыленный еррор и пропустить наверх; то есть это надо писать какой-то громоздкий, кривой, уродливый switch. И писать его придется, как я понял, абсолютно в каждом ебаном месте, где вызываемый код может вернуть ошибку. И как жить с таким говном?
Нет, ну серьезно, ребзя, это же просто какой-то пиздец. Вот как я привык в любом языкнейме с нормальными эксепшнами:
- валидирую формочку, формочка невалидна - плюнулся каким-нибудь условным new ClientException(418, "формочка невалидна, пашел нахуй отсюда"), на самом верху его поймал и вернул 418 с опциональной датой
- база встала раком / ридер не ридит / врайтер не врайтит - плюнулся эксепшном, поймал наверху, пукнул в лог, вернул 500
- фейл авторизации - плюнулся AuthException, поймал, вернул 401
При этом есть стектрейсы из коробки, то есть при мало-мальском использовании мозга стектрейс уже должен предоставлять полный контекст ошибки без каких-либо лишних телодвижений.
А в goвне что? Стектрейса нет, изобретать его считается не тру говновей. Предлагается юзать тот факт, что ерроры приходится руками просирать наверх через все слои, и ручками же обмазывать их дополнительным контекстом, ну ок. В сети толковых примеров, как это делают достопочтенные goспода, хуй да маленько, зато тысячи мамкиных вебмастеров наперебой друг другу рассказывают, как охуенно удобно делать fmt.Errorf("baza puknula: %w", err), ебаный стыд блять, с такими еррорами ни о каком структурном логгировании говорить конечно не приходится, не говоря уже о том, что зачастую будет крайне хуевой идеей сирануть юзеру в ебало сырым еррор месседжем, а никакой дополнительный типа message/reason с этим Errorf не протащишь.
Но хорошо, допустим я накостылил какой-то свой ахуительный кастомный еррор с возможностью врапа с обмазыванием доп контекстом. Допустим, где-то в кишках бизнес логики у меня сидит функция, которая может вернуть еррор. Что там за еррор - одному богу известно с точки зрения вызывающего кода, может форма не провалидировалась, может база пукнула, может еще что. Но если это форма не провалидировалась, то такой еррор надо пропустить наверх без изменений; если база пукнула, то надо его обмазать контекстом/каким-то трейсом и пропустить наверх; если еще что-то, то обернуть в свой кастомный накостыленный еррор и пропустить наверх; то есть это надо писать какой-то громоздкий, кривой, уродливый switch. И писать его придется, как я понял, абсолютно в каждом ебаном месте, где вызываемый код может вернуть ошибку. И как жить с таким говном?
>кишках бизнес логики
Ты понимаешь, что долбоёб тут ты? GOвно не предназначено для бизнес логики. Это язык консольных утилит и небольших IO приложений для обработки сетевых запросов. Всё. Юзать GOвно для бизнес логики может прийти в голову только ебанутому. То что аналоговнетные ру программисты додумались протащить его в бигтех - это тупой каргокульт в виду скудоумия. Анальники буквально как папуасы решили, что если они будут писать на языке из гугла, то станут гуглом.
Го не язык для веб макак с кпи в заднице, для макак дали джаваскрипт с подливой. Го - это си со сборкой мусора и писать надо вдумчиво и неспешно, как диды на мейнфреймах. В голанге ошибки сделаны хорошо. С ексепшенами ты ловишь нул референс где-то на самом верху и ебись, как хочешь. С err != nil ты на каждом шаге добавляешь осмысленную информацию через errorf и получаешь внятный трейс.
Так на чем писать бизнеса логику, на пхп?
errors.As/Is ты не осилил?
Если тебе надо преобразовать ошибку - протаскивай до хендлера и там мапь на что то юзерочитаемое.
А вообще, в нормальном продекшене, отдаешь клиенту код ошибки а он уже на тексты справочников маппит.
>Допустим, где-то в кишках бизнес логики у меня сидит функция, которая может вернуть еррор. Что там за еррор - одному богу известно с точки зрения вызывающего кода
Не понимаю, как это. Функция же делает одну вещь какую-то, соответственно, ошибка может быть связана только с этой одной вещью.
Прохладная история, братан.
>>696874
Сука у меня PANIC блять с тебя. Я же написал в посте про Errorf, что это поебота для школоподелок. Как ты будешь структурные логи делать со своим Errorf? Как ты будешь коды ошибок и request ID протаскивать?
>>696953
Так errors.As/Is это один хуй тот же свитч по типу еррора, и писать эту хуйню в каждом if err != nil - это полный пиздец. Вместо одного catch (MoyaEbuchayaOshibkaException e) {} надо переебываться с errors.As
>в каждом if err != nil
Ты прикалываешься? На уровне хендлера ловишь ошибку - кидаешь в функцию враппер. Которая уже Через As/Is приводит удобоваримый для клиента вид. Пиздец блять....
И как много их? Я только пару книжек знаю, типа cloud native go и 100 mistakes, а какие еще полезные есть?
Вот чтобы прям по бекенду было.
А так анон прав, в Европе вакансий на Го хуй да нихуяшеньки. Неиронично plata и nebius наверное два крупнейших голанк работодателя в гейропке. Ну и еще гугл, тесла и убер на го местами пишут, но туда еще попробуй попади.
Он наверное имел ввиду что глядя на функцию не видно что конкретно за ошибки она выбрасывает и чтобы это понять нужно идти и читать код, который ты вызываешь
CreateUser, который пишет в постгрес может вернуть ошибку прав, ошибку дубликата первичного ключа, ошибку таймаута
мимо
Джабба с нескучным синтаксисом - это котлин. А в го специально делали каждую фичу с подходом "лишь бы не как в жабе".
Ну в случае дубликата можно выкинуть 403, в случае таймаута 504, во всех остальных просто 500
Я считаю это мейнстримные практики, популяризированные легаси парашами, настоящий хайлоад инженер всегда готов к тому, что что-то пойдет не так, наиболее лаконичный способ выразить это в коде это оборачивать все запросы в 500 с данными или ошибкой в теле
>приложений для обработки сетевых запросов. Всё
И что там обрабатывают,бизнес логику? .
Мне похуй. Поднятся по цепочке вызовов и посмотреть где варится ошибка - возможно. Если у него там цирк с конями и ошибки оборачивается без нормального %w - пусть хуй сосёт
>>697339
И это все можно спокойно захендлить и зампапить в одной точке.
А логгировать можешь как хочешь, хоть стринги реверсить
>>697346
Кложу, пожалуйста, сюда вообще не затягивай. Невероятно грамотный язык в ебейшей экосистеме. Жаль работу хуй найдёшь к самураям не пойду, там релокацию просят
Да похуй чё там в европе, ты из треда в тред это пишешь. Если в мире существует бэк на го значит го пригоден для бэка. Точка. А мнение своё можешь в очко себе засунуть, никому оно не интересно.
Ну европа это один из немногих рынков труда помимо рф, где ты в теории можешь хоть какую-то работу найти. Поэтому мне не похуй. Я обратно из go в jvm ушел как раз по причине отсутствия вакух на го в ЕС.
А писать бек можно на чем угодно, хоть на эликсире, но как это коррелирует с реальным рынком труда?
Я скептически отношусь к таким заявлениям. IT зависит от экономики. Экономика когда-нибудь да выкарабкается. Тогда начнут нанимать как не в себя. Новые разработчики по любому будут нужны.
Чтобы затралить гейткиперов.
Ещё раз повтори.
>Реквест айди
Реквест айди шьётся в контекст через интерсептор, логгер конструируется через контекст.
> Структурные логи
Настройки логгера.
>>697336
В языках с эксепшнами ещё лучше - непонятно, что функция вообще может ошибку бросить, лол. И там и там публичный апи ошибок/эксепшенов смотреть надо.
ИИ в целом уже сейчас может писать код любой сложности для любого проекта. От круд поделки до движка распределенной СУБД. CockroachDB например сейчас целиком нейронками пишется.
В ближайшие годы никакого найма не будет - будут только сокращения. Сокращения будут идти нонстопом следующие 10-20 лет, пока нейронки не выведут на качественно новый уровень и тогда работники совсем станут не нужны.
>>697741
>пробую искать работу
Работы больше нет в этой индустрии, сынок. Иди учи что-нибудь другое, сантехнику, сварку, как плитку ложить, на врача вон пойди отучись - работа всегда будет. Айти умерло вне зависимости от стеков технологий. Можешь хоть семи пядей во лбу быть - работу уже никогда не найдешь. Даже если ты выпускник физтеха, мехмата, факультета компьютерных наук - один хер работу не найдешь. Кончилась наша индустрия.
>Экономика когда-нибудь да выкарабкается
Это случится когда тебе будет 50+ лет, сынок. А я уже к тому времени походу в гробу буду лежать. Не дождемся мы этих времен.
Я в /pr 10 лет сижу. Каждый день сюда захожу. Сейчас в основном просто чтобы пообщаться в МВП треде с анонами по старой памяти.
Это поехавшая омежка с пенсией по шизе. Уже 10й год срет тредами про "айти все", можешь в архиваче глянуть ее треды 7-10 летней давности.
>ИИ в целом уже сейчас может писать код любой сложности для любого проекта.
Компилятор С сможет написать?
Это очевидно
Ты сам это нафантазировал?
Хех, ну неси сюда мои треды 7 летней давности.
В самом Го подход следующий: в сигнатуре метода возвращается error, на деле там некий MyErrorType который, или алиас для слайса MyOtherError, или структура со слайсом MyOtherError.
Может тогда обертку в сигнатуре и указывать. Принимайте интерфейсы, возвращайте структуры же
Нет в случае error рекомендуется именно error
https://go.dev/doc/effective_go#errors
>Library routines must often return some sort of error indication to the caller. As mentioned, Go's return values make it easy to return a detailed error description alongside the normal return value. It is good style to use the built-in interface type error for this purpose.
Это сделано из-за классической ошибки с приведением nil структуры к интерфейсу
https://go.dev/play/p/mHDKOMhP5JL
Уебанство, я должен в голове держать что нужно скастить эррор именно к моему типу
вот, может научишься документировать свой говнокод, так и до нормальной макаки доберешься
долбоеб, если у тебя проблемы с причинно-следственными связями, то поясню: документация - первый шажок к тому, чтобы стать нормальным инженером
я не отвечаю на вопросы долбоебов, которые ты сам себе придумал и считаешь важными, но они не имеют отношения к дискуссии, потому что логика, тупое ты уебище
твой вопрос из анека про стаса михайлова ебущего детей
>Уебанство, я должен в голове держать что нужно скастить эррор именно к моему типу
Потому что часто это не один вызов метода, а цепочка и где-то в середине может быть
return nil, fmt.Errorf("zalupa %s failed: %w", id, err)
Поэтому и рекомендуется возвращать error, а если надо получить детали ошибки errors.As() который работает и с wrapped errors.
По поводу сигнатуры я уяснил, тут без вопросов. Мне видится что возвращать обертку не сильно лучше чем слайс ошибок. Вообще я бы пользовался errors.Join но ебаный зиролог против этого
>Мне видится что возвращать обертку не сильно лучше чем слайс ошибок.
Можно и так делать посмотри как сделали ErrorList https://cs.opensource.google/go/go/+/refs/tags/go1.26.2:src/go/scanner/errors.go
Просто структуру проще расширять в будущем. Если у тебя приватное API, то это не особо нужно. А вот если публичное то стоит подумать, не захочешь ли ты что-то добавить потом.
Так в этом то и хуйня, что чтобы знать что подставить в errors.As нужно пойти и посмотреть что там за тип возвращается
У меня приватное, мне чисто узнать вдруг какой-то из вариантов: обертка, слайс ошибок, джоин уже тысячу раз обсосали и приняли говном
Дискуссии голосов в твоей шизоидной головушке? Изначальный тезис был, что каст ошибок в рантайме - говнокод. Тут появляется мелкобуквенное больное животное и высирается про какую-то документацию, хуйню, малафью. Когда ему указывают, что его трижды в рот ебаная документация никак не заставит говнокод лучше пахнуть - оно визжит как ему похуй на первоначальный тезис
Иди ты нахуй, тупой агрессивный пидор. Убейся блядь об стену, говно.
мимо
Каст wrapped-ошибки в рантайме это ок. У тебя для этого даже ok есть, который скажет скастилось или нет. Так что можешь вполне сделать свою структуру, которая для зеролога вернет ошибку как тебе надо, а для бизнес логики вытащишь массив.
Если ты совсем еблан и тебе не хочется кастовать - опиши свою структуру и возвращай там список всех ошибок в слайсе. И еще мета информацию, если надо. Но этот способ по сути первый, только менее привычный.
Ты не мне отвечаешь, а зиролог просто \n игнорирует и выводит все одной строкой, я думаю потрачу время чтобы это починить, тогда можно будет делать джоин и сигнатура будет валидная, обычный эррор без слайса и обертки
какая же тупая скотина, пиздец
пиздуй на завод, уебан, тебе тут не место, ты даже читать не умеешь
блядь, ну вот же, 3 секунды в гугле
github.com/theopenlane/core/pkg/logx/consolelog
берешь оттуда райтера и все, что тут сложного нахуй
>Изначальный тезис был, что каст ошибок в рантайме - говнокод.
Говнокод у тебя в ДНК, вот там реально мамка твоя говно намешала.
576x378, 0:12
Запиненый комментарий чекай
Ещё не весь пыньтех переписан
Програмирование - хуйня, кодеры - уроды, ноудискас
Нет, я работаю на Казахстанский банк и еще партайм с ребятами из франиитам подпиливаю кое какие сервисы, фикшу баги за 2,5к эвро
Ну ты не на проклятой земле очевидно
Угу, а безработных Go программистов с опытом и вышкой на рынке труда минимум 10 тысяч в поиске работы.
Потому что они у них всегда открыты. Это могут быть фейковые вакухи. Сейчас на хх.ру в айти где-то 60-70 процентов вакансий это просто фейковые. Они открытые в основном просто чтобы HR могли собирать базу кандидатов. Ну и дополнительно к этому еще хх.ру ставит большой ценник если компания долгое время не открывала вакухи, а потом решила внезапно открыть. Дешевле их всегда открытыми держать. Плюс для всяких там инвесторов надо показывать что компания жива, нанимает людей и как-то барахтается. Возможно для всяких льгот от государства тоже эти вакухи нужны.
При этом однозначно доказать что эта вакансия - фейк, нельзя. Поэтому компании держат эти фейковые вакансии месяцами, иногда меняя описание, иногда закрывая старые и открывая новые, но факт остается фактом.
>>711042
Это не для тебя открыто. Большинство вакансий от крупных контор на хх это наебки и на самом деле никто никого не ищет. Цели у этого могут быть разные от сбора данных до понтов перед инвесторами. На них вообще нет смысла откликаться, а уже тем более читать описание и писать сопроводительное.
Конечно, а ты как думал?
И выручка, и прибыль, и долги компании, и количество работников, и сам продукт который они делают. Акционеры это владельцы доли компании и их интересует буквально все. Мажоритарные инвесторы могут буквально на коды внутри компании смотреть которые обычно под NDA находятся.
Ну хуй знает
Ого, в стране же ровно 38 Go-разработчиков на рынке труда находится
Ок.
тогда нихуя не напишешь
>Попробовал го, не понял прикола писать велосипеды.
Потому что велосипеды Го:
- просты и понятны, тут нет магии аннотаций и постпроцессинга бинов, тут всё явно
- оптимизированы под твою конкретную задачу, тут нет убер фреймворка который решает всё, тут только маленькие библиотеки, которые решают локальные проблемы
Люди устали от энтерпрайза, люди хотят простоты и понятности. Да приходится писать больше кода, но потом этот код легче читать и разбираться в нём
Все равно приходится тащить отдельно логгер, роутер, sqlc, pq, middleware чтобы облегчить себе жизнь
На ноде из за такого зоопарка второй спринг изобрели
Такими темпами колесо сансары даст оборот и на го все это унифицируют и получится тотже нест/срыгбут
>Все равно приходится тащить отдельно логгер, роутер, sqlc, pq, middleware чтобы облегчить себе жизнь
Ты не понимешь.
В го ты берешь то, что тебе нужно логгер, роутер и т.п. и собираешь из этого свой набор, под твою задачу. Сам, кодом.
Тут нет как в Спринге - мы работаем с JPA, Jackson и т.д. Другое можно подключить, но придется поебаться с конфигами и написать парочку BeanZalupaProcessorFactoryBean.
я тоже так раньше думал, но потом понял что даже в го есть стандартные/популярные либы которые есть в каждом го проекте, зоопарка роутеров и логгеров уже нет, многие старые проекты просто сдохли и по сути в экосистеме везде есть по 1-2 либы на каждую задачу, вот и все. прям как в спринге и джава экосистеме.
алсо в жабе есть кваркус и javalin и еще с пяток менее известных но используемых в проде фреймворков, поэтому все не так однозначно.
>>713672
>Люди устали от энтерпрайза, люди хотят простоты и понятности. Да приходится писать больше кода, но потом этот код легче читать и разбираться в нём
первое время после перехода jvm -> go у меня в бигкеке так и было. потом понял что это все хуйня. каждая команда в итоге свой собственный кривой-косой набор велосипедов писала, у каждой команды есть папочка utils или commons куда складываются их местные микровелосипеды, все это как правило с багами и хуево протестированное. не говоря уже о том, что каждый даун считает своим долгом иметь собственное мнение на то как правильно писать круд на го и почему все другие способы по его мнению говно.
в итоге обратно вернулся в jvm экосистему на новой работе и не пожалел. что на го, что на jvm занимаюсь финтехом, имхо го крайне неудачный выбор для этого.
>>713676
>Такими темпами колесо сансары даст оборот и на го все это унифицируют и получится тотже нест/срыгбут
ну у нас например в бигкеке в моем отделе был самописный DI фреймворк. самописный аналог спринга, только очень маленький и кривой. и еще нас заставляли писать с интрефейсами, паттернами, с DDD, с большим количеством слоев. короче прям как в стиле энтерпрайзной java только на Go. не понравилось.
>>713672
>Да приходится писать больше кода, но потом этот код легче читать и разбираться в нём
код сейчас уже особо не пишется и читается руками и глазами. поэтому в таком случае можно прям на расте брать и писать все что хочешь. так хотя бы денег на железе сэкономишь еще больше.
>имхо го крайне неудачный выбор для этого
Го придумали, чтобы интерны в гугле писали какие-то мелочи по инфре и не наматывались на конкаренси. От студентов никто не ждет опыта, поэтому придумали каналы и горутины, проще уже некуда. Писать реверс прокси на го легко и приятно, в других местах го не используется и работы на нем нет. У нас же долбоебы-каргокультисты зачем-то притащили го в круды, для чего он совсем не предназначен. Теперь студенты с умственной отсталостью изобретают свой кривой спринг снова и снова, зато не джава.
> нас же долбоебы-каргокультисты зачем-то притащили го в круды, для чего он совсем не предназначен. Теперь студенты с умственной отсталостью изобретают свой кривой спринг снова и снова, зато не джава
Сейчас кстати в Авито найма нет. В командах тупо хедкаунт обрезали. Если из команды ушел человек и лид хочет нового нанять - то надо писать объяснительную почему ИИ не сможет справиться с задачами и почему надо человека нанимать. А еще там (и в Озоне тоже) анал-карнавал с перфоманс ревью прям как в Яшке и с регулярным поиском лоуперформеров и их высадкой на мороз.
Короче найма на Го в бигтех российский теперь почти нет. Кажется только Ядро еще студентоту нанимает из топ вузиков и на этом все. Кончилась работа на гошечке.
>>713721
>Го придумали, чтобы интерны в гугле писали какие-то мелочи по инфре и не наматывались на конкаренси. От студентов никто не ждет опыта, поэтому придумали каналы и горутины, проще уже некуда. Писать реверс прокси на го легко и приятно
Это правда кстати. Но сейчас многие такие вещи на Rust переписываются. Или если начинают делать с нуля, то уже на Rust и там весь код написан ИИ. Руками коды уже почти не пишутся.
Так что даже аргумент про то, что Java/Spring долго читать или тяжело дебажить уже протух. Коды особо не читаются и не дебажатся разрабами, разрабы теперь промпты и спеки пишут и нейрослоп в прод деплоят (девопсов сократили много где - теперь эта работа легла на плечи разрабов).
>у нас
Ага, ведь все gin'ы, файберы, gorm'ы и прочую залупу писали именно в снг, ага.
Маня, оглянись, все го камунити пишет круды на го. Просто на западе бюрократия дохуя и у них с с пеездом сложнее.
Имею кореша с гермашки. У них уже 7 лет не могут согласовать переезд на го потому что манагеры стопят. Хотя весь айтиблок только за.
>все го камунити пишет круды на го
Ну в СНГ разве что.
За пределами РФ на западе я очень мало где вижу классический финтех/энтерпрайз/продуктовый бекенд на Go. Даже в относительно новых компаниях. Да, есть вакансии на Go, но это как правило только инфра и ничего кроме инфры.
Я поэтому и перешел обратно в JVM потому что вакансий на Go шаром покати - одна только Plata нанимает, да Nebius в свою инфру.
И с моим опытом в Go крудах я банально на рынке не мог ни одного собеса получить.
Как и ИТ в целом блин
>За пределами РФ на западе я очень мало где вижу классический финтех/энтерпрайз/продуктовый бекенд на Go
А как ты смотрел?
Линкедин в основном. В меньшей степени Glassdoor и Indeed.
Если что смотрел рынок EU + Сербия.
На Go за пределами РФ более-менее есть какие-то вакансии только в США, но и там их мало относительно других стеков.
Битрикс.
>поэтому придумали каналы и горутины
А до конкарент мапы додумались только спустя десяток лет. И спустя еще пяток до еррор группы. Еще лет через 5-10 додумаются добавить в группу канал, чтобы по завершению группа его сама закрывала.
>я тоже так раньше думал, но потом понял что даже в го есть стандартные/популярные либы которые есть в каждом го проекте, зоопарка роутеров и логгеров уже нет, многие старые проекты просто сдохли и по сути в экосистеме везде есть по 1-2 либы на каждую задачу, вот и все. прям как в спринге и джава экосистеме.
Речь идет не о количестве фреймворков, а о том как они работают. В Го все более прямолинейное, тут не принято сильно уповать на рефлексию в рантайме. Чаще всего все пишется простым кодом и можно по коду отследить что откуда вызывается. Мешает только ебанутая работа с интерфейсами. Собака пайк!
А джава наоборот - спринг очень сильно наседает на рефлексию в рантайме. Сканирование всех классов, смотрит что за аннотации там навешаны, генерирование прокси в рантайме и т.д.
ну, дебажить сейчас спринг уже стало проще. в idea хороший дебаггер сделали, лучше чем стандартная связка vscode+dlv
но даже так - никто не заставляет тебя использовать спринг. многие пробуют quarkus в прод тащить. там тоже есть аннотации но они не в рантайме работают а на этапе компиляции. как итог у тебя продовый код вообще не использует тяжелую рефлексию в рантайме. при этом ты можешь как стандартную jvm использовать так и сделать нативный бинарь graalvm. и код не будет выглядеть как го-дрисня из велосипедов.
впрочем на это все похуй, языки программирования что го, что джава постепенно умирать будут.
сейчас весь тренд это разработка на трех языках - rust, python, typescript. все вещи которые на го я бы делал раньше, сейчас буду делать на rust + LLM. вот кроме раста, питона и тайпскрипта языки программирования вообще не нужны больше.
>но даже так - никто не заставляет тебя использовать спринг.
Ага не заставляют, пришел в команду которая пишет на Спринге и давай хучячить на Котлин нэйтив и Ктор. Ахуенный план!
Обычно когда запускают новый микросервис, то каждый раз думают на чем его писать. Можно в качестве эксперимента на кваркусе ебануть. Если у тебя монолит или вся команда один сервис пилит, то дело другое.
>Обычно когда запускают новый микросервис, то каждый раз думают на чем его писать. Можно в качестве эксперимента на кваркусе ебануть.
Ты вкатун что ли? Кабанчик не сам кабанчик конечно, а техлид думает как ему это потом сапортить, резвится с технологиями и под каждый новый сервис выбирать новый стек никто не даст.
На джаве как то гораздо декларативнее
Если это кваркус вместо спринга - можно попробовать продать эту идею своему руководителю. Как средство сделать микросервис компилирующимся в бинарь и требующим меньше ресурсов чем обычный спринг. И как следствие будут меньше расходы на инфру. Если у тебя рукль не зашоренный шиз, то может дать отмашку. Тем более что с ллмкой теперь сильно проще вкатываться в новые фреймворки и писать на них код.
Вышестоящим кабанам уже похуй что там на чем написано. У нас по крайней мере сейчас так. Понятное дело что писать на zig и rust вместо jvm стека не дадут, но в пределах jvm экосистемы можно с одобрения рукля делать что хочешь.
>>715316
Java-даун, ты прошлый раз говорил что го нигде не используется. Определись уже.
я другой джава даун но действительно вне ру бигтехов го вакансий почти нет.
>> rust
>Очень мало работников на рынке
А не похуй ли в эпоху ллмок? Код все равно уже не пишется и почти не читается. Даже в российских бигтехах уже вайбкодинг вовсю, даже в банках. И это мы под санкциями сидим если что.
Сейчас язык программирования больше не имеет никакого значения. Потому что ты как человек больше не участвуешь в написании кода - за тебя это нейронка делает. Ты либо делаешь какую-то высокоуровневую архитектуру, проектируешь сервисы, систем дизайном занимаешься, либо выходишь на мороз навсегда. С учетом того, что новых проектов где надо архитектуру делать и постоянно что-то дизайнить, крайне мало, а большая часть работы - это фиксы багов и внедрение мелких фичей в костыльные копролиты и микропенисы, то карьерные перспективы для 90% тех кто еще не улетел на мороз, крайне печальные.
Уходи.
Ботолахта всё никак не просрётся со своей рекламой нейроговна.
Буду говорить, как хочу. Может, я ещё и "скедулер" должен говорить вместо "шедулер"?
Почему я уверен, что это один из тех долбоебов, у которых АЙТИ ВСЕ?
Такое животное приходит на собес, говорит РУТЕР и прочее говно типа ИНФРАСТРАКЧЕ, и все думают, что к такому долбоебу лучше не приближаться
Паджитшарп хорош, но там из нового и перспективного только MCPшки пилить (а я не знаю, взлетит ли это дерьмо или рухнет к хуям со всей это агентностью).
Новый кросс-платформенный .Net охуенный, но у него дурная репутация унылого корпоративного легаси паджитсофта.
Стоит ли катиться к вам?
Роутер.
>Паджитшарп хорош, но там из нового и перспективного только MCPшки пилить
А чем Go отличается от .NET в этом плане? Ну то есть что на дотнете, что на го в России пишут круды в основном. На го иногда еще всякую инфру делают типа кубернетес операторов, но это довольно нишевая и редкая работа, которая к тому же легко выполняется при помощи ллмки.
Ну типо почему ты думаешь что
1) на дотнете остается только mcp пилить и ничего более
2) при переходе на го ты будешь делать что-то кроме mcp серверов?
Просто сейчас mcp на хайпе как еще одна обвязка для существующих продуктов чтобы можно было через ллмки ходить в разные сервисы и дергать у них методы, но это считай примерно то же самое что и рест ручки делать.
чем нужно было уебаться, чтобы начать писать круды на языке на языке для инфры?
У меня 15 лет бекенда на дотнете, джва года неспешного ковыряния внутренних сервисов на го и год хадкорной ебли с финтехом на голанге после вайбкодеров ебаных. Мое резюме на го сеньку никто даже не смотрит. На го лида отвечают сразу, лол, но ебал я быть лидом в крипто финтех помойке, это хуже червя-пидора. Другой работы на го нет. В загранице работы на го нет совсем, кроме нескольких кипрских параш, где на бабки кинут.
Алсо MCP - это же обычная консольная утилита, которая пукает джейсоном в stdout, хуле там писать.
да ничем не уебались. просто в "бигтехах" надо изображать работу. или хотя бы видимость работы. если эту работу не изображать, то менеджмент потеряет хедкаунт и сама прослойка менеджмента станет не нужна. вот в 2017-2019 годах тему с микросервисами и го начали активно задвигать Авито на конференциях, после чего это все расползлось по остальным маркетплейсам, которые после гойды стали "бигтехами", так как остальные компании тупо свалили из рф.
поэтому и начались мега стройки по переписыванию копролитов с питона, пхп и руби на гошечку. с распиливанием на микросервисы. просто потому что это дает основания нанять команды, раздуть штат сотрудников, дать работу всей цепочке людей, от топ менеджмента до линейных гребцов и линейных менеджеров.
вон сейчас ВКонтакте (тот который пашка дуров еще делал) переписывают с kphp копролита на гошные микросервисы. И будут переписывать еще лет 5 наверное. плохо что ли? хорошо. один хуй это мертвый проект на господдержке, вкашечкой уже давно никто не пользуется, просто идет попил государственных денег от газпром медиа. и так во всем. тот же вк можно было оставить сугубо на поддержке команде из 50 человек примерно как илон маск сделал с твиттером уволив весь штат сотрудников оставив несколько десятков разрабов и sre которые минорные баги фиксят и следят чтобы прод не падал. и то, твиттер все еще популярен и им пользуются миллионы людей, а вк давно сдох обоссавшись и обосравшись.
>А чем Go отличается от .NET в этом плане? Ну то есть что на дотнете, что на го в России пишут круды в основном. На го иногда еще всякую инфру делают типа кубернетес операторов, но это довольно нишевая и редкая работа, которая к тому же легко выполняется при помощи ллмки.
>
>Ну типо почему ты думаешь что
>1) на дотнете остается только mcp пилить и ничего более
>2) при переходе на го ты будешь делать что-то кроме mcp серверов?
>
>Просто сейчас mcp на хайпе как еще одна обвязка для существующих продуктов чтобы можно было через ллмки ходить в разные сервисы и дергать у них методы, но это считай примерно то же самое что и рест ручки делать.
Я в целом не в России, и тут почему-то кажется, что позиций на Го больше. Хотя мне и на .Net заебись.
Клеем момент, наверное. Подробности надо спрашивать в авито.
>У меня 15 лет бекенда на дотнете, джва года неспешного ковыряния внутренних сервисов на го и год хадкорной ебли с финтехом на голанге после вайбкодеров ебаных. Мое резюме на го сеньку никто даже не смотрит. На го лида отвечают сразу, лол, но ебал я быть лидом в крипто финтех помойке, это хуже червя-пидора. Другой работы на го нет. В загранице работы на го нет совсем, кроме нескольких кипрских параш, где на бабки кинут.
>Алсо MCP - это же обычная консольная утилита, которая пукает джейсоном в stdout, хуле там писать.
1. То есть вкатываться в Го смысла особого нет (я за рубежом).
2. MCP простая штука, но там можно долго копаться с безопасностью и контролем галлюнов. С одной стороны, это модно. С другой стороны, ХЗ к чему это приведет. Все обещают "оркестрацию агентов", но я подозреваю, что от этого говна все охуеют (это будет ад микросервисов на максималках с галлюцинациями и сжиганием токеннов на миллионы, либо с отдельной инфраструктурой локальных моделей ... чтобы что? Обрабатывать полтора запроса на натуральном языке?)
Я короче начал ощущать, что карьера .Net стагнирует, в MCP и агентов могу вкатиться через .Net, но стагнация такая, что хочется уйти в айгейминг и пилить говно для развода лохом на бабки (лох не мамонт). Ну и криптоговно тоже деняк приносит.
Что посоветуешь?
Не уходить же в низкокоуровневый Rust пилить роботов.
ну смотри, на го пишут в таких компаниях как
- яндекс
- авито
- озон
- wb
- ядро
- бюро 1440
- vk
И нам этом примерно как бы все. То есть вот есть 7-9 компаний которые гошников нанимают. Остальные места работы на го это мутная хуйня типа криптоскама или казика с кипрскими кабанами.
при этом надо понимать, что яндекс, авито и озон сейчас довольно хуевые места для работы. из-за анального перфоманс ревью с квотами на увольнение. это означает что раз в полгода на твою команду будет спускаться квота с количеством (или с процентами) людей которым нужно въебать оценку ниже ожидаемого (в терминологии яндекса - желток) и потом уволить.
вот ты придешь работать в отдел. будет 3 команды суммарно 20 человек примерно. и каждые полгода будут по 2-3 человека с желтой оценкой высаживать на мороз, причем не по сокращению официальному, а по соглашению сторон. ты вот хочешь в такой атмосфере работать? вряд ли.
более-менее на гохе сейчас работается в госушных местах которые чебурнетом и тспу занимаются. это вот ядро, бюро1440 и другие компании икс-холдинга плюс какой-нибудь рдп.ру
в вк год-два назад были массовые сокращения на фоне рекордных убытков, сейчас не знаю как там дела обстоят, говорят вроде как увольнять массово в таком объеме уже прекратили но сама контора стала сильно более затхлой и похожей на типичную госуху типа автоваза
а ты где живешь? кипр?
если где-то в европе то я бы советовал не заниматься йухней а пробовать устроиться в нормальный европейский легаси энтерпрайз или на галеру типа епама люксофта если они еще конечно живы....
возвращайтесь на jvm стек у вас всегда будет работа
вы даже не представляете как вам не хватает @autowired в гошечке
айгеймнг вот хоть и набирает на го, у них немало жабы
Если ты за рубежом, ты вытащил счастивый билет, мое увожение. Нет смысла выкатываться с дотнета, можно всегда устроиться в немецкий легаси или в люксофт, у них куча вакансий на сишарпе. Это у нас в славянских помойках будущего нет, у тебя все заебись.
Лучше реально остаться в дотнете и пытаться в +- стабильное европейское легаси устроиться, чем пытаться выучить го и пробовать залететь в какую-нибудь плату или небиус (единственные 2 компании которые нанимают гошников в европе кек).
>вы видели когда нибудь шарпы в финтехе? а в микропенисах
да есть местами в финтехе и бекенде с микросервисами, ну банки в основном на жабе сидят это правда, но много где и дотнет есть в не особо крупных местах
>в не особо крупных местах
в не особо крупных местах обычно оказывается ооо рога и копыта, где код/процессы выстроены хуем и никак иначе, с соответствующей хуёвой оплатой, хуёвыми начальниками, хуёвым etc
мимо работник ооо рога и копыта на 30 человек
>если где-то в европе то я бы советовал не заниматься йухней а пробовать устроиться в нормальный европейский легаси энтерпрайз или на галеру типа епама люксофта если они еще конечно живы....
В Сербии. Че-то сейчас утросился на временную галеру местную с офисом с видом на Варгейминг.
На какой стек? Дотнет? Go? Жаба?
Как вообще сербы как коллеги? Распиздяи или норм? Индусы есть? Или у вас одни русы работают?
>в терминологии яндекса - желток
То есть цвет компании - жёлтый, и цвет лоуперформеров тоже жёлтый? Хотя бы с самоиронией у них хорошо...
>код/процессы выстроены хуем и никак иначе, с соответствующей хуёвой оплатой, хуёвыми начальниками
А в бигкеках не так? С учётом того какая там текучка, там вроде как некому делать нормально?
>>718676
раньше в России были небольшие продуктовые конторы на 30-100 человек которые делали свой продукт и продавали на запад. разумеется в 22 году эти компании свалили. сейчас мелкого айти бизнеса тупо нет, если в ит конторе сейчас работает 30 человек значит это либо что-то крайне нишевое для госухи, либо какой-то скам, иного быть не может.
Я в компании 60 челов работаю, наш отдел, который хоть как-то к айти относится - 30 челов как раз, вполне мелко. Просто агрегируем и продаём аналитику одного из рынков. С госухами не работаем. У нас и конкуренты есть, мы не одни такие.
Источник: тараканы в голове
>На какой стек? Дотнет? Go? Жаба?
>
>Как вообще сербы как коллеги? Распиздяи или норм? Индусы есть? Или у вас одни русы работают?
Донет. Вот как раз узнаю сербов по-лучше, лол.
>Если бы я сейчас находился за рубежом где-нибудь в Европе, то не учил бы Go.
Лол, а если бы я сейчас был в России, то мне бы пришлось съесть ежей.
Хомяк тебе не ёж.
А прочитать про фичи и высказать мнение?