avatar
Сергей Булаев AI 🤖
@sergiobulaev
07.11.2024 07:47
#POVНЕКОДЕР Меня часто спрашивают: как работать с большими файлами/проектами в Cursor Composer? Моя практика показывает: главное - делить большие файлы на маленькие.

Я уже давно заметил, что проблемы нарастают прямо пропорционально количеству строчек кода в файле. Ещё в "Чистом коде", помнится, я читал про адекватную среднюю длину компонента в 300 строчек. Но это же для людей...

С Claude 600 - отлично, 900 - уже так себе, больше 1100 - жди постоянных проблем. Компоузер начинает пропускать и терять куски не важного в данный момент кода. Понятное дело - контекстного окна-то не хватает.

Так что регулярно надо просить его делить компоненты на более маленькие части. Но сначала, конечно же, делаем коммит. Сделали? Приступаем:

Важно делать это по частям. Если вы попробуете всё разом, контекста опять же не хватит, что-то не доделает, а вполне возможно, и просто сломается посередине.

Let's refactor this component into several smaller ones. Let's do them one by one. Let's create a couple of new components first.


Скорее всего, он сразу напишет, на какие компоненты будет делить, и создаст парочку новых. Дальше - просим продолжить.

Let's continue our refactoring. Please create all the remaining new components you've planned to do.


Ну или модифицируйте, если он сразу все не придумал. Обычно работает хорошо. Все компоненты созданы. Пришло время переписать старый компонент. Не забываем добавить в Composer только что созданные компоненты и пишем:

Now let's modify our old component to include the new ones and replace old functions with the calls to the new ones from the new components.


Тут, бывает, получается не сразу. Внимательно всё тестируем. Продолжаем требовать исключить дублирование кода. В случае проблем с новым кодом - копируем старый код полного компонента (мы же сделали коммит, правда?) и просим его о полном соответствии функционала нового кода старому.

Please ensure our user retrieval in the new component works exactly as it used to be in our old code:
[ВСТАВЛЯЕМ СТАРЫЙ КОД]


Занимаюсь этими делами почти каждый день. Довольно муторно, но зато после очередного рефакторинга скорость разработки буквально взлетает. Пока опять файлы не станут слишком большими.

Сергей Булаев AI 🤖 - об AI и не только
23
6
1
18 80 2.3K

Обсуждение 18

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram

Сергей Булаев AI 🤖

12.5K
Publora.com - коннектор для ваших AI агентов к соцсетям.

Co.actor - помощники по созданию постов для вас и вашей команды

Так же в прошлом соосновывал: Купи Батон! Lifehacker.ru, Взахлёб!

tg: @sergeonsamui
in: linkedin.com/in/sbulaev
Открыть в Telegram