Category : golang

golang
Некоторые мысли о проектировании библиотек (с примерами на Go)

Программисты много пользуются библиотеками. Но спроектировать библиотеку сложно. В этой статье я изложу некоторые соображения по поводу того, как создавать библиотеки. Для начала разграничим, чем нам приходится заниматься при программировании. Попробуем представить акты программирования как беседы. Далее разберём, какие основные виды деятельности складываются в «программирование», как его принято понимать. Всё это послужит нам основой для разработки более качественных программных библиотек.Итак…

  • среда, 25 марта 2026 г. в 00:00:08
golang
Как перестать наступать на грабли в Go: набор рабочих рецептов

Пишете на Go или только начинаете изучать язык? Эта шпаргалка точно сэкономит вам кучу времени. Никакой воды, абстрактных рассуждений и скучных введений. Мы пройдёмся по тем самым ситуациям, с которыми бэкендеры сталкиваются на каждом проекте: конкурентность, сеть, работа с JSON, обработка ошибок, тесты и дебаг.Можете смело добавлять это в закладки. Забыли синтаксис или паттерн, открыли нужный раздел, скопировали, адаптировали и поехали дальше.Каждый блок кода ниже — это самостоятельный пример.…

  • среда, 25 марта 2026 г. в 00:00:07
golang
Тоталитарный Golang

Всем привет! Сегодня я попробую вас убедить, что уникальным торговым предложением языка Go являются не горутины, скорость, минималистичность или современность, а "тоталитарность". Что?Преимуществами Go называют скорость, производительность, многопоточность, современность и удобность в микросервисах (чтобы это ни значило), и часто эти свойства выделяются как что-то уникальное.Но разве в Java нет горутин? Разве Python какой-то старый? Разве Rust не быстрее? Мои коллеги не правы, потому чт…

  • вторник, 24 марта 2026 г. в 00:00:07
golang
Когда нейросети общаются сами: эксперимент с диалогом двух LLM и графическая утилита на Go

Всем привет! Что будет, если задать двум LLM моделям одну тему и позволить вести диалог без участия человека? Я написал небольшую программу на Go, которая делает это автоматически. Рассказываю как она устроена и почему она может пригодиться каждому, кто работает с Ollama. Один интерфейс для двух моделейПрограмма представляет собой графическое приложение на Fyne. В верхней левой части окна настройка диалога. Выбираем две модели из списка, который программа получает командой ollama list. Можно за…

  • понедельник, 23 марта 2026 г. в 00:00:36
golang
Как быстро встроить MAX в свои системы

MAX для бизнеса без лишней магии MAX в России постепенно превращается не просто в «ещё один мессенджер», а в канал, который всё чаще рассматривают как рабочую точку контакта с пользователем: для уведомлений, сервисных сообщений, внутренних ботов и групповых сценариев. И как только компания доходит до реальной интеграции, почти всегда начинается знакомая история: сначала один скрипт на отправку уведомлений, потом второй на обработку входящих сообщений, потом отдельная логика для групп, потом ещ…

  • понедельник, 23 марта 2026 г. в 00:00:25
golang
Я написал кэш для API на Go за 120 строк кода — и PostgreSQL перестал быть узким местом (ускорение …

Если API начинает тормозить, первое решение обычно очевидно — добавить Redis. Но иногда оказывается, что проблема гораздо проще. В одном из сервисов PostgreSQL начал упираться в повторяющиеся запросы. Одни и те же данные запрашивались тысячами клиентов. Практически каждый HTTP-запрос заканчивался одинаковым SQL-запросом. Любопытство победило — вместо готового решения был написан небольшой кэш прямо внутри сервиса. На это ушло примерно полчаса.Результат оказался неожиданным: некоторые эндпоинты …

  • воскресенье, 22 марта 2026 г. в 00:00:12
golang
Паттерны конкурентности в Go. Подробный разбор. Часть 2. Fan-Out/Fan-In

Fan-Out/Fan-InПаттерн Fan-Out/Fan-In — это подход к параллельной обработке задач в Go с использованием горутин и каналов. Он позволяет распределить работу между несколькими исполнителями (Fan-Out) и затем собрать результаты в одном месте (Fan-In). Паттерн Fan-Out/Fan-In очень похож на паттерн Worker Pool. Более того, в большинстве практических случаев Worker Pool можно считать частным (специальным) случаем паттерна Fan-Out/Fan-In. По сути, принципиальная разница заключается в том, что Fan-Out/F…

  • воскресенье, 22 марта 2026 г. в 00:00:01
golang
Видеонаблюдение на Go с потоковой передачей в Telegram

Привет всем! Хочу поделиться небольшим личным проектом, который родился из чистой бытовой необходимости. Я давно хотел иметь возможность удаленно поглядывать на свою дачу, особенно когда уезжаю на несколько недель. Готовые решения в духе "умных камер" меня не совсем устраивают: то подписки дорогие, то Privacy Policy сомнительная, то функционал избыточный. В итоге я решил, что проще и надежнее будет написать свою собственную утилиту.Идея проста: поставить на даче маломощный неттоп, подкл…

  • суббота, 21 марта 2026 г. в 00:01:31
golang
Разбираем net/http на практике. Часть 2.2: Архитектура и безопасность. Внедряем Clean Architecture,…

Предыдущая часть Предисловие. Спасибо за тёплые отзывы о предыдущих статьях цикла. Ваша поддержка – настоящий стимул продолжать дальнейшую работу! Оставляйте мнение и вопросы по пройденному материалу в комментариях – я буду рад любой обратной связи.Если вы читали предыдущую часть – вы помните, какой серьезный фундамент мы заложили для нашего сервиса. DeadDrop уже научлся: Принимать и обрабатывать POST-запросы Парсить файлы Защищаться от DoS-атак Хранить данные в потоко-безопасном in-memory х…

  • суббота, 21 марта 2026 г. в 00:01:19