10.07.2020

Удаленная отладка c Delve

Ранее мы рассмотрели локальное использование отладчика в Goland IDE. В данной статье рассмотрим, как удаленно отладить программу, запущенную в Docker-контейнере из Visual Studio Code и Goland IDE.

Читать дальше → docker debugger delve vscode goland
01.07.2020

Деплой docker swarm из Gitlab CI

Деплой с помощью docker-контейнеров имеет ряд преимуществ по сравнение с деплоем бинарного файла. Рассмотрим, в чем заключаются эти преимущества и как мы можем деплоить docker-контейнеры из Gitlab CI.
Здесь говорим только о возможностях базовой утилиты docker. Любые средства оркестрации (например, Kubernetes) будут рассмотрены в будущих статьях.
Читать дальше → docker deploy gitlab ci-cd
30.06.2020

Утилита / библиотека net-wait-go

Утилита и одновременно библиотека для ожидания доступности сетевого сервиса на порту (TCP, UDP).
Читать дальше → tcp udp docker
29.06.2020

Минимально возможный Docker образ для GO

Рассмотрим сборку минимально возможного образа Docker с GO программой.
Читать дальше → docker компиляция upx ldflags
08.05.2020

Компиляция и деплой по SSH в Gitlab CI

Рассмотрим сборку проекта на GO в принципе и как это работает в Gitlab CI.
Читать дальше → gitlab компиляция деплой ssh модули вендоринг ci-cd
02.05.2020

sync.Map

Рассмотрим особенности типа sync.Map.
Читать дальше → sync.map map конкуррентность
02.05.2020

HTTP

Рассмотрим средства для работы с HTTP в GO.

Читать дальше → http клиент сервер middleware
21.04.2020

Dependency injection в GO

Поговорим о том, как работает паттерн внедрения зависимости и о том, как решать проблемы менеджмента зависимостей в больших программах.
Читать дальше → dependency injection контейнер singleton multiton
23.04.2020

Профилирование

GO изначально предоставлял разработчику богатые средства для профилирования программ — пакет pprof и одноименную консольную утилиту go tool pprof. Давайте разберемся, зачем нужно профилирование, как его использовать и что нового по этой теме в GO.
Читать дальше → профилирование pprof бенчмарк ab процессор аллокации удаленно
09.04.2020

GO templates

Пакеты text/template, html/template являются частью стандартной библиотеки GO.
Шаблоны GO используются во многих решениях на базе языка, таких как docker, kubernetes, helm. С ними интегрированы также многие web-библиотеки, например echo. Понимание стандартных шаблонов в GO полезно в очень многих задачах.
Данная статья содержит адаптированные материалы из докуметации к пакету text/template и несколько решений из опыта автора. После описания стандартных возможностей, для более глубокого понимания рассмотрим исходники пакетов text/template и html/template.
Читать дальше → шаблоны html text исходники
07.04.2020

Фильтрация по списку значений с GORM

Если у вас есть список значений, например 1,2,3, для фильтрации по нему нужно использовать инструкции ANY и pq.Array:

Читать дальше → gorm sql postgresql
04.04.2020

Принцип работы типа slice в GO

Как работать со срезами, объяснено в блоге GO. Далее рассмотрим внутренее устройство среза.
Читать дальше → срез исходники аллокации
02.04.2020

Работа с данными в конкурентных программах на GO

Горутины — базовая фича языка GO. Код запускаемый в горутинах, может работать паралеллельно. Параллельно работающие горутины могут использовать общие переменные и возникают вопросы безопасна ли такая работа и как поведет себя программа.
Читать дальше → срез карта счетчик sync atomic каналы mutex lock конкурентность race
02.04.2020

Принцип работы типа map в GO

Что такое тип map в GO для разработчика отлично описано в блоге GO. Нам лишь надо помнить, что это тип данных, позволяющий получить значение по ключу. От типа map требуется сделать это максимально быстро.
Читать дальше → карта исходники
01.04.2020

Написание простого чата на tcp на GO

Пример кода простого tcp-чата на GO с объяснением логики

Читать дальше → tcp server чат
31.03.2020

Golang regexp: как заматчить перенос строки

Почему PHP- и JavaScript-подобные регулярные выражения с точкой (".") работают иначе на GO
Читать дальше → регулярные выражения исходники
30.03.2020

GORM: фильтрация сущности по связанной сущности

Задача не совсем проста, особенно в случае использования GORM

Читать дальше → gorm sql postgresql
24.03.2020

Как и зачем использовать дебаггер с GO

Дебаггер — весьма полезный и мощный инструмент. Он поможет разобраться в деталях происходящего в коде, исследовать незнакомый код, избежать добавления бесполезного на продакшне отладочного кода (fmt.Print и тп)

Читать дальше → дебаггер goland