Clean Room: рефакторинг, который решал не архитектурный вопрос
Разбираемся, почему разделение одного семейства рендереров на отдельный приватный плагин было ответом не на архитектурный зуд, а на юридический вопрос.
Открытая разработка: архитектурные заметки, инженерные решения и обновления прогресса.
Разбираемся, почему разделение одного семейства рендереров на отдельный приватный плагин было ответом не на архитектурный зуд, а на юридический вопрос.
Раннер падал каждые две с половиной минуты, а job для одного репозитория не мог запуститься больше суток. Мы искали сетевой баг — с захватом пакетов и дампом памяти в WinDbg. Настоящая причина оказалась в одной строке фильтра API и логике watchdog'а.
Как архитектура из нескольких репозиториев обернулась ловушками `not our ref` в Git и необходимостью тестировать ядро в двух параллельных реальностях.
Поскольку проект состоял из пяти репозиториев, каждый из них обзавёлся своей собственной CI. Красиво архитектурно — и дорого по минутам GitHub Actions. Подняли свою Windows-машину с одним раннером на всех пятерых — и написали для него сторожа, которому предстояло с треском провалиться меньше чем через сутки.
Что делать, если парсер генерирует документацию для класса, которого не может найти глобальный текстовый поиск по всему репозиторию? История одной ложной паники.
Трижды наш сервер падал от нехватки дискового пространства. История о том, почему нельзя делегировать управление файлами Garbage Collector'у.
Каждая пересборка гоняла Doxygen и парсинг XML заново, даже если ничего не изменилось. Двухуровневый кэш на двух отпечатках эту боль снял. Но название неслучайно с подвохом: реальную скорость он дать не может, потому что кэшировать умеет только то, что вообще можно пропустить целиком.
Рабочее название движка оказалось занято брендом отладчика микроконтроллеров. Мы перебирали короткие варианты с подстрокой ude, одновременно оценивая благозвучие, чистоту и продвигаемость.
Как мы за один присест распутали монорепозиторий из пяти репозиториев — и чему нас научил единственный на весь аккаунт Cloudflare-токен.
Никакой драмы с падением прода — только курьёзная и показательная находка. Прогнали автономный ИИ-аудит по ядру движка и наткнулись на условие, которое гарантированно выполняется всегда.