20 декабря 2024 г.

Деплой Telegram бота на AWS Lambda с Function URL

Эта статья является продолжением статьи “Создание AI-телеграм бота на Go с Gemini API и AWS Lambda” и содержит детальные инструкции по настройке и деплою Telegram бота на AWS Lambda с использованием Function URL.

Читать далее → Go Telegram Aws Lambda Deploy Function-Url Cli
19 декабря 2024 г.

Создание AI-телеграм бота на Go с Gemini API и AWS Lambda

В этой статье мы рассмотрим, как создать интеллектуального Telegram бота на Go, который выступает в роли прокси между пользователями и API Google Gemini. Бот будет выполнять две основные функции: отвечать на сообщения пользователей и генерировать изображения. Хотя этот механизм может быть существенно расширен дополнительными возможностями, такими как генерация голоса и видео, мы сосредоточимся на этих двух типах запросов для простоты.

Читать далее → Go Telegram Gemini Ai Aws Lambda Bot
1 июля 2020 г.

Удалённая отладка с Delve

Ранее мы обсуждали локальную отладку с помощью IDE GoLand. Теперь мы обсудим, как удалённо отлаживать программу, работающую внутри Docker-контейнера, используя Visual Studio Code и GoLand IDE.

Читать далее → Docker Debugger Delve Vscode Goland
1 июля 2020 г.

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

Ранее мы рассматривали деплой бинарного файла программы через SSH на сервер

Сейчас мы рассмотрим как реализовать деплой Docker контейнера из Gitlab CI.

Деплой docker swarm из Gitlab CI
Читать далее → Docker Deploy Gitlab Ci/Cd
30 июня 2020 г.

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

Утилита и пакет Go для ожидания открытия портов (TCP, UDP).

Утилита и библиотека net-wait-go
Читать далее → Tcp Udp Docker
29 июня 2020 г.

Создание минимального Docker образа для Go приложений

Давайте обсудим, как создать минимальный Docker образ для Go программы.

Создание минимального Docker образа для Go приложений
Читать далее → Docker Compilation Upx Ldflags
8 мая 2020 г.

Компиляция и деплой через SSH в GitLab CI

Давайте рассмотрим, как работает компиляция Go и как использовать GitLab CI для этого.

Компиляция и деплой через SSH в GitLab CI
Читать далее → Gitlab Compilation Deploy Ssh Modules Vendor Ci/Cd
2 мая 2020 г.

HTTP

Все примеры из статьи находятся в репозитории на github.

Давайте рассмотрим инструменты HTTP в GO.

Читать далее → Http Client Server Middleware
2 мая 2020 г.

sync.Map

Давайте рассмотрим использование sync.Map и его исходный код.

sync.Map
Читать далее → Sync.map Map Concurrency
23 апреля 2020 г.

Профилирование Go: основы и практика

Go имеет богатые инструменты профилирования с самого начала — пакет pprof и go tool pprof. Давайте обсудим, почему профилирование полезно, как с ним работать и что нового в этой области.

Профилирование Go: основы и практика
Читать далее → Profiling Pprof Benchmark Ab Cpu Allocation Remote
21 апреля 2020 г.

Внедрение зависимостей в GO

Давайте поговорим о паттерне внедрения зависимостей и управлении зависимостями в больших программах.

Внедрение зависимостей в GO
Читать далее → Dependency Injection Container Singleton Multiton
9 апреля 2020 г.

Шаблоны GO: принципы и использование

Пакеты text/template и html/template являются частью стандартной библиотеки Go. Шаблоны Go используются во многих программах, написанных на Go — Docker, Kubernetes, Helm. Многие сторонние библиотеки интегрированы с шаблонами Go, например Echo. Знание синтаксиса шаблонов Go очень полезно.

Эта статья состоит из документации пакета text/template и нескольких решений автора. После описания синтаксиса шаблонов Go мы погрузимся в исходники text/template и html/template.

Шаблоны GO: принципы и использование
Читать далее → Templates Html Text Sources
7 апреля 2020 г.

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

Когда необходимо отфильтровать данные по списку значений (например, по ID: 1, 2, 3), следует использовать оператор ANY в сочетании с pq.Array из драйвера PostgreSQL.

Читать далее → Gorm Sql Postgresql
4 апреля 2020 г.

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

В блоге Go описывается, как использовать срезы. Давайте посмотрим на внутреннее устройство срезов.

Принципы работы типа slice в GO
Читать далее → Slice Allocation Sources
2 апреля 2020 г.

Обработка данных в конкурентных программах

В Go у нас есть функциональность горутин из коробки. Мы можем запускать код параллельно. Однако в нашем параллельно выполняющемся коде мы можем работать с общими переменными, и не совсем понятно, как именно Go обрабатывает такие ситуации.

Обработка данных в конкурентных программах
Читать далее → Map Sources
2 апреля 2020 г.

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

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

Принципы работы типа map в GO
Читать далее → Map Sources
30 марта 2020 г.

Golang regexp: сопоставление символа новой строки

Почему регулярные выражения с точкой (".") работают по-другому в Go по сравнению с PHP и JavaScript.

Golang regexp: сопоставление символа новой строки
Читать далее → Regular Expressions Sources
30 марта 2020 г.

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

Эта задача не так проста, особенно с GORM.

Читать далее → Gorm Sql Postgresql
30 марта 2020 г.

Создание простого TCP чата на Go

Пример простого TCP чата на Go с объяснением логики.

Читать далее → Tcp Server Chat
24 марта 2020 г.

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

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

Читать далее → Debugger Goland