article-spots
article-carousel-spots
programs
Технологии

Let’s Go! Тысяча и одна причина полюбить Golang

7 сент. 2021

Язык Go от компании Google в свое время стал настоящим прорывом среди традиционных серверных инструментов. За что его так полюбили разработчики и при чём тут голубой суслик? Разбираемся в особенностях Golang вместе с Сергеем Штриплингом, Senior Software Engineer в EPAM, давно питающим к этому языку тёплую любовь.

Что такое язык Go? И при чём тут суслики?


– Язык Go – компилируемый, строго типизированный, open source язык программирования. Его создатели, сотрудники компании Google, столкнулись с очевидной проблемой: языки типа Python легки в освоении, но довольно медлительны, а C и C++ – шустрые, проверенные временем, но для их освоения до Junior-уровня необходимы годы.

По словам одного из создателей Go, изначальной целью языка было решение внутренних задач компании Google. Они хотели найти решение, которое позволило бы им эффективно справляться со своими локальными проблемами, а также быстро обучать практикантов и переводить их в разработку. В итоге у них получился язык Go, который можно легко освоить без опыта в других языках программирования и сходу писать production-ready код для задач Google. Другие разработчики, после публикации Go в open source в 2009 году, тепло приняли его за простоту, безопасность и надёжность. За 10+ лет существования язык Go оброс своими традициями, полезными библиотеками и практиками разработки, которые по сей день позволяют гоферам по всему миру создавать удобный и конкурентоспособный софт.

Любопытный суслик со смешными зубами – неофициальный символ языка Go. Собственно, поэтому Go-разработчиков и называют гоферами: английское слово Gopher так и переводится – суслик.

 

Почему стоит выбрать Go?

 

– Несмотря на свой небольшой возраст, Go – зрелый язык. За ним стоят серьёзные специалисты, которые изначально заложили надёжный фундамент, определивший правила развития Go. Как язык он хорошо проработан, поэтому в его освоении не возникает особых трудностей. Однако у медали есть обратная сторона – Go очень многословен и дотошен в плане синтаксиса. Иногда вам нужно будет прописывать простейшие функции максимально явно. Хоть это и нервирует, но, говоря по секрету, это очень правильный подход, который прививает полезные привычки: отслеживать все ошибки, следить за имплементацией интерфейсов и оформлением кода, заставляет продумывать архитектуру приложений. В любом языке есть свои особенности, и Go – не исключение.

Go даёт огромное количество базовых инструментов, которые удобны в настройке. Он не стремится стать языком для любой задачи, но он хорошо вписывается в свою нишу – серверные и частично системные приложения. Будет ли Go востребован? Естественно. Он ещё не достиг пика своей популярности, компании только успели его распробовать и понять, где Go может заменить другие языки. Уже сформировались практики и традиции разработки, созданы необходимые библиотеки, которые не только облегчают работу разработчика, но и открывают новые возможности для роста.

 

Подойдёт ли Go в качестве первого языка для знакомства с IT?

 

– Традиционно начинающим инженерам рекомендуют осваивать Python или Javascript, но и Go станет отличным стартом для входа в IT. Как я уже говорил, язык прививает полезные привычки, которые сильно помогут в карьере инженера. Также напомню, что изначально Go разрабатывался для начинающих инженеров, из-за чего даже для неопытного взгляда код выглядит максимально понятно. Это объектно-ориентированый, функциональный, простой и красивый язык, который можно довольно быстро освоить. Говорят, что лучше всего подойти к Go, когда знаешь C.

 

За что можно полюбить Go?

 

– У Go есть много преимуществ, из-за которых количество его поклонников год за годом увеличивается, а спрос на специалистов растёт. Язык используется многими крупными компаниями, включая таких гигантов, как Google, Twitter и Uber. Среди очевидных достоинств я бы отметил:

  • Строгость
  • Простоту (как в освоении, так и в выразительности)
  • Скорость
  • Читаемость
  • Компиеляцию и типизацию
  • Огромную пакетную базу
  • Хорошие документированные библиотеки
  • Постоянное и стабильное развитие
  • Отсутствие исключений, наследования, классов, аннотаций, конструкторов
  • Высокопроизводительность

 

Ну и за суслика, конечно!

 

Go-разработчик – какой он?

 

– Терпеливый! Думаю, вы поймёте это на второй сотне ```if err != nil```. Из-за особенностей синтаксиса языка, гофер натурально стремится к академичности и структуре, любит KISS (от англ. Keep it stupid simple 😉) и не боится сюрпризов – язык постоянно меняется. И мы вместе с ним.

 

Можно ли изучить язык самостоятельно?

 

– Самостоятельно вполне можно освоить основы, если параллельно зависать в сообществах разработчиков, таких как Hackerrank, Habr, тематические каналы в Reddit и т.д. Но несмотря на внешнюю простоту языка, при самостоятельном изучении Go можно упустить важные детали, о которых знают более опытные разработчики. Хорошо иметь кого-то рядом, кто сможет посмотреть твой код, помочь разобраться с системами, указать на ошибки и объяснить их.

 

Как получить первый опыт работы?

 

– Вопрос про «первый опыт работы» похож на вопрос «о курице и яйце» – чтобы получить опыт работы, нужно работать, а чтобы работать, нужно иметь опыт работы. Необходимо «идти в поле», но куда бежать? Еще одна неочевидная сложность: можно ли полностью влиться в процесс и понять “как оно работает” в одиночку? Мой ответ – вряд ли. Эту задачу мы стараемся решить в лаборатории EPAM после окончания ознакомительного тренинга, где начинающие гоферы выполняют рабочий проект под менторством опытных разработчиков, следуя привычным для команд практикам, сталкиваясь со сложностями в принятии решений и их последствиями. Думаю, это можно назвать хорошим первым опытом, и, как показывает практика EPAM, формат лаборатории даёт очень хороший старт в выбранном направлении. Так и Job Offer не за горами!

 

Советы начинающим Go-разработчикам

 

– Лучше сразу приучить себя к правильным практикам, поэтому на первых порах не бойтесь ошибаться и просить помощи у менторов и коллег. Развивайтесь, чаще посещайте профильные комьюнити и обменивайтесь идеями и решениями с другими разработчиками. Где-то будет сложно, где-то непонятно, но главное – это не бросать, терпеть, не лениться. Как говорят мудрецы, тяжело в учении – легко в бою! Будьте настойчивы, это окупится.

 

Интересно развиваться в Go, перенимая лучшие практики у опытных наставников? Приходи на наши бесплатные тренинги по Golang и начни свой путь в IT-индустрии с трендового языка Go!