Проверка типов и линтинг: бесплатно пойманные ошибки
Два инструмента ловят целые категории ошибок почти без усилий с вашей стороны:
- Проверка типов (TypeScript,
mypyи т. д.) ловит «вы передали строку там, где ожидалось число» и «это значение может быть undefined». AI обожает забывать про крайние случаи, которые типы делают невозможными. - Линтинг (ESLint, Ruff и т. д.) ловит неиспользуемые переменные, недостижимый код и расхождения в стиле. Он не даёт кодовой базе, к которой прикасается AI, медленно превращаться в кашу.
Настройте их рано и скажите AI им подчиняться: «Запусти проверку типов и линтер и исправь всё, на что они укажут, прежде чем считать это готовым». Считайте чистую проверку типов частью определения завершённости.
Но следите за ленивыми лазейками. Когда проверка типов жалуется, по-настоящему правильное исправление — это обработать найденный ею случай: значение undefined, неверный тип. Быстрое исправление — заглушить жалобу комментарием // @ts-ignore, any или # type: ignore, и AI хватается за них постоянно, потому что они заставляют красный текст исчезнуть. Они же делают проверку бесполезной ровно там, где она пыталась помочь. Если в диффе появляется подавляющий (suppression) комментарий, относитесь к нему как к вопросу, а не как к решению: «Почему это нужно? Исправь сам тип, а не игнорируй его».