Мы вчера обсуждали, что далеко не каждая кодовая база готова к тому, чтобы ее смог сопровождать ИИ, вот статья, где больше конкретики
Коротко:
Проблема в том, что ИИ не умеет накапливать контекст. Все, что он получает на вход, он счтает достаточным для принятия решения. Причем, даже если ему дать инструкцию проверить хватает ли данных в контексте, он с высокой вероятностью не сможет качественно отличить ситуацию от "минимально достаточного" и "реально необходимого".
Люди в силу способности к самообучению, накоплению знаний и прочим когнетивным способностям, не так остро чувствуют эту проблему. Поэтому справляются даже со сложными кодовыми базами намного лучше.
Что можно сделать?
Чтобы ИИ начал лучше работать с кодом, в статье прделагается следующее:
- Перестраивайте компоненты так, чтобы они заканчивали работу, а не запускали цепную реакцию. В статье сказано дословно сказано "Sinks, Not Pipes" идея в том, что каждая функция должна завершать свою работу,а не порождать цепочку вызовов после себя. От себя добавлю, что это классическое разделение на main и утилитарные функции.
- Используйте разделение на модули, с понятным и непротиворечивым интерфейсом. Здест тоже все по классие - границы и обязанности
- Используйте "глубокие" модули, модуль может содержать сложную логику, но она должна быть полностью инкапсулирована и скрыта за небольшим интерфейсом, не надо делать кучу "мелких" зависимостей вокруг модуля.
- Файловая структура должна соответствовать модульной декомпозиции или принцип "честной архитектуры". Тут важно чтобы нейминг и логика были прозрачные и понятные.
Чтобы облегчить работу ИИ можно использовать тесты, как источник правды: тесты проходят, значит все ок.
Резюме:
• Организуйте папки так, чтобы архитектура читалась с первого взгляда
• Сделайте тесты границами - проходят, значитможно не лезть внутрь
• Проектируйте интерфейсы честно - никаких скрытых эффектов
• Регулярно проверяйте зависимости - отлавливайте "скрытые связи"
• Внедряйте прогрессивное раскрытие - от общего к частному
Post #2372
7.23K
Forwarded from SOERDEV | развитие инженеров-программистов
- 👍 19
- ❤ 10
- 🔥 3
- 🤝 1