Увольнение Doxygen: Архитектура нативных парсеров и внедрение libclang
Как мы отказались от тяжелой зависимости в облаке и почему архитектура Intermediate Representation спасла нас от переписывания половины проекта.
Как мы отказались от тяжелой зависимости в облаке и почему архитектура Intermediate Representation спасла нас от переписывания половины проекта.
Поучительная история о том, почему негласные строковые контракты превращают микросервисы в распределенный монолит.
Как безобидный фронтенд на Next.js заставил нас сражаться с хостингами, устаревшими документациями и неявными конвенциями.
Как мы строили Free-Tier, защищались от Abuse-нагрузки и почему выбрали Clerk вместо дешевого Supabase Auth.
Рассказываем, как безобидный файл конфигурации чуть не стал вектором RCE, и почему мы перешли на архитектуру Zero-Trust.
Как мы поняли, что дистрибуция бинарных файлов убьет наш публичный бизнес, и почему нам пришлось разделить продукт на две ветви.
Разбираемся, почему разделение одного семейства рендереров на отдельный приватный плагин было ответом не на архитектурный зуд, а на юридический вопрос.
Как мы за один присест распутали монорепозиторий из пяти репозиториев — и чему нас научил единственный на весь аккаунт Cloudflare-токен.
Старая универсальная модель хранила данные как бесформенные строки, что приводило к тихим потерям информации. Мы переписали ядро на строгие типы, заменив тихую деградацию на громкие ошибки валидации.
Мёртвые кросс-ссылки между рукописными гайдами и страницами автосгенерированного API быстро объяснили, почему решение вести гайды в стороне от Flude, чистым Markdown, было ошибкой.
Как один вопрос от Infrastructure Lead заставил нас переписать пайплайн документации, отказаться от HTML и случайно создать Flude.
Почему проще переписать ИИ-код с нуля, как тесты стали нашим контрактом и как заставить нейросеть саму писать для себя проверки.
Как мы пытались парсить XML, почему ИИ внезапно потянул за собой tree-sitter и почему контроль важнее гениального кода.
Как мы пытались обмануть Doxygen, переделать его разметку под наши стандарты и почему это привело нас к созданию собственного движка.
Почему связки вроде Doxygen+DoxyBook2+Hugo не справляются с большими проектами, и как Flude решает эту проблему.