Go появился 15 лет назад. Не так давно тренд пришел и в Россию. В 2018 году крупнейшая торговая площадка Ozon объявила о том, что примет в штат 200 разработчиков, тестировщиков для реализации новых проектов.
По словам HR-менеджера Ozon.Travel Алины Рулевской, такое решение вызвано необходимостью масштабировать бизнес. Для этого необходимо выстроить принципиально новую технологическую платформу. Go, уверена HR-менеджер, позволит обеспечить скорость и надежность продукта, привлечь программистов, которые заинтересованы в развитии, изучении новых языков программирования. К руководителям компаний, производственных предприятий постепенно приходит осознание, что они стоят на одном месте, не могут двигаться вперед и получать больше прибыли, поскольку технологические ресурсы исчерпаны. Они не так быстро, как хотелось бы, оптимизируют бизнес-процессы и развивают каналы коммуникаций, которые интересны их аудитории.
Язык Go универсален
Для уверенного рывка необходимо переходить на новые платформы, но для этого нужны кадры, обладающие высоким уровнем подготовки. С этим языком программирования можно делать действительно «крутые» вещи. Для этого Go является идеальным вариантом. Он был разработан в 2007 году компанией Google. В Россию Go пришел позднее, но тоже быстро завоевал доверие и известность своей универсальностью, высокой производительностью и скоростью разработки приложений и микросервисов.
Основная сфера применения языка программирования - сетевое программное обеспечение, утилиты и бэкенд. Помимо этого Golang подойдет для многопоточных, кроссплатформенным приложений.
Разработка и поддержка сетевого ПО
Представить работу любой бизнес-структуры без сетевого ПО невозможно. Оно обеспечивает совместную работу пользователей на разных ПК, обмен файлами, доступ сотрудников к базам данным. Компания должна стремиться к тому, чтобы экономить ресурсы. Go не требует много памяти, помогает совершать множество операций одновременно, связывая пользователей, которые находятся даже на разных континентах.
При этом операционные системы требуют оптимизации, интеграции с другими сервисами, мобильными приложениями, базами данных. Без этого бизнес-процессы будут неэффективны. На Golang есть большое количество пакетов и библиотек, которые облегчают оптимизацию и интеграцию.
Разработка облачных сервисов
Популярность облачных разработок с каждым днем только растет. Это вызвано тем, что для бизнеса сегодня предпочтительнее не установка или скачивание дорогостоящих программ, и их «аренда», то есть, пользование сервисов из «облака». Вебинары в Zoom, переговоры в Skype, ведение клиентской базы в Bitrix – эти сервисы используются повсеместно. При этом программирование в Битрикс24 стало удобнее с применением технологий, которые предоставляются Application Programming Interface, или коротко API. С применением Golang можно создавать, обрабатывать и управлять RESTful API. Готовые пакеты помогут быстро настроить маршруты.
Go для утилитов и микросервисов
Язык программирования подходит для четких целей, например для разработки микросервисов. Используют Go в этом случае благодаря готовому набору инструментов и единым принципам проектирования для запуска приложения. При этом он взаимодействует с различными инфраструктурами, форматами кодирования сообщений.
Консольная утилита Sampler позволит визуализировать любую метрику из написанного кода. А набор веб-фреймворков от New York Times поможет за короткое время настроить и создавать API.
Одним из самых известных проектов, написанных на Go, является Docker. Это готовое программное обеспечение, позволяет автоматизировать процессы и управлять приложениями, которые программисты используют в работе чаще всего.
Go и оптимизация приложений
Уже разработанные приложения, которые были написаны на других языках, разработчики переводят на Go, чтобы они работали быстрее, были более производительными. Многие специалисты при написании приложений и других ресурсов сталкиваются с проблемой, когда нужно внести правку, но тогда «полетят» другие части программы. С Go таких сложностей нет.
Приложения для DevOps
Go используется для мониторинга, сбора и обработки больших объемов информации, создания удобных, мощных приложений, написания утилит хелперов, блокчейн-проектов и других сложных задач. При этом язык не требует привлечения чрезмерных аппаратных ресурсов. Один из удачных примеров - система мониторинга Prometheus, которая написана на Go в 2012 году для мониторинга музыкальной социальной сети SoundCloud.
Golang для финансовых систем и облачных вычислений
На язык Go перешли многие банки. Они разрабатывают приложения, используя этот язык программирования для финансовых и облачных вычислений. Go позволяет создавать лучшие функциональные банковские микросервисы, совершенствовать суперапп и околофинансовые услуги, открывать клиентам доступ ко всем инструментам банка.
Go и разработка игр
Изначально этот язык программирования не предполагался для написания игр, но простота и универсальность позволила создать уже несколько игровых движков. На Go можно писать параллельный код и строить сложную архитектуру для многопользовательских игр. Одна из них - Greenlight разработана с помощью Go.
Преимущества Golang
Разберем, какие задачи позволит решить Go:
-
Облачная разработка веб-сервисов, например программы посредством Go kit, Micro, Gizmo, Kite, Goa, Caddy
-
Разработка REST API с использованием Revel, Gorilla, Gin, Martini, Beego
-
Разработка RPC API с помощью RPC, Twirp, Spiral, Gorilla
-
Разработка API GraphQL graphql-go, gqlgen, thunder
-
Разработка бессерверных функций посредством фреймворков для бессерверных приложений, Google Cloud Functions, Sparta, Gordon
-
Разработка веб-интерфейса (WebAssembly) с помощью Hugo, Vugu, TinyGo, Vecty
-
Робототехника, IoT и разработка встраиваемых систем с помощью Gobot, Mainflux, TinyGo, EMBD
-
Разработка приложений CLI с использованием Cobra, cli
С помощью gomobile можно разрабатывать мобильные приложения. Lorca, Wails, Fyne используется для написания настольных приложений. Ebiten, Pixel, G3N применяют для игр. На Go пишутся чат-боты для Discord, Telegram, Slack, more.
Для чего не подойдет Go
Golang не применяют для создания графических интерфейсов, но он успешно используется для их совершенствования.
С момента создания языка программирования прошло 15 лет. За это время он изменился, хотя и не заменил C, но стал одним из лучших для web-разработки.