Go или Golang — компилируемый язык программирования от создателей таких шедевров как UTF–8, язык С, UNIX, Plan9 и других. Go поддерживает типобезопасность, имеет богатую и универсальную стандартную библиотеку и инновационные семантики одновременности: все то, что мы в индустрии называем concurrency и parallelism. На сегодня язык Golang является краеугольным камнем стабильности, прагматичности, де-факто представляет из себя стандарт в мире бэкенд–микросервисов и серверного кастрирования.
Почему только в одной стране мира лучшие в мире не имеющие аналогов программисты додумались использовать язык консольных утилит для написания бизнес-логики?
>>3677874 потому что бизнес-логика это обычные КРУДы со структурами, а не ебаные фабрики фабрик и декораторы которые заебешься чинить когда индусы-вайбкодеры выкатят очередной релиз срыгбута
>>3678497 Типо на бекенде ничего не расчитывается, да? Скидочка тебе на фронте считается, прям в консоль.логе? А то, что эта скидка у всех разная, ты не знаешь даже
>>3678550 круды это все что работает с бд, в том числе произвольные расчеты и запись результатов расчетов в БД, а бизнес-логика это слишком широкое понятие, и есть везде, в том числе на фронте - определение цвета кнопочек и тд
>>3678808 >>3678847 >>3679013 Шизы, у вас язык изначально дизайнился под нормальное завершение и sigterm. И по туллингу языка это видно. Об этом я и говорил Если точить язык под cli, то у него максимально шизовая философия для етоггт
Ну что, goспода, пора на мороз. Авито, Туту и Skyeng начинают массовые сокращения гошников.
>Очередные сокращения в Туту, Авито, Альфа, Skyeng
>В компании Туту сейчас сокращения, об этом даже пишут публично сотрудники что меня удивило. >Сокращения действительно большие. Источник: тут
>Из моих источников, сейчас так же сокращения в Авито в разных департаментах, связано это со снижением инвестиций в новые продукты и закрытие убыточных.
>Альфа так же старается сократить расходы и увольняет людей, пытаясь переложить временные расходы на аутстафф.
>Так же знаю что сокращение в SkyEng, об планах я знал еще полгода назад.
>По некоторым моим источникам, скоро ожидается еще пару волн сокращений в различных больших компаниях.
>>3683560 > потому что пустой массив и нул - разные вещи, долбоеб почему этот аноньчик сначала говорит очевидные вещи а вслед за этим пытается оскорбить? > в пгх есть херовина чтоб с этим правильно работать, кури доку не знаю никакого пгх, да и я давно уже нашел pq.Array, то что было нужно
>>3686946 Потому что контекст нужен для утечек памяти, а не для завершения работы. Единственный способ завершить работу здесь и сейчас - это убить процесс.
>>>3687106 >Потому что контекст нужен для утечек памяти, а не для завершения работы. Лучше бы молчал. Package context defines the Context type, which carries deadlines, cancellation signals, and other request-scoped values across API boundaries and between processes.
>>3687231 Додстер, нахуй ты мне линукс показываешь? Я тебе че написал? Если повезет с ОС - закроют твою ебучку. Го это не linux-only язык, ебанату Пайку было похуй приводить все ОС со всеми разными имплементациями IO к единому стандарту.
>>3688813 В чем смвсл вашего срача? Как будто ваши жсоноукладчики не в кубере крутятся и если это поделие как то ебанет ос в контейнере - придет ООМ и все почистит по красоте. Или вы embed на гошке писать собрались?
>>3693566 Я 20 лет в бекенде, на последней работе мы с коллегой плюсовиком вытащили из говна финтех стартап, который написали такие максимки тимлиды +33см. Го - хуйня. Максимум на что он годится - это консольные утилитки и только потому, что собирается в один бинарник. Язык ебаный, все через жопу, нет пути.
>>3693566 >на го все действительно так хорошо как пишет этот педрикс Этот чел инфоцыган. Разумеется у него все хорошо и прекрасно, так как надо курсы и менторство продавать. В реальности хуйня и работу не найти.
>>3694578 Да, ну и меня смущает, что везде она описывается как "де факто стандарт", "да бля буду скоро в стандартную библиотеку добавят", "база, каждый должен уметь пользоваться", при этом последняя версия самого пакета 0.20, то есть как будто хуитка в стадии беты
Сука, какая же ебанутая система модулей в го. Ну вот как можно вообще программу разделить на пакеты или просто на файлы? Почему нормально работает, только когда все в main.go? Просто блять как?????? Как мне сделать отдельный пакет с функциями чтобы я мог его импортировать, при этом не выкладывая ничего на github?
>>3695311 просто еще один пизданутый не осилил доку открыть и полез в гопоту, она такую хуйню про пакеты несет >>3695291 завязывай с разработкой, ты блядь сортер не вывезешь даже
>>3696104 >релиз чего блядь? там меньше 100 строк, что ты туда собрался насрать, поехавший? У тебя проблемы с головой? Не можешь два приложения прочесть? >го до сих пор 1.2*,и че? >Регулярно делать релизы не помешало бы, это дисциплинирует.
БЛЯТЬ БЛЯТЬ БЛЯТЬ ДА КАК В ЭТОМ GOВНИЩЕ ЕБАНОМ РАБОТАТЬ С ОШИБКАМИ ААААААА МОЯ ЖОПА Нет, ну серьезно, ребзя, это же просто какой-то пиздец. Вот как я привык в любом языкнейме с нормальными эксепшнами:
- валидирую формочку, формочка невалидна - плюнулся каким-нибудь условным new ClientException(418, "формочка невалидна, пашел нахуй отсюда"), на самом верху его поймал и вернул 418 с опциональной датой - база встала раком / ридер не ридит / врайтер не врайтит - плюнулся эксепшном, поймал наверху, пукнул в лог, вернул 500 - фейл авторизации - плюнулся AuthException, поймал, вернул 401
При этом есть стектрейсы из коробки, то есть при мало-мальском использовании мозга стектрейс уже должен предоставлять полный контекст ошибки без каких-либо лишних телодвижений.
А в goвне что? Стектрейса нет, изобретать его считается не тру говновей. Предлагается юзать тот факт, что ерроры приходится руками просирать наверх через все слои, и ручками же обмазывать их дополнительным контекстом, ну ок. В сети толковых примеров, как это делают достопочтенные goспода, хуй да маленько, зато тысячи мамкиных вебмастеров наперебой друг другу рассказывают, как охуенно удобно делать fmt.Errorf("baza puknula: %w", err), ебаный стыд блять, с такими еррорами ни о каком структурном логгировании говорить конечно не приходится, не говоря уже о том, что зачастую будет крайне хуевой идеей сирануть юзеру в ебало сырым еррор месседжем, а никакой дополнительный типа message/reason с этим Errorf не протащишь.
Но хорошо, допустим я накостылил какой-то свой ахуительный кастомный еррор с возможностью врапа с обмазыванием доп контекстом. Допустим, где-то в кишках бизнес логики у меня сидит функция, которая может вернуть еррор. Что там за еррор - одному богу известно с точки зрения вызывающего кода, может форма не провалидировалась, может база пукнула, может еще что. Но если это форма не провалидировалась, то такой еррор надо пропустить наверх без изменений; если база пукнула, то надо его обмазать контекстом/каким-то трейсом и пропустить наверх; если еще что-то, то обернуть в свой кастомный накостыленный еррор и пропустить наверх; то есть это надо писать какой-то громоздкий, кривой, уродливый switch. И писать его придется, как я понял, абсолютно в каждом ебаном месте, где вызываемый код может вернуть ошибку. И как жить с таким говном?
>>3696814 >кишках бизнес логики Ты понимаешь, что долбоёб тут ты? GOвно не предназначено для бизнес логики. Это язык консольных утилит и небольших IO приложений для обработки сетевых запросов. Всё. Юзать GOвно для бизнес логики может прийти в голову только ебанутому. То что аналоговнетные ру программисты додумались протащить его в бигтех - это тупой каргокульт в виду скудоумия. Анальники буквально как папуасы решили, что если они будут писать на языке из гугла, то станут гуглом.
>>3696814 Го не язык для веб макак с кпи в заднице, для макак дали джаваскрипт с подливой. Го - это си со сборкой мусора и писать надо вдумчиво и неспешно, как диды на мейнфреймах. В голанге ошибки сделаны хорошо. С ексепшенами ты ловишь нул референс где-то на самом верху и ебись, как хочешь. С err != nil ты на каждом шаге добавляешь осмысленную информацию через errorf и получаешь внятный трейс.
>>3696814 errors.As/Is ты не осилил? Если тебе надо преобразовать ошибку - протаскивай до хендлера и там мапь на что то юзерочитаемое. А вообще, в нормальном продекшене, отдаешь клиенту код ошибки а он уже на тексты справочников маппит.
>>3696814 >Допустим, где-то в кишках бизнес логики у меня сидит функция, которая может вернуть еррор. Что там за еррор - одному богу известно с точки зрения вызывающего кода Не понимаю, как это. Функция же делает одну вещь какую-то, соответственно, ошибка может быть связана только с этой одной вещью.
>>3696867 Прохладная история, братан. >>3696874 Сука у меня PANIC блять с тебя. Я же написал в посте про Errorf, что это поебота для школоподелок. Как ты будешь структурные логи делать со своим Errorf? Как ты будешь коды ошибок и request ID протаскивать? >>3696953 Так errors.As/Is это один хуй тот же свитч по типу еррора, и писать эту хуйню в каждом if err != nil - это полный пиздец. Вместо одного catch (MoyaEbuchayaOshibkaException e) {} надо переебываться с errors.As
>>3697016 >в каждом if err != nil Ты прикалываешься? На уровне хендлера ловишь ошибку - кидаешь в функцию враппер. Которая уже Через As/Is приводит удобоваримый для клиента вид. Пиздец блять....
>>3697227 И как много их? Я только пару книжек знаю, типа cloud native go и 100 mistakes, а какие еще полезные есть? Вот чтобы прям по бекенду было.
А так анон прав, в Европе вакансий на Го хуй да нихуяшеньки. Неиронично plata и nebius наверное два крупнейших голанк работодателя в гейропке. Ну и еще гугл, тесла и убер на го местами пишут, но туда еще попробуй попади.
>>3697063 Он наверное имел ввиду что глядя на функцию не видно что конкретно за ошибки она выбрасывает и чтобы это понять нужно идти и читать код, который ты вызываешь
>>3697363 Я считаю это мейнстримные практики, популяризированные легаси парашами, настоящий хайлоад инженер всегда готов к тому, что что-то пойдет не так, наиболее лаконичный способ выразить это в коде это оборачивать все запросы в 500 с данными или ошибкой в теле
>>3697336 Мне похуй. Поднятся по цепочке вызовов и посмотреть где варится ошибка - возможно. Если у него там цирк с конями и ошибки оборачивается без нормального %w - пусть хуй сосёт
>>3697339 И это все можно спокойно захендлить и зампапить в одной точке. А логгировать можешь как хочешь, хоть стринги реверсить
>>3697346 Кложу, пожалуйста, сюда вообще не затягивай. Невероятно грамотный язык в ебейшей экосистеме. Жаль работу хуй найдёшь к самураям не пойду, там релокацию просят
>>3697265 Да похуй чё там в европе, ты из треда в тред это пишешь. Если в мире существует бэк на го значит го пригоден для бэка. Точка. А мнение своё можешь в очко себе засунуть, никому оно не интересно.
>>3697727 Ну европа это один из немногих рынков труда помимо рф, где ты в теории можешь хоть какую-то работу найти. Поэтому мне не похуй. Я обратно из go в jvm ушел как раз по причине отсутствия вакух на го в ЕС.
А писать бек можно на чем угодно, хоть на эликсире, но как это коррелирует с реальным рынком труда?
Посоны, как вам такой план: учу Python и C (хочу научиться писать аналоги GoodbyeDPI), дальше вкатываюсь в Golang и пробую искать работу. Если не получится, то переключусь на Java. Помимо бэкенда интересна Android-разработка для реализации своих идей, поэтому Java и Kotlin имеет смысл изучить в любом случае.
>>3697751 Я скептически отношусь к таким заявлениям. IT зависит от экономики. Экономика когда-нибудь да выкарабкается. Тогда начнут нанимать как не в себя. Новые разработчики по любому будут нужны.
>>3697016 >Реквест айди Реквест айди шьётся в контекст через интерсептор, логгер конструируется через контекст. > Структурные логи Настройки логгера. >>3697336 В языках с эксепшнами ещё лучше - непонятно, что функция вообще может ошибку бросить, лол. И там и там публичный апи ошибок/эксепшенов смотреть надо.
>>3698034 ИИ в целом уже сейчас может писать код любой сложности для любого проекта. От круд поделки до движка распределенной СУБД. CockroachDB например сейчас целиком нейронками пишется.
В ближайшие годы никакого найма не будет - будут только сокращения. Сокращения будут идти нонстопом следующие 10-20 лет, пока нейронки не выведут на качественно новый уровень и тогда работники совсем станут не нужны.
>>3697741 >пробую искать работу Работы больше нет в этой индустрии, сынок. Иди учи что-нибудь другое, сантехнику, сварку, как плитку ложить, на врача вон пойди отучись - работа всегда будет. Айти умерло вне зависимости от стеков технологий. Можешь хоть семи пядей во лбу быть - работу уже никогда не найдешь. Даже если ты выпускник физтеха, мехмата, факультета компьютерных наук - один хер работу не найдешь. Кончилась наша индустрия.
>>3697752 >Экономика когда-нибудь да выкарабкается Это случится когда тебе будет 50+ лет, сынок. А я уже к тому времени походу в гробу буду лежать. Не дождемся мы этих времен.
Есть какой-то устоявшийся подход для возвращения из функции множества ошибок? Мой кейс: функция processSingleFile() получает содержимое файла, обрабатывает его. В случае ошибки возвращает ее. Эту функцию вызывает processFiles() которая в цикле вызывает первую. Сейчас чтобы не валить обработку пачки внутри processSingleFile() ошибки просто логгируются, я хочу логгировать всю хуйню уровнем выше, поэтому думаю завести в processFiles слайс ошибок и просто туда аппендить все что вернет processSingleFile. Со стороны кажется что это лютый говнокод, но в 90% случаях когда мне так казалось старшие коллеги говорили тип это ок, в го так принято. Погуглив нашел две либы для мультиэррора: от убер и хашикорп, но тащить либу чтобы собрать ошибки в одном месте кажется ебланством. В стандартной библиотеке есть errors.Join, но конкретно мне он не подходит тк ебаный zerolog игнорирует \n которые подставит в конец каждой ошибки джоин и просто высрет все одной строкой. Как быть?
>>3699337 В самом Го подход следующий: в сигнатуре метода возвращается error, на деле там некий MyErrorType который, или алиас для слайса MyOtherError, или структура со слайсом MyOtherError.
>>3699346 Нет в случае 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.
>>3699558 долбоеб, если у тебя проблемы с причинно-следственными связями, то поясню: документация - первый шажок к тому, чтобы стать нормальным инженером
>>3699586 я не отвечаю на вопросы долбоебов, которые ты сам себе придумал и считаешь важными, но они не имеют отношения к дискуссии, потому что логика, тупое ты уебище твой вопрос из анека про стаса михайлова ебущего детей
>>3699445 >Уебанство, я должен в голове держать что нужно скастить эррор именно к моему типу Потому что часто это не один вызов метода, а цепочка и где-то в середине может быть return nil, fmt.Errorf("zalupa %s failed: %w", id, err) Поэтому и рекомендуется возвращать error, а если надо получить детали ошибки errors.As() который работает и с wrapped errors.
>>3699675 По поводу сигнатуры я уяснил, тут без вопросов. Мне видится что возвращать обертку не сильно лучше чем слайс ошибок. Вообще я бы пользовался errors.Join но ебаный зиролог против этого
Просто структуру проще расширять в будущем. Если у тебя приватное API, то это не особо нужно. А вот если публичное то стоит подумать, не захочешь ли ты что-то добавить потом.
>>3699884 В публичных API принято такое писать в документации.
>>3699885 В приватном API делай как удобно, если что зарефачишь.
В целом нет какого-то идеального решения на все случаи жизни, каждый случай особенный. Просто читай что пишут, примеряй к своей ситуации, и решай надо оно или нет.
>>3699613 Дискуссии голосов в твоей шизоидной головушке? Изначальный тезис был, что каст ошибок в рантайме - говнокод. Тут появляется мелкобуквенное больное животное и высирается про какую-то документацию, хуйню, малафью. Когда ему указывают, что его трижды в рот ебаная документация никак не заставит говнокод лучше пахнуть - оно визжит как ему похуй на первоначальный тезис Иди ты нахуй, тупой агрессивный пидор. Убейся блядь об стену, говно. мимо
>>3700162 Каст wrapped-ошибки в рантайме это ок. У тебя для этого даже ok есть, который скажет скастилось или нет. Так что можешь вполне сделать свою структуру, которая для зеролога вернет ошибку как тебе надо, а для бизнес логики вытащишь массив.
Если ты совсем еблан и тебе не хочется кастовать - опиши свою структуру и возвращай там список всех ошибок в слайсе. И еще мета информацию, если надо. Но этот способ по сути первый, только менее привычный.
>>3700318 Ты не мне отвечаешь, а зиролог просто \n игнорирует и выводит все одной строкой, я думаю потрачу время чтобы это починить, тогда можно будет делать джоин и сигнатура будет валидная, обычный эррор без слайса и обертки
>>3711042 Потому что они у них всегда открыты. Это могут быть фейковые вакухи. Сейчас на хх.ру в айти где-то 60-70 процентов вакансий это просто фейковые. Они открытые в основном просто чтобы HR могли собирать базу кандидатов. Ну и дополнительно к этому еще хх.ру ставит большой ценник если компания долгое время не открывала вакухи, а потом решила внезапно открыть. Дешевле их всегда открытыми держать. Плюс для всяких там инвесторов надо показывать что компания жива, нанимает людей и как-то барахтается. Возможно для всяких льгот от государства тоже эти вакухи нужны.
При этом однозначно доказать что эта вакансия - фейк, нельзя. Поэтому компании держат эти фейковые вакансии месяцами, иногда меняя описание, иногда закрывая старые и открывая новые, но факт остается фактом.
>>3710992 >>3711042 Это не для тебя открыто. Большинство вакансий от крупных контор на хх это наебки и на самом деле никто никого не ищет. Цели у этого могут быть разные от сбора данных до понтов перед инвесторами. На них вообще нет смысла откликаться, а уже тем более читать описание и писать сопроводительное.
>>3711048 Конечно, а ты как думал? И выручка, и прибыль, и долги компании, и количество работников, и сам продукт который они делают. Акционеры это владельцы доли компании и их интересует буквально все. Мажоритарные инвесторы могут буквально на коды внутри компании смотреть которые обычно под NDA находятся.
>>3713519 >Попробовал го, не понял прикола писать велосипеды. Потому что велосипеды Го: - просты и понятны, тут нет магии аннотаций и постпроцессинга бинов, тут всё явно - оптимизированы под твою конкретную задачу, тут нет убер фреймворка который решает всё, тут только маленькие библиотеки, которые решают локальные проблемы Люди устали от энтерпрайза, люди хотят простоты и понятности. Да приходится писать больше кода, но потом этот код легче читать и разбираться в нём
>>3713676 >Все равно приходится тащить отдельно логгер, роутер, sqlc, pq, middleware чтобы облегчить себе жизнь Ты не понимешь.
В го ты берешь то, что тебе нужно логгер, роутер и т.п. и собираешь из этого свой набор, под твою задачу. Сам, кодом.
Тут нет как в Спринге - мы работаем с JPA, Jackson и т.д. Другое можно подключить, но придется поебаться с конфигами и написать парочку BeanZalupaProcessorFactoryBean.
>>3713684 я тоже так раньше думал, но потом понял что даже в го есть стандартные/популярные либы которые есть в каждом го проекте, зоопарка роутеров и логгеров уже нет, многие старые проекты просто сдохли и по сути в экосистеме везде есть по 1-2 либы на каждую задачу, вот и все. прям как в спринге и джава экосистеме.
алсо в жабе есть кваркус и javalin и еще с пяток менее известных но используемых в проде фреймворков, поэтому все не так однозначно.
>>3713672 >Люди устали от энтерпрайза, люди хотят простоты и понятности. Да приходится писать больше кода, но потом этот код легче читать и разбираться в нём
первое время после перехода jvm -> go у меня в бигкеке так и было. потом понял что это все хуйня. каждая команда в итоге свой собственный кривой-косой набор велосипедов писала, у каждой команды есть папочка utils или commons куда складываются их местные микровелосипеды, все это как правило с багами и хуево протестированное. не говоря уже о том, что каждый даун считает своим долгом иметь собственное мнение на то как правильно писать круд на го и почему все другие способы по его мнению говно.
в итоге обратно вернулся в jvm экосистему на новой работе и не пожалел. что на го, что на jvm занимаюсь финтехом, имхо го крайне неудачный выбор для этого.
>>3713676 >Такими темпами колесо сансары даст оборот и на го все это унифицируют и получится тотже нест/срыгбут
ну у нас например в бигкеке в моем отделе был самописный DI фреймворк. самописный аналог спринга, только очень маленький и кривой. и еще нас заставляли писать с интрефейсами, паттернами, с DDD, с большим количеством слоев. короче прям как в стиле энтерпрайзной java только на Go. не понравилось.
>>3713672 >Да приходится писать больше кода, но потом этот код легче читать и разбираться в нём код сейчас уже особо не пишется и читается руками и глазами. поэтому в таком случае можно прям на расте брать и писать все что хочешь. так хотя бы денег на железе сэкономишь еще больше.
>>3713720 >имхо го крайне неудачный выбор для этого Го придумали, чтобы интерны в гугле писали какие-то мелочи по инфре и не наматывались на конкаренси. От студентов никто не ждет опыта, поэтому придумали каналы и горутины, проще уже некуда. Писать реверс прокси на го легко и приятно, в других местах го не используется и работы на нем нет. У нас же долбоебы-каргокультисты зачем-то притащили го в круды, для чего он совсем не предназначен. Теперь студенты с умственной отсталостью изобретают свой кривой спринг снова и снова, зато не джава.
>>3713721 > нас же долбоебы-каргокультисты зачем-то притащили го в круды, для чего он совсем не предназначен. Теперь студенты с умственной отсталостью изобретают свой кривой спринг снова и снова, зато не джава
Сейчас кстати в Авито найма нет. В командах тупо хедкаунт обрезали. Если из команды ушел человек и лид хочет нового нанять - то надо писать объяснительную почему ИИ не сможет справиться с задачами и почему надо человека нанимать. А еще там (и в Озоне тоже) анал-карнавал с перфоманс ревью прям как в Яшке и с регулярным поиском лоуперформеров и их высадкой на мороз. Короче найма на Го в бигтех российский теперь почти нет. Кажется только Ядро еще студентоту нанимает из топ вузиков и на этом все. Кончилась работа на гошечке.
>>3713721 >Го придумали, чтобы интерны в гугле писали какие-то мелочи по инфре и не наматывались на конкаренси. От студентов никто не ждет опыта, поэтому придумали каналы и горутины, проще уже некуда. Писать реверс прокси на го легко и приятно Это правда кстати. Но сейчас многие такие вещи на Rust переписываются. Или если начинают делать с нуля, то уже на Rust и там весь код написан ИИ. Руками коды уже почти не пишутся.
Так что даже аргумент про то, что Java/Spring долго читать или тяжело дебажить уже протух. Коды особо не читаются и не дебажатся разрабами, разрабы теперь промпты и спеки пишут и нейрослоп в прод деплоят (девопсов сократили много где - теперь эта работа легла на плечи разрабов).
>>3713722 >у нас Ага, ведь все gin'ы, файберы, gorm'ы и прочую залупу писали именно в снг, ага. Маня, оглянись, все го камунити пишет круды на го. Просто на западе бюрократия дохуя и у них с с пеездом сложнее. Имею кореша с гермашки. У них уже 7 лет не могут согласовать переезд на го потому что манагеры стопят. Хотя весь айтиблок только за.
>>3713765 >все го камунити пишет круды на го Ну в СНГ разве что.
За пределами РФ на западе я очень мало где вижу классический финтех/энтерпрайз/продуктовый бекенд на Go. Даже в относительно новых компаниях. Да, есть вакансии на Go, но это как правило только инфра и ничего кроме инфры.
Я поэтому и перешел обратно в JVM потому что вакансий на Go шаром покати - одна только Plata нанимает, да Nebius в свою инфру. И с моим опытом в Go крудах я банально на рынке не мог ни одного собеса получить.
>>3713935 Линкедин в основном. В меньшей степени Glassdoor и Indeed.
Если что смотрел рынок EU + Сербия. На Go за пределами РФ более-менее есть какие-то вакансии только в США, но и там их мало относительно других стеков.
>>3713721 >поэтому придумали каналы и горутины А до конкарент мапы додумались только спустя десяток лет. И спустя еще пяток до еррор группы. Еще лет через 5-10 додумаются добавить в группу канал, чтобы по завершению группа его сама закрывала.
>>3713720 >я тоже так раньше думал, но потом понял что даже в го есть стандартные/популярные либы которые есть в каждом го проекте, зоопарка роутеров и логгеров уже нет, многие старые проекты просто сдохли и по сути в экосистеме везде есть по 1-2 либы на каждую задачу, вот и все. прям как в спринге и джава экосистеме. Речь идет не о количестве фреймворков, а о том как они работают. В Го все более прямолинейное, тут не принято сильно уповать на рефлексию в рантайме. Чаще всего все пишется простым кодом и можно по коду отследить что откуда вызывается. Мешает только ебанутая работа с интерфейсами. Собака пайк!
А джава наоборот - спринг очень сильно наседает на рефлексию в рантайме. Сканирование всех классов, смотрит что за аннотации там навешаны, генерирование прокси в рантайме и т.д.
>>3714524 ну, дебажить сейчас спринг уже стало проще. в idea хороший дебаггер сделали, лучше чем стандартная связка vscode+dlv
но даже так - никто не заставляет тебя использовать спринг. многие пробуют quarkus в прод тащить. там тоже есть аннотации но они не в рантайме работают а на этапе компиляции. как итог у тебя продовый код вообще не использует тяжелую рефлексию в рантайме. при этом ты можешь как стандартную jvm использовать так и сделать нативный бинарь graalvm. и код не будет выглядеть как го-дрисня из велосипедов.
впрочем на это все похуй, языки программирования что го, что джава постепенно умирать будут. сейчас весь тренд это разработка на трех языках - rust, python, typescript. все вещи которые на го я бы делал раньше, сейчас буду делать на rust + LLM. вот кроме раста, питона и тайпскрипта языки программирования вообще не нужны больше.
>>3714531 >но даже так - никто не заставляет тебя использовать спринг. Ага не заставляют, пришел в команду которая пишет на Спринге и давай хучячить на Котлин нэйтив и Ктор. Ахуенный план!
>>3714685 Обычно когда запускают новый микросервис, то каждый раз думают на чем его писать. Можно в качестве эксперимента на кваркусе ебануть. Если у тебя монолит или вся команда один сервис пилит, то дело другое.
>>3714715 >Обычно когда запускают новый микросервис, то каждый раз думают на чем его писать. Можно в качестве эксперимента на кваркусе ебануть. Ты вкатун что ли? Кабанчик не сам кабанчик конечно, а техлид думает как ему это потом сапортить, резвится с технологиями и под каждый новый сервис выбирать новый стек никто не даст.
>>3714782 Если это кваркус вместо спринга - можно попробовать продать эту идею своему руководителю. Как средство сделать микросервис компилирующимся в бинарь и требующим меньше ресурсов чем обычный спринг. И как следствие будут меньше расходы на инфру. Если у тебя рукль не зашоренный шиз, то может дать отмашку. Тем более что с ллмкой теперь сильно проще вкатываться в новые фреймворки и писать на них код.
Вышестоящим кабанам уже похуй что там на чем написано. У нас по крайней мере сейчас так. Понятное дело что писать на zig и rust вместо jvm стека не дадут, но в пределах jvm экосистемы можно с одобрения рукля делать что хочешь.
Недавно узнал что gopher это буквально суслик с английского. Т.е. взрослые мужики на форумах называют себя сусликами, пиздец блять. >>3715316 Java-даун, ты прошлый раз говорил что го нигде не используется. Определись уже.
А не похуй ли в эпоху ллмок? Код все равно уже не пишется и почти не читается. Даже в российских бигтехах уже вайбкодинг вовсю, даже в банках. И это мы под санкциями сидим если что.
Сейчас язык программирования больше не имеет никакого значения. Потому что ты как человек больше не участвуешь в написании кода - за тебя это нейронка делает. Ты либо делаешь какую-то высокоуровневую архитектуру, проектируешь сервисы, систем дизайном занимаешься, либо выходишь на мороз навсегда. С учетом того, что новых проектов где надо архитектуру делать и постоянно что-то дизайнить, крайне мало, а большая часть работы - это фиксы багов и внедрение мелких фичей в костыльные копролиты и микропенисы, то карьерные перспективы для 90% тех кто еще не улетел на мороз, крайне печальные.
>>3718372 Почему я уверен, что это один из тех долбоебов, у которых АЙТИ ВСЕ? Такое животное приходит на собес, говорит РУТЕР и прочее говно типа ИНФРАСТРАКЧЕ, и все думают, что к такому долбоебу лучше не приближаться
Привет, гошники, Я .Net-синьёр-помидор, 7+ лет опыта, также TypeScript. И всё такое. Хочу вкатиться к вам. Паджитшарп хорош, но там из нового и перспективного только MCPшки пилить (а я не знаю, взлетит ли это дерьмо или рухнет к хуям со всей это агентностью). Новый кросс-платформенный .Net охуенный, но у него дурная репутация унылого корпоративного легаси паджитсофта.
>>3718476 >Паджитшарп хорош, но там из нового и перспективного только MCPшки пилить
А чем Go отличается от .NET в этом плане? Ну то есть что на дотнете, что на го в России пишут круды в основном. На го иногда еще всякую инфру делают типа кубернетес операторов, но это довольно нишевая и редкая работа, которая к тому же легко выполняется при помощи ллмки.
Ну типо почему ты думаешь что 1) на дотнете остается только mcp пилить и ничего более 2) при переходе на го ты будешь делать что-то кроме mcp серверов?
Просто сейчас mcp на хайпе как еще одна обвязка для существующих продуктов чтобы можно было через ллмки ходить в разные сервисы и дергать у них методы, но это считай примерно то же самое что и рест ручки делать.
>>3718476 У меня 15 лет бекенда на дотнете, джва года неспешного ковыряния внутренних сервисов на го и год хадкорной ебли с финтехом на голанге после вайбкодеров ебаных. Мое резюме на го сеньку никто даже не смотрит. На го лида отвечают сразу, лол, но ебал я быть лидом в крипто финтех помойке, это хуже червя-пидора. Другой работы на го нет. В загранице работы на го нет совсем, кроме нескольких кипрских параш, где на бабки кинут. Алсо MCP - это же обычная консольная утилита, которая пукает джейсоном в stdout, хуле там писать.
>>3718490 да ничем не уебались. просто в "бигтехах" надо изображать работу. или хотя бы видимость работы. если эту работу не изображать, то менеджмент потеряет хедкаунт и сама прослойка менеджмента станет не нужна. вот в 2017-2019 годах тему с микросервисами и го начали активно задвигать Авито на конференциях, после чего это все расползлось по остальным маркетплейсам, которые после гойды стали "бигтехами", так как остальные компании тупо свалили из рф.
поэтому и начались мега стройки по переписыванию копролитов с питона, пхп и руби на гошечку. с распиливанием на микросервисы. просто потому что это дает основания нанять команды, раздуть штат сотрудников, дать работу всей цепочке людей, от топ менеджмента до линейных гребцов и линейных менеджеров.
вон сейчас ВКонтакте (тот который пашка дуров еще делал) переписывают с kphp копролита на гошные микросервисы. И будут переписывать еще лет 5 наверное. плохо что ли? хорошо. один хуй это мертвый проект на господдержке, вкашечкой уже давно никто не пользуется, просто идет попил государственных денег от газпром медиа. и так во всем. тот же вк можно было оставить сугубо на поддержке команде из 50 человек примерно как илон маск сделал с твиттером уволив весь штат сотрудников оставив несколько десятков разрабов и sre которые минорные баги фиксят и следят чтобы прод не падал. и то, твиттер все еще популярен и им пользуются миллионы людей, а вк давно сдох обоссавшись и обосравшись.
>>3718484 >А чем Go отличается от .NET в этом плане? Ну то есть что на дотнете, что на го в России пишут круды в основном. На го иногда еще всякую инфру делают типа кубернетес операторов, но это довольно нишевая и редкая работа, которая к тому же легко выполняется при помощи ллмки. > >Ну типо почему ты думаешь что >1) на дотнете остается только mcp пилить и ничего более >2) при переходе на го ты будешь делать что-то кроме mcp серверов? > >Просто сейчас mcp на хайпе как еще одна обвязка для существующих продуктов чтобы можно было через ллмки ходить в разные сервисы и дергать у них методы, но это считай примерно то же самое что и рест ручки делать.
Я в целом не в России, и тут почему-то кажется, что позиций на Го больше. Хотя мне и на .Net заебись.
>>3718492 >У меня 15 лет бекенда на дотнете, джва года неспешного ковыряния внутренних сервисов на го и год хадкорной ебли с финтехом на голанге после вайбкодеров ебаных. Мое резюме на го сеньку никто даже не смотрит. На го лида отвечают сразу, лол, но ебал я быть лидом в крипто финтех помойке, это хуже червя-пидора. Другой работы на го нет. В загранице работы на го нет совсем, кроме нескольких кипрских параш, где на бабки кинут. >Алсо MCP - это же обычная консольная утилита, которая пукает джейсоном в stdout, хуле там писать.
1. То есть вкатываться в Го смысла особого нет (я за рубежом). 2. MCP простая штука, но там можно долго копаться с безопасностью и контролем галлюнов. С одной стороны, это модно. С другой стороны, ХЗ к чему это приведет. Все обещают "оркестрацию агентов", но я подозреваю, что от этого говна все охуеют (это будет ад микросервисов на максималках с галлюцинациями и сжиганием токеннов на миллионы, либо с отдельной инфраструктурой локальных моделей ... чтобы что? Обрабатывать полтора запроса на натуральном языке?)
Я короче начал ощущать, что карьера .Net стагнирует, в MCP и агентов могу вкатиться через .Net, но стагнация такая, что хочется уйти в айгейминг и пилить говно для развода лохом на бабки (лох не мамонт). Ну и криптоговно тоже деняк приносит.
Что посоветуешь? Не уходить же в низкокоуровневый Rust пилить роботов.
>>3718494 ну смотри, на го пишут в таких компаниях как - яндекс - авито - озон - wb - ядро - бюро 1440 - vk
И нам этом примерно как бы все. То есть вот есть 7-9 компаний которые гошников нанимают. Остальные места работы на го это мутная хуйня типа криптоскама или казика с кипрскими кабанами.
при этом надо понимать, что яндекс, авито и озон сейчас довольно хуевые места для работы. из-за анального перфоманс ревью с квотами на увольнение. это означает что раз в полгода на твою команду будет спускаться квота с количеством (или с процентами) людей которым нужно въебать оценку ниже ожидаемого (в терминологии яндекса - желток) и потом уволить.
вот ты придешь работать в отдел. будет 3 команды суммарно 20 человек примерно. и каждые полгода будут по 2-3 человека с желтой оценкой высаживать на мороз, причем не по сокращению официальному, а по соглашению сторон. ты вот хочешь в такой атмосфере работать? вряд ли.
более-менее на гохе сейчас работается в госушных местах которые чебурнетом и тспу занимаются. это вот ядро, бюро1440 и другие компании икс-холдинга плюс какой-нибудь рдп.ру
в вк год-два назад были массовые сокращения на фоне рекордных убытков, сейчас не знаю как там дела обстоят, говорят вроде как увольнять массово в таком объеме уже прекратили но сама контора стала сильно более затхлой и похожей на типичную госуху типа автоваза
если где-то в европе то я бы советовал не заниматься йухней а пробовать устроиться в нормальный европейский легаси энтерпрайз или на галеру типа епама люксофта если они еще конечно живы....
мужчины молодость и хардкор живёт только в джаве возвращайтесь на jvm стек у вас всегда будет работа вы даже не представляете как вам не хватает @autowired в гошечке айгеймнг вот хоть и набирает на го, у них немало жабы
>>3718499 Если ты за рубежом, ты вытащил счастивый билет, мое увожение. Нет смысла выкатываться с дотнета, можно всегда устроиться в немецкий легаси или в люксофт, у них куча вакансий на сишарпе. Это у нас в славянских помойках будущего нет, у тебя все заебись.
Если бы я сейчас находился за рубежом где-нибудь в Европе, то не учил бы Go.
Лучше реально остаться в дотнете и пытаться в +- стабильное европейское легаси устроиться, чем пытаться выучить го и пробовать залететь в какую-нибудь плату или небиус (единственные 2 компании которые нанимают гошников в европе кек).
>>3718512 >вы видели когда нибудь шарпы в финтехе? а в микропенисах да есть местами в финтехе и бекенде с микросервисами, ну банки в основном на жабе сидят это правда, но много где и дотнет есть в не особо крупных местах
>>3718516 >в не особо крупных местах в не особо крупных местах обычно оказывается ооо рога и копыта, где код/процессы выстроены хуем и никак иначе, с соответствующей хуёвой оплатой, хуёвыми начальниками, хуёвым etc мимо работник ооо рога и копыта на 30 человек
>>3718501 >если где-то в европе то я бы советовал не заниматься йухней а пробовать устроиться в нормальный европейский легаси энтерпрайз или на галеру типа епама люксофта если они еще конечно живы.... В Сербии. Че-то сейчас утросился на временную галеру местную с офисом с видом на Варгейминг.
>>3718518 >код/процессы выстроены хуем и никак иначе, с соответствующей хуёвой оплатой, хуёвыми начальниками А в бигкеках не так? С учётом того какая там текучка, там вроде как некому делать нормально?
>>3718518 >>3718676 раньше в России были небольшие продуктовые конторы на 30-100 человек которые делали свой продукт и продавали на запад. разумеется в 22 году эти компании свалили. сейчас мелкого айти бизнеса тупо нет, если в ит конторе сейчас работает 30 человек значит это либо что-то крайне нишевое для госухи, либо какой-то скам, иного быть не может.
>>3718683 Я в компании 60 челов работаю, наш отдел, который хоть как-то к айти относится - 30 челов как раз, вполне мелко. Просто агрегируем и продаём аналитику одного из рынков. С госухами не работаем. У нас и конкуренты есть, мы не одни такие.
>>3718659 >На какой стек? Дотнет? Go? Жаба? > >Как вообще сербы как коллеги? Распиздяи или норм? Индусы есть? Или у вас одни русы работают? Донет. Вот как раз узнаю сербов по-лучше, лол.
>>3718511 >Если бы я сейчас находился за рубежом где-нибудь в Европе, то не учил бы Go. Лол, а если бы я сейчас был в России, то мне бы пришлось съесть ежей.