Skip to content

Go boilerplate

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

Рассмотрим самописный бойлерплейт, который включает в себя опыты разных компаний на рынке. Ознакомься с ним по ссылке.

Для начала пройдемся по структуре.

Данная структура будет знакома любому гоферу (гошнику), имеющему опыт работы в big tech в России или за границей. Когда на собеседовании просят рассказать о проектах, ты можешь показать проект со структурой, представленной выше. Давай разберемся в этой структуре.

cmd: эта папка содержит точки входа, например терминальную версию приложения или веб-версию API. В бэкенд-разработке она будет точкой входа старта веб-приложения.

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

pkg: эта папка содержит пакеты, которые могут быть использованы как внутри, так и вне проекта. Они являются частью публичного API проекта. В данном шаблоне pkg отсутствует.

config: папка с конфигурацией приложения, в которой используется библиотека godotenv для управления конфигурацией в папке Config. Библиотека godotenv является одним из стандартных инструментов для управления конфигурацией в Go. Она позволяет загружать переменные из файла .env и использовать их в твоем проекте.

Использование файла .env в связке библиотеки godotenv с Docker Compose позволяет сделать управление конфигурацией проекта более удобным. В Docker Compose файл .env также используется для конфигурации стека контейнеров, поэтому можно легко указывать различные параметры конфигурации в одном файле, а затем эффективно использовать их в двух местах — в подгрузке конфигурации в приложении с помощью библиотеки godotenv и в конфигурации docker-compose.yml.