Использование ldflags для установки информации о версиях в приложениях Go

Введение

При развертывании приложений в производственной среде сборка двоичных файлов с информацией о версии и другими метаданными помогает улучшить процессы мониторинга, регистрации данных и отладки за счет добавления идентификационной информации для отслеживания версий сборок. Информация о версии часто содержит динамические данные, такие как время сборки, компьютер или пользователя, выполняющих сборку двоичного файла, идентификатор в системе контроля версий (VCS) и т. д. Поскольку эти значения постоянно меняются, внесение этих данных в исходный код и их изменение при каждой сборке становится непростой задачей, где могут возникнуть ошибки. Файлы исходного кода могут перемещаться, переменные и константы могут менять файлы во время разработки, и все это может нарушить процесс сборки. Continue reading “Использование ldflags для установки информации о версиях в приложениях Go”

Использование CDN для ускорения загрузки статичного контента

Введение

Современные веб-сайты и приложения часто должны предоставлять большое количество статичного контента конечным пользователям. Это могут быть изображения, таблицы стилей, файлы JavaScript и видео. По мере роста количества и размера таких статичных активов, значительно увеличивается объем трафика, а также время загрузки страницы, что ухудшает опыт просмотра сайта или приложения для ваших пользователей и снижает количество свободных ресурсов сервера. Continue reading “Использование CDN для ускорения загрузки статичного контента”

Знакомство с GOPATH

Введение

Из этой статьи вы узнаете о GOPATH, принципах работы и настройке GOPATH. Это важный шаг для настройки среды разработки Go и понимания процесса поиска, установки и сборки исходных файлов Go. В этой статье мы будем использовать термин GOPATH для описания обсуждаемой концепции структуры папок. Термин $GOPATH будет означать переменную среды, используемую Go для поиска структуры папок. Continue reading “Знакомство с GOPATH”

Указатели в Go

Введение

При написании программного обеспечения на Go вы создаете функции и методы. Данные передаются в эти функции в виде аргументов. Иногда функции требуется локальная копия данных, но при этом вы хотите, чтобы оригинал оставался без изменений. Например, если вы работаете в банке и у вас есть функция для вывода изменений баланса пользователя в зависимости от выбранного сберегательного плана, вам не нужно изменять баланс пользователя до выбора плана, а нужно просто использовать его в расчетах. Это называется передачей по значению, поскольку вы отправляете в функцию значение переменной, но не саму переменную. Continue reading “Указатели в Go”

Видимость пакетов в Go

Введение

При создании пакета в Go конечная цель обычно заключается в том, чтобы сделать пакет доступным для других разработчиков, либо в пакетах более высокого порядка, либо в целых программах. При импорте пакета ваша часть кода может стать компонентом других более сложных инструментов. Однако для импорта доступны только определенные пакеты. Это определяется видимостью пакета. Continue reading “Видимость пакетов в Go”

Функция init в Go

Введение

В Go заданнная функция init() выделяет элемент кода, который запускатся до любой другой части вашего пакета. Этот код запускается сразу же после импорта пакета, и его можно использовать при необходимости инициализации приложения в определенном состоянии, например, если для запуска приложения требуется определенная конфигурация или набор ресурсов. Также используется при импорте побочных эффектов, то есть при применении методики установки состояния программы посредством импорта определенного пакета. Часто используется для регистрации одного пакета в другом, чтобы программа рассматривала правильный код для этой задачи. Continue reading “Функция init в Go”

Выражения defer в Go

Введение

В Go используется много общих управляющих ключевых слов, которые используются и в других языках программирования. В число этих ключевых слов входят if, switch, for и т. д. Однако некоторые ключевые слова отсутствуют в большинстве языков программирования. Одно из них — ключевое слово defer, и хотя оно используется нечасто, вы быстро поймете, насколько полезно оно может быть для ваших программ. Continue reading “Выражения defer в Go”