Четыре причины, по которым стоит писать продукт на языке программирования 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-канал, чтобы быть в курсе последних новостей и событий!