AI уже делает инженеров хуже? Как агентная разработка выращивает технологический зоопарк

AI позволяет добавить в продакшен незнакомую технологию раньше, чем команда успеет её понять. Почему так появляются технологический зоопарк и долг компетенций.

AI-инструментыМнение

Ruby всё ещё в продакшене. Но кто будет писать на нём через 10 лет?

Rails получает релизы, большие системы работают, но вход в профессию сузился: рынку нужны middle и senior, а мест, где ими становятся, заметно меньше. Почему ставка на агентов этот разрыв не закрывает.

RubyRailsМнение

Продовый REPL: Yaegi поверх composition root

Консоль для прода на Go: отдельный процесс с тем же composition root, read-only по умолчанию и REPL на Yaegi

GoPostgreSQLDeveloper Tools

DHH перестал писать код руками. Как мнение одного инженера влияет на целую индустрию

DHH за год прошёл от страха потерять навык из-за AI до отказа писать код руками. Почему разворот одного инженера меняет то, какие инструменты другие считают допустимыми, и где заканчивается применимость его опыта.

AI-инструментыМнениеRubyRails

PostgreSQL: три источника времени в одной таблице

Резерв товара сгорал за пять минут вместо тридцати: приложение и база писали в одну таблицу время из разных поясов. Как это найти, почему стейдж молчал и зачем проверять таймзону при старте.

PostgreSQLGoGORM

ИИ частично ускорил разработку. А что насчёт всего остального?

ИИ помогает быстрее писать код и проверять идеи, но ускорение разработки не означает ускорение всей системы. Что происходит с тестированием, ревью, метриками и выращиванием инженеров.

ИИРазработка

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

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

GoRiver

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

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

Тимлидство

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

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

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

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

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

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

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

Три неочевидных нюанса в связке Gin, GORM и pgx, из-за которых интеграция с Elastic APM работала лишь частично: GORM незаметно игнорировал настройку simple protocol, SQL-спаны не доходили до Kibana, а передача gin.Context вместо request context заодно ломала отмену запросов и таймауты.

GoElasticAPM

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

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

Тимлидство

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

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

Тимлидство

Границы модулей в 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: почему агент ведёт себя иначе в соседней папке

Проект это папка, и то, что получит в ней агент, зависит от области установки, приоритета клиентов, файлов инструкций и каталога запуска. Как увидеть все четыре причины и сравнить два репозитория.

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

Onplate: инвентаризация пяти AI-клиентов

Что накапливается в Claude Code, Codex, Cursor, GLM и OpenCode за год и как это разобрать: откуда взялся каждый файл, что находит сканер, сколько он стоит на каждом запросе и срабатывает ли скилл вообще.

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

Astro для блога

Инженерный блог без CMS и базы: статья это файл в репозитории, локальная и production-сборки идут по одному коду, а в бою работает только nginx.

AstroDeployment