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