Top.Mail.Ru
Колонки

Четыре причины, по которым стоит писать продукт на языке программирования Go

Колонки
Виталий Левченко
Виталий Левченко

Лид курса по языку Go в «Яндекс Лицее»

Екатерина Алипова

Язык программирования Golang (Go) относят к языкам общего назначения: на нем пишут системные утилиты, программы для десктопа, мобильные приложения и веб-сервисы. Go используется во многих популярных сервисах — например, в голосовых помощниках, в приложениях для заказа такси, браузерах и рекламных инструментах.

При этом на мировом рынке труда разработчиков Go меньше, чем тех, кто знает, например, Python. А потому специалисты по Go дороже примерно на 30%. Почему этот язык программирования популярен и какому бизнесу он подходит, рассказал лид курса по языку Go в «Яндекс Лицее» Виталий Левченко.
Четыре причины, по которым стоит писать продукт на языке программирования Go

Когда важно быстродействие

Если сравнивать с Python, то Go обходит его в производительности в несколько, а порой и в десять раз. Есть целый ряд случаев, когда это имеет решающее значение для бизнеса.

Как пример — интернет-реклама и скорость открытия баннера. Одно дело, когда баннер отображается через 500 миллисекунд, а вместе с тем подвисает весь сайт, что раздражает пользователя. Другое — когда всё загружается за 50 миллисекунд и проходит гладко. 

Еще один сервис, где скорость работы критична, — маркетплейс. Пользователи открывают десятки страниц, выставляют фильтры и надеются, что всё быстро загрузится. Медленная работа сервиса имеет высокую цену: покупатель уходит на другую площадку, потому что не дождался загрузки страниц. И здесь снова приходит на помощь Go.

Все сервисы и компании, связанные с релокацией, на одной карте

 

Когда данных очень много

Go отлично справляется с нестандартными кейсами, когда нужно написать свою базу или параллельно обрабатывать большое количество данных, — например, в такси.

Пользователь делает заказ и надеется, что машина будет быстро найдена. В это время сервис получает точку отправления и должен вычислить, какой из десяти автомобилей к ней ближе всего, определить рейтинг водителя и дистанцию будущего маршрута, предложить взять заказ тому или иному водителю и так далее. 

В памяти сервиса оказывается огромное количество информации по каждому такси, и все это нужно смоделировать, чтобы выдать пользователю самый релевантный вариант.

Здесь не получится написать код, который будет работать с обычной базой данных, — задача слишком большая и в ней множество нюансов. Приходится писать свою базу данных под конкретную задачу — подбор машины. Для этого используют языки, которые эффективно работают с компьютерной памятью. Сюда входят Go, С# и C++.

Вернемся к примеру с маркетплейсами. На них параллельно идут десятки и сотни тысяч скидочных программ разного формата. И нужно сделать так, чтобы скидки считались корректно, зависимости между ними учитывались и в итоге пользователь видел цену с учетом всех акций.

Здесь не получится взять стандартную базу данных и внести в нее пару скидочных программ — задача гораздо сложнее. 


Читать по теме: Стало проще и доступнее: тренды в разработке программного обеспечения


 

Когда проект состоит из микросервисов

Если у вас большой сервис, состоящий из нескольких маленьких, то Go подойдет для написания отдельных его частей. Данный язык — надежный вариант, когда создали сервис, оставили на серверах на пару лет и за это время он стабильно работает, ничего с ним неожиданного не приключилось.

Таким образом, можно написать на нем лишь часть продукта, а потом к нему не возвращаться какое-то время.

Пример этого — голосовые помощники, которые состоят из разных навыков. Та же Алиса работает как калькулятор, отдельная ее часть может рассказывать о погоде или читать детскую сказку. Каждый из этих навыков можно отдельно писать на Go.

Более того, Go помогает экономить на поддержании работы микросервисов. Когда продукт — цельный монолит, проблем нет. Когда же он состоит из небольших частей, то за каждой из них разработчикам приходится постоянно следить и «подкручивать» любой микросервис, если он дает сбой. Это приводит к тратам бизнеса. 

Go же по стоимости его поддержки намного дешевле за счет надежности. То же такси сильно завязано на надёжности, поэтому Go для него — прекрасный вариант. 


Читать по теме: Какие языки программирования учить для работы с AI?


 

Когда проект быстро растет

У языка Go не такой высокий порог входа. Разработчик, владеющий, скажем, PHP, быстро разберется в Go и сможет влиться в работу над проектом. В этом смысле Go уникален: нет необходимости два года погружаться в устройство языка, если до этого был опыт бэкенд-разработки — достаточно общих навыков программирования.

Вся спецификация языка заключена буквально в одной веб-странице, он прост для освоения — начать изучать Go можно уже в школе. При этом на нем можно сразу писать промышленный код, создавать проекты и собирать портфолио для работы.

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

Кроме того, благодаря активному сообществу, в котором специалисты по Go делятся своими рабочими решениями, производительность таких программистов значительно выше. Во многих случаях разработчик может использовать под свою задачу готовое решение вместо того, чтобы реализовывать его с нуля.

Большое количество готовых решений ведет к стандартизации. А значит, разработчику будет проще переходить работать из одного проекта в другой, а бизнесу — проще нанимать новых специалистов. Вместе с тем через активное сообщество проще находить кадры.

 

Случаи, когда Go не подойдет

Главное, что следует помнить, — Go нужен для сложной и продуманной архитектуры. Если же речь об MVP, прототипе, который нужен, чтобы протестировать гипотезы, смысла выбирать Go нет: выйдет дольше и дороже.

Второй момент, где Go не силен, — работа с машинным обучением. Для этой задачи попросту нет хороших библиотек на Go. Лучше использовать языки, в которых есть интеграции с системами машинного обучения, — например, Python или Scala. 

В любом случае при выборе языка программирования для изучения или работы важно понимать его сильные стороны и ограничения. А в случае бизнеса следует прописать, какие задачи предстоит решать, и разобраться, подходит ли для них Go. Тогда вы сможете найти самого подходящего техлида, на которого сможете положиться и который поможет с дальнейшим вектором развития.


Читать по теме: No-code в HR: как это работает и какому бизнесу подойдет


Фото на обложке: go.dev

Подписывайтесь на наш Telegram-канал, чтобы быть в курсе последних новостей и событий!

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 Успешный год, обновленная программа и награждение лучших — «Базальт СПО» провела вторую партнерскую конференцию
  2. 2 Программирование 2.0: как ИИ-ассистенты упрощают разработку
  3. 3 Как геймдев-стартапам сократить расходы и сроки за счет опенсорса
  4. 4 7 советов, которые помогут вендору грамотно организовать поддержку партнеров
  5. 5 Популярные технологии, документация и единый стиль кода. Что учесть при разработке MVP ИТ-проекта
EdTech: карта российского рынка
Все компании и инвесторы в области образовательных технологий
Перейти