Почему длинные чаты с ИИ о программировании могут только навредить
Chuck Severance
0:00 / 0:00
Почему длинные чаты с ИИ о программировании могут только навредить
1 054 просмотра · 10 дней назад
Chuck Severance
116 тыс. подписчиков
1 054 просмотра · 10 дней назад
В этом сеансе программирования я занимаюсь оптимизацией Tsugi, объединяя старый контроллер `setup` с контроллером `settings`.
Цель кажется простой: `/settings` должен обрабатывать настройки всего сайта, а `/courses/42/settings` — настройки, специфичные для курса. После завершения работы файл `setup.php` должен полностью исчезнуть.
Но интересная часть этого сеанса — это не столько рефакторинг контроллеров.
Изначально я продолжал работать в очень длинном диалоге Cursor, полагая, что Cursor выиграет от запоминания всего только что написанного кода. Вместо этого диалог содержал старый код, устаревшие предположения и слишком много накопленного контекста. Cursor начал двигаться в неправильном направлении.
Поэтому я остановил его, сбросил код, открыл совершенно новый диалог и поставил перед ним ту же архитектурную цель.
И внезапно всё пошло намного лучше.
Это привело к важному уроку для разработки с использованием ИИ: после масштабного рефакторинга лучше зафиксировать работающий код и начать новый диалог с ИИ, чем хранить огромную историю, полную устаревшей информации.
После того, как контекст был очищен, Cursor успешно объединил контроллеры, удалил `setup.php`, выделил многократно используемую логику маршрутизации, запустил тесты и сгенерировал URL-адрес настроек для конкретного курса, который мне был нужен.
Я также отправил полученный запрос на слияние через CodeRabbit для еще одного раунда проверки кода с помощью ИИ.
Попутно я рассказываю об управлении длительными диалогами Cursor, обобщении контекста LLM, рефакторинге маршрутизации контроллеров, глобальных и специфичных для курса URL-адресах, многократно используемых вспомогательных функциях маршрутизации, автоматизированном тестировании, проверках CodeRabbit и о том, почему разработчик-человек по-прежнему предоставляет архитектуру.
Формирующийся рабочий процесс становится все более понятным: моя задача — определить архитектуру и стратегию, четко донести это до LLM, а затем использовать несколько инструментов ИИ для помощи в реализации и проверке.