Лидеры года — новая категория на Workspace Digital Awards! Номинируйте вашу команду, продукты и проекты.

Go (Golang)

Ищите подрядчика?
Устройте конкурс между агентствами и узнайте реальные цены и сроки выполнения вашего проекта. Создание тендера занимает 5 минут.
Об инструменте

Что такое Go

Go (Golang) – язык программирования, разработанный компанией Google в качестве удобного инструмента для решения задач компании. Язык отличается быстрой скоростью компиляции: в то же время, Go содержит легкий для восприятия, высокоуровневый синтаксис. При этом, язык содержит интерпретатор, но из-за высокой скорости компиляции в его использовании нет необходимости. Go – язык со строгой статической типизацией, который поддерживает неявную типизацию. Язык поддерживает параллельные вычисления, благодаря чему программы на Go могут быть многозадачными.

У Go простой синтаксис, который легко изучить. Язык специально разработали таким образом, чтобы опытные программисты могли в кратчайшие сроки перейти с любого другого языка на Go. К примеру, в Go всего 25 ключевых слов, в то время, как в Java – 50. Также, в разработке крупных проектов помогает стандартная утилита GoDoc, которая автоматически генерирует документацию к коду.

Важной особенностью Go является реализация объектно-ориентированного метода программирования без наследования. В Go нет классов, но есть привычные методы, которые можно встраивать друг в друга. Такой принцип реализации ООП называется «Композиция вместо наследования»: кроме Go, его можно встретить в языке Rust.

Параллельное программирование в Go достигается за счет горутин (goroutine). Горутина – это функция, которая по команде разработчика может выполняться одновременно с другими функциями. Благодаря горутинам язык Go поддерживает не только многозадачность, но и многопоточность с распределением нагрузки по ядрам процессора. При этом, горутина вызывается просто: ключевым словом go в начале команды.

Язык Go содержит большую стандартную библиотеку с пакетами для решения большого количества задач. У языка есть популярные фреймворки, такие как бэкэнд-фреймворк Beego, при этом разработчики зачастую обходятся без них, пользуясь лишь пакетами стандартной библиотеки. Также, язык поддерживает использование стандартной библиотеки языка C.

Где применяют Go

Golang относится к языкам общего назначения – на нем можно написать практически все, что угодно. Тем не менее, наиболее часто Go применяют в формировании сложной бэкэнд-архитектуры, поскольку Go – быстрый и многопоточный язык. Поскольку Go компилируется в бинарный файл, его удобно использовать в создании кроссплатформенного сетевого ПО. Также, Go поддерживает сторонние пакеты для машинного обучения, которые размещены на GitHub.

Преимущества разработки на Go

  • быстрая компиляция кода;
  • простота и минимализм синтаксиса;
  • возможность параллельного программирования;
  • легкость освоения языка;
  • стандартная библиотека с большим функционалом;
  • поддержка от Google с регулярными обновлениями языка;
  • достаточное количество русскоязычной вспомогательной документации.

Недостатки разработки на Go

  • меньшее количество специалистов в сравнении с гораздо более популярными PHP и Python;
  • менее развитая экосистема в сравнении с популярными языками.

Примеры готовых работ на Go

  • Docker – программное обеспечение для контейнеризации и автоматического развертывания дополнительных веб-серверов.
  • Kubernetes – ПО для управления развертыванием дополнительных веб-серверов, автоматизации и масштабирования данного процесса.
  • Prometheus – ПО для мониторинга метрик, которое часто используют совместно с Docker и Kubernetes для отслеживания работы веб-серверов.
  • InfluxDB – база данных временных рядов, которую применяют для хранения данных с фиксированием времени; часто работает с Docker и фиксирует показатели веб-серверов.
Подробнее Свернуть

С этим инструментом работают 96 агентств

Инструмент используется в 173 кейсах
Yolka Mobile — цифровой контур MVNO
9
Yolka Mobile — цифровой контур MVNO
#Разработка сайтов под ключ #Приложение под ключ
Магазин грузился 5 секунд - теперь мгновенно: перевели монолит на Laravel в 7 сервисов на Go и С#
83
Магазин грузился 5 секунд - теперь мгновенно: перевели монолит на Laravel в 7 сервисов на Go и С#
#Разработка сайтов под ключ #Разработка программного обеспечения #Администрирование серверов
VPN с биллингом: 3 000+ туннелей, конфиг без оператора
75
VPN с биллингом: 3 000+ туннелей, конфиг без оператора
#Программирование сайта #Разработка чат-ботов и Mini Apps #Разработка программного обеспечения
Мониторинг оборудования: 25 млн сообщений/сутки, опрос в 6 раз быстрее
64
Мониторинг оборудования: 25 млн сообщений/сутки, опрос в 6 раз быстрее
#Программирование сайта #Разработка программного обеспечения #Администрирование серверов
Найда: B2B-поиск поставщиков — 4,5 млн карточек, выдача
32
Найда: B2B-поиск поставщиков — 4,5 млн карточек, выдача
#Проектирование сайта #Программирование сайта #Разработка программного обеспечения
UnicornStar — open-source платформа поиска работы
45
UnicornStar — open-source платформа поиска работы
#Разработка сайтов под ключ #Внутренняя оптимизация сайта #Проектирование и дизайн CRM
Посмотреть все
СЛЕДУЮЩАЯ
С