River: периодические задачи без cron

Почему самодельный планировщик джоб это костыль и как заменить его периодическими задачами River: расписание у лидера, диспетчер вместо жирной задачи и защита от повторной постановки.

GoRiver

Закон Гудхарта

Когда метрика становится целью, люди начинают улучшать метрику, а не то, ради чего её придумали.

Тимлидство

ElasticAPM: три бага одной интеграции

Три тихих умолчания в связке Gin, GORM, pgx и Elastic APM: почему пропали SQL-спаны и почему та же причина ломала отмену запросов.

GoElasticAPM

Границы модулей в Go: интеграционные тесты с PostgreSQL

Интеграционные тесты Go-модуля: изоляция схемой на тест, проверка репозитория на настоящей базе, откат транзакции, участие в чужой транзакции и сквозной тест сценария.

GoАрхитектураТестированиеPostgreSQL

Границы модулей в Go: тесты use case, адаптеров и клиента

Как тестировать модульный монолит на Go: стабы для локальных интерфейсов, табличный unit-тест оркестрации, проверка перевода типов и ошибок в адаптере и тест HTTP-клиента на httptest.

GoАрхитектураТестирование

Границы модулей в Go: транзакции и контроль импортов

Как проверить границы Go-модулей на практике: преобразовать модели хранения и DTO, вынести внешний вызов из SQL-транзакции и запретить нежелательные импорты.

GoАрхитектураМодульный монолит

Границы модулей в Go: use case, порты и адаптеры

Как описать зависимости use case в Go локальными интерфейсами, перевести типы и ошибки в адаптерах и связать реализации в Composition Root.

GoАрхитектураМодульный монолит

Транзакции в Go через context: одна граница для нескольких репозиториев

Как открыть транзакцию на уровне use case, передать её репозиториям без зависимости бизнес-логики от ORM и правильно обработать вложенные вызовы.

GoАрхитектураPostgreSQLGORM

Sentinel-ошибки в Go: сохраняем смысл между слоями

Почему общий ErrNotFound смешивает разные причины ошибки, где объявлять sentinel-ошибки и как переводить ошибки GORM или database/sql на границе репозитория.

GoАрхитектураОшибки

Закон Паркинсона

Работа заполняет всё время, которое на неё выделили.

Тимлидство

Эффект Рингельмана

Чем больше группа, тем меньше в среднем вклад каждого отдельного человека.

Тимлидство

Проекты в Onplate: AI-настройка в контексте кода

Как проекты в Onplate связывают код, AI-ресурсы, профили, режимы работы и фактическое использование инструментов.

OnplateAI-инструментыПроекты

Onplate: порядок и контроль в AI-инструментах

Управление скиллами, MCP-серверами и субагентами в Onplate: безопасность, стоимость контекста и фактическое использование.

OnplateAI-инструментыDeveloper Tools

Astro для блога

Практический разбор структуры проекта, локальной разработки, production-образа и публикации новой статьи.

AstroDockerDeployment