Architecture Decision Record

Active theme: Light

← Примеры записей решений

Запись архитектурного решения: язык программирования Go

Название: принятие языка программирования Go

Состояние: принято

Контекст

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

Решение

Мы будем использовать язык программирования Go для создания веб-приложений в дальнейшем.

Обоснование

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

  2. Высокая производительность и масштабируемость: Go компилируется в машинный код, который выполняется на сервере нативно. Это приводит к более быстрому выполнению и лучшей производительности по сравнению с интерпретируемыми языками вроде Java. Кроме того, модель конкурентности Go обрабатывает несколько запросов одновременно, что делает его очень масштабируемым.

  3. Сильная поддержка сообщества: у Go яркое сообщество разработчиков, которые вносили вклад в его рост на протяжении многих лет. Это означает, что есть множество ресурсов, библиотек и фреймворков, которые помогут нам начать и создавать надёжные приложения.

  4. Гибкость: Go можно использовать как для фронтенд-, так и для бэкенд-разработки. Это значит, что мы можем использовать его преимущества в обеих областях для наших проектов разработки.

Следствия

  1. Обучение: нашим разработчикам потребуется пройти обучение, чтобы изучить язык программирования Go и его нюансы.

  2. Опыт: при переходе с Java на Go мы можем столкнуться с некоторыми трудностями. Нашим разработчикам может потребоваться некоторое время, чтобы освоить новый язык.

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

  4. Привязка к поставщику: Go — язык программирования с открытым исходным кодом, и мы не будем привязаны ни к какому поставщику или провайдеру услуг.

Заключение

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

Благодарность: эта страница создана ChatGPT, затем отредактирована для ясности и форматирования.