18-месячный переписывание кодовой базы Autonoma: уроки по тестированию, техническому долгу и Server Actions

Почему успешный продукт потребовал полного переписывания
Autonoma, компания, которая несколько раз меняла направление (корпоративный поиск, генерация документации, агент по кодированию, платформа для тестирования QA), разрабатывала продукт более 1,5 лет, привлекла клиентов, получила финансирование от крупного игрока отрасли и наняла команду из 14 человек. Несмотря на этот прогресс, они решили выбросить всю кодовую базу и начать заново.
Эпоха без тестов и её последствия
Изначально команда использовала TypeScript-монополию без строгого режима и без тестов. Это работало с 2 инженерами, которые владели большими частями кодовой базы, но стало катастрофой после найма новых сотрудников. В кодовой базе появились проблемы с null, неопределённое поведение и плохая обработка ошибок, что приводило к багам, возникающим "из ниоткуда", и даже потере клиента. Основатель изначально запрещал тесты, чтобы сохранить культуру быстрой поставки, но позже осознал, что это повлияло на качество продукта и производительность.
Технические решения, обусловившие переписывание
Исходный продукт был создан в эпоху GPT-4 (не 4o), когда модели требовали обширных защитных механизмов. Они создали сложные обёртки Playwright и Appium с комплексными проверками и 7 стратегиями кликов, которые могли самовосстанавливаться на лету. С развитием моделей эта сложная проверка больше не нужна, что делает унаследованную кодовую базу с техническим долгом менее ценной.
Отказ от Next.js и Server Actions
Команда отказывается от Next.js и Server Actions, ссылаясь на несколько проблем:
- Server Actions асинхронны, требуя блоков useEffect или ручного управления состоянием в React
- Их сложно тестировать — тестирование требует создания объектов Prisma с базами данных в памяти или мокирования
- Отсутствует возможность внедрения зависимостей
- Они выполняются последовательно глобально, создавая "искусственный глобальный блокировщик интерпретатора Python, но на TypeScript"
Новая реализация начинается с тестов с самого начала и использует самый строгий режим TypeScript.
📖 Read the full source: HN AI Agents
👀 Смотрите также

Anthropic запускает Claude Code Channels для интеграции в мессенджеры
Anthropic запустила Claude Code Channels, позволяя разработчикам отправлять сообщения в сессии Claude Code из Telegram или Discord с полным доступом к инструментам, включая редактирование файлов, запуск тестов и операции с git. Функция требует платного тарифа Anthropic и поддерживает две платформы по сравнению с 20+ у OpenClaw.

Разработка LibreOffice Online возобновляется после голосования сообщества.
Фонд Document Foundation возобновил работу над LibreOffice Online после того, как голосование сообщества отменило заморозку 2022 года. TDF вновь откроет репозиторий для внесения вкладов, но не будет размещать серверы — вместо этого предоставит инструменты для самостоятельного размещения.

OpenClaw теряет экономически выгодный доступ к моделям GPT и Claude.
Пользователи OpenClaw больше не могут использовать модели Anthropic без оплаты высоких комиссий за API, а OpenAI значительно сократил квоты для Business и Teams аккаунтов до уровня, близкого к бесплатному тарифу, вынуждая пользователей обращаться к китайским или локальным моделям.

Apple создает новую архитектуру ИИ на основе фундаментальных моделей Google Gemini
Apple объявила о крупном обновлении Apple Intelligence, построенном на фундаментальных моделях, разработанных совместно с Google с использованием технологии Gemini. Новая архитектура включает оркестратор, модели на устройстве и сервере, а также мультимодальные возможности.