River: периодические задачи без cron
Почему самодельный планировщик джоб это костыль и как заменить его периодическими задачами River: расписание у лидера, диспетчер вместо жирной задачи и защита от повторной постановки.
Инженерия · Продукты · Заметки
Почему самодельный планировщик джоб это костыль и как заменить его периодическими задачами River: расписание у лидера, диспетчер вместо жирной задачи и защита от повторной постановки.
Как поставить задачу River в ту же транзакцию, что и бизнес-запись в PostgreSQL, а затем безопасно выполнить её в отдельном воркере.
Личная история о командном KPI, премии за выполнение плана и о том, почему одной метрики оказалось недостаточно.
Когда метрика становится целью, люди начинают улучшать метрику, а не то, ради чего её придумали.
Три тихих умолчания в связке Gin, GORM, pgx и Elastic APM: почему пропали SQL-спаны и почему та же причина ломала отмену запросов.
Интеграционные тесты Go-модуля: изоляция схемой на тест, проверка репозитория на настоящей базе, откат транзакции, участие в чужой транзакции и сквозной тест сценария.
Как тестировать модульный монолит на Go: стабы для локальных интерфейсов, табличный unit-тест оркестрации, проверка перевода типов и ошибок в адаптере и тест HTTP-клиента на httptest.
Как проверить границы Go-модулей на практике: преобразовать модели хранения и DTO, вынести внешний вызов из SQL-транзакции и запретить нежелательные импорты.
Как описать зависимости use case в Go локальными интерфейсами, перевести типы и ошибки в адаптерах и связать реализации в Composition Root.
Как открыть транзакцию на уровне use case, передать её репозиториям без зависимости бизнес-логики от ORM и правильно обработать вложенные вызовы.
Почему общий ErrNotFound смешивает разные причины ошибки, где объявлять sentinel-ошибки и как переводить ошибки GORM или database/sql на границе репозитория.
Работа заполняет всё время, которое на неё выделили.
Чем больше группа, тем меньше в среднем вклад каждого отдельного человека.
Практический сценарий Team Canvas для инженерной команды. Как обсудить цели, роли, ожидания и превратить ответы в рабочие договорённости.
Как проекты в Onplate связывают код, AI-ресурсы, профили, режимы работы и фактическое использование инструментов.
Управление скиллами, MCP-серверами и субагентами в Onplate: безопасность, стоимость контекста и фактическое использование.
Практический разбор структуры проекта, локальной разработки, production-образа и публикации новой статьи.
В разработке
Локальный аудит и управление AI-контекстом: настройки Claude Code, Codex, Cursor, GLM и OpenCode в одном приложении.
Go · Wails · TypeScript
Открыть проект