Лёгкости перехода: четыре разработчика о том, почему они перешли на Go
- суббота, 2 ноября 2024 г. в 00:00:10
Микросервисная архитектура — это новый черный: кажется, уже все бигтехи пилят монолиты на сервисы и и ищут гошников в штат. Спрос рождает предложение — всё больше ребят переходят с других бэкенд-языков на Golang.
Мы попросили наших разработчиков поделиться своим опытом перехода на Go и рассказать, почему они решили освоить новый язык программирования, какие плюсы и минусы видят в нём, дал ли переход на Go буст в новых карьерных возможностях и кому и в каких случаях они бы они советовали освоить golang.
Эта статья может быть полезна тем, кто тоже хочет добавить Go в копилку знаний, но пока не решился. Приступим!
У меня был опыт работы на С++ и на Ruby. В C++ мне не хватало гибкости, свободы и легкости написания кода, из-за статической типизации и постоянного контроля выделенной памяти. В Ruby эти плюсы присутствуют, но приносят дополнительные проблемы по мере роста приложения.
Хотелось попробовать что-то модное и молодёжное, но при этом не терять в гибкости. Go подошёл под мой запрос идеально. Бонусом он еще и компилируемый — по этому я уже успел соскучиться.
Поскольку Go обрёл популярность сравнительно недавно, он будет точно востребован ближайшие годы. То есть до спада спроса есть ещё время залететь на волну и научиться владеть им хорошо.
Go-разработчик в Купер.тех
У меня было 7 лет опыта работы джавистом, и я просто устал от гиперинжиниринга в Java — не нравилась сама инженерная философия этого языка. Понял, что нужно куда-то двигаться. Мне попался Go, и два раза очень меня удивил.
Первый раз — когда приложение на Go очень быстро собралось. Java в этом плане гораздо дольше и медленней. В первый раз мне показалось, что компиляция вообще не могла пройти так быстро.
Во второй раз — когда я увидел, что в Go используется метод для перевода символов в int atoi(). И я прям вспомнил, как я был молодым щеглом, писал на C, и там тоже используется этот метод. И я подумал — как же хорошо, и понял, что мне уже абсолютно неинтересно возвращаться обратно в Java-мир.
А дальше был глас судьбы — меня позвали на собес по Go (я сказал, что не гoшник, а меня всё равно позвали), а я его ещё и прошёл. Так всё и случилось.
Go Team Lead в Купер.тех
Я поработал в разных стеках: с компилятором и без, со строгой типизацией и динамической — понял, что концепции и подходы из одних языков можно переиспользовать в других, из чего может вырасти интересная и полезная интеграция.
Когда началась популяризация Go в русскоязычном сегменте, решил попробовать. Понял, что там много непривычных для меня подходов, и мне это нравится. Я продолжал работать на проектах с Java и Ruby, но всё чаще ловил себя на том, что на Go это было бы удобнее. Потом Купер сделал мне оффер, и я уже окончательно перешёл на Go.
Senior Go-разработчик в Купер.тех
У меня был почти весь фарш: и С, и Ruby и JavaScript и Java, и Scala, и Kotlin.
Плюсы Go для меня очевидные: компилируемый, типизированный, с богатым тулингом.
Думаю, что для джунов Go — лучший выбор, потому что он простой, относительно Java, С++ и других. В нём легче писать многопоточные программы, потому что там есть мощные примитивы и модель памяти, которая гораздо проще, чем в той же Java.
Один из минусов Go по сравнению с Java и Kotlin — чуть больше придётся писать руками, но, к счастью, у нас есть кодогенерация и много хороших библиотек, которые помогут с этим справиться.
Senior Go-разработчик в Купер.тех
На С++ возвращаться не хочу — на нём особо не пишут веб, а значит, нужно скорее писать что-то для железок, и ты привязан к месту, где эти самые железки и находятся, чтобы их настраивать. Удалёнка становится недоступна, а для меня это очень критично. А Go — всё-таки в основном веб-инструмент.
Но вот тесты на Go писать не очень удобно, в отличие от Ruby: много заморочек, слишком сложные и длинные. В Ruby ты в одну строку можешь сделать очень много действий, и если что-то пойдёт не так — задолбаешься разматывать клубок в поисках ошибки. И вот если ты Ruby разработчик, который устал разматывать вот эти клубки непонятных однострочников, которые, размазаны по слоям всяких паттернов, то в Go сюрпризов таких никогда не будет, ты всегда будешь знать, если где-то что-то отвалилось, точное место, где это отвалилось и почему оно отвалилось.
И в этом плане Go понятнее, спокойнее и легче. Мне очень нравится, что код на Go можно читать и писать без подсветки синтаксиса.
Go-разработчик в Купер.тех
Go сейчас практически везде, где пишут какой-то бэкенд: что-то, да будет на нём написано. Поэтому, думаю, что опыт работы на Go — классный пункт резюме.
Senior Go-разработчик в Купер.тех
Думаю, все, когда выбирают язык программирования, оперируют двумя основными параметрами: востребованность и зарплата. И вот, мне кажется, Go сейчас прямо идеально подходит по этим двум параметрам.
Все активно пилятся на микросервисы, и специалисты со знанием и монолитов и микросервисов нужны очень много где.
Go-разработчик в Купер.тех
Сказать, «работаешь на Go, значит гребёшь деньги лопатой» — соврать. Зарплата зависит от твоих скиллов — как менеджерских, так и инженерных. Но если смотреть по российскому рынку — у гошников всё хорошо.
Senior Go-разработчик в Купер.тех
Любому, кто пишет на PHP, Ruby и Python, я бы советовал изучить Go, чтобы расширить кругозор и «отвести душу»: написать что-то в удовольствие, не громоздкое, со всеми нужными инструментами. Всё для эффективности разработчика сделано уже прям вот создателями языка.
Senior Go-разработчик в Купер.тех
Я бы советовал перейти на Go таким, как я — кто пишет на Ruby и скучает по строго типизированному и компилируемому языку.
И если у кого-то был в прошлом любой С-подобный язык, и они по нему скучают, думаю, что Go тоже зайдёт.
А вот Ruby-разработчикам «по любви» я бы Go не советовал: в Ruby можно написать две команды через точку и случится магия, а вот в Go магии нет, но есть максимум понятного кода.
Go-разработчик в Купер.тех
Когда к нам в команду потребовались go-разработчики, я стал активно рекомендовать своим знакомым пересесть на Go.
Я работал с переходниками с PHP и Java внутри команды, за первую неделю они писали маленький пэт-проект. За вторую — докидывали к проекту логи и метрики. И, начиная с третьей недели, они уже писали рабочие микросервисы, делали фичи.Думаю, кому угодно можно переходить на Go. Только важно не тянуть за собой прошлое, и не идти в новый монастырь со старым уставом.
Go Team Lead в Купер.тех
Переходить или не переходить на Go — решать вам, а мы будем рады, если вы поделитесь в комментариях своим мнением, опытом, или, может быть, советами :)
Tech-команда Купера (ex СберМаркет) ведет соцсети с новостями и анонсами. Если хочешь узнать, что под капотом высоконагруженного e-commerce, следи за нами в Telegram и на YouTube. А также слушай подкаст «Для tech и этих» от наших it-менеджеров.