Przejdź do głównej zawartości

Zarządzanie fragmentami kodu

Budujesz nowy komponent React i wpisujesz useState po raz piąty dzisiaj. Uzupełnianie Tab wypełnia hook, ale nadal musisz ręcznie dodać typy TypeScript, wartość początkową i wzorzec obsługi stanów ładowania i błędów. Każdy komponent zaczyna się od tego samego 15-liniowego boilerplate’u, a za każdym razem piszesz go trochę inaczej. Tymczasem twój kolega z zespołu strukturyzuje swoje komponenty zupełnie inaczej.

Fragmenty kodu rozwiązują problem boilerplate’u, ale tradycyjne fragmenty VS Code to statyczne szablony, które nie dostosowują się do wzorców twojego projektu. Gdy połączysz fragmenty z AI Cursora, dostajesz dynamiczne generowanie kodu, które automatycznie przestrzega twoich konwencji.

  • Strategia fragmentów łącząca fragmenty VS Code z regułami Cursora dla maksymalnej szybkości
  • Gotowe reguły do skopiowania, które zamieniają typowe wzorce w natychmiastowy boilerplate
  • Techniki generowania i zarządzania fragmentami specyficznymi dla projektu
  • Wzorce workflow do używania fragmentów obok kodu generowanego przez AI

Warstwa 1: Fragmenty VS Code dla pamięci mięśniowej

Dział zatytułowany „Warstwa 1: Fragmenty VS Code dla pamięci mięśniowej”

Używaj tradycyjnych fragmentów VS Code do wzorców, które wpisujesz dziesiątki razy dziennie. Są natychmiastowe (bez round-tripu do AI) i deterministyczne (za każdym razem ten sam wynik):

{
"React Functional Component": {
"prefix": "rfc",
"scope": "typescriptreact",
"body": [
"interface ${1:Component}Props {",
" $2",
"}",
"",
"export function ${1:Component}({ $3 }: ${1:Component}Props) {",
" $0",
" return (",
" <div>",
" ",
" </div>",
" )",
"}"
]
}
}

Przechowuj fragmenty specyficzne dla projektu w .vscode/project.code-snippets i dodaj je do kontroli wersji.

Warstwa 2: Reguły Cursora dla inteligentnego boilerplate’u

Dział zatytułowany „Warstwa 2: Reguły Cursora dla inteligentnego boilerplate’u”

Dla wzorców, które muszą dostosowywać się do kontekstu (właściwe importy, właściwe typy, właściwa obsługa błędów dla konkretnego projektu), używaj reguł Cursora zamiast statycznych fragmentów:

Pozwól Cursorowi przeanalizować twoją bazę kodu i wygenerować fragmenty na podstawie rzeczywistych wzorców:

  1. Wpisz prefiks fragmentu (rfc dla komponentu React)
  2. Przejdź przez placeholdery klawiszem Tab, aby ustawić nazwę komponentu i propsy
  3. Naciśnij Cmd+K, aby wypełnić ciało komponentu za pomocą AI: “fetch user notifications and display them in a list. Render a loading skeleton while fetching, an error state with a retry button on failure, and an empty state when there are no notifications.”
  4. Naciśnij Tab, aby zaakceptować sugestię AI

To dokładnie ten boilerplate ze scenariusza otwierającego: fragment rfc natychmiast wstawia otypowaną skorupę, a instrukcja Cmd+K sprawia, że Cursor za każdym razem wypełnia stany ładowania, błędu i pustki w ten sam sposób — więc te trzy stany przestają być czymś, co każdy członek zespołu pisze trochę inaczej. Łączy to szybkość fragmentów (natychmiastowy boilerplate) z inteligencją AI (implementacja świadoma kontekstu).

Gdy musisz stworzyć coś, co naśladuje istniejący wzorzec:

  1. Otwórz plik, który chcesz zreplikować
  2. Naciśnij Cmd+Shift+L, aby dodać go jako kontekst
  3. Otwórz nowy plik
  4. Powiedz agentowi: “Create a [new thing] following the exact pattern in the file I added as context”

To efektywnie “inteligentny fragment”, który dostosowuje szablon do twoich konkretnych potrzeb.

Fragmenty kolidują z uzupełnianiem Tab. Jeśli prefiks fragmentu VS Code koliduje z sugestiami Tab Cursora, fragment ma priorytet. Wybieraj unikalne prefiksy, które nie pokrywają się z typowymi tokenami kodu.

Boilerplate generowany przez AI odbiega od fragmentów. Gdy twoje reguły i fragmenty opisują różne wzorce, deweloperzy dostają niespójne wyniki. Utrzymuj je w synchronizacji: gdy aktualizujesz fragment, zaktualizuj odpowiednią regułę.

Zbyt wiele fragmentów spowalnia autouzupełnianie. Jeśli masz ponad 100 fragmentów, lista autouzupełniania staje się zaszumiona. Prefiksuj fragmenty według kategorii (api-, comp-, test-), aby móc wpisać kategorię do filtrowania.

Reguły dezaktualizują się, gdy plik referencyjny się przenosi. Reguła wskazująca na @src/components/UserProfile.tsx po cichu się psuje w dniu, w którym ktoś zmieni nazwę lub przeniesie ten plik — agent dalej generuje względem ścieżki, która już się nie rozwiązuje. Zakotwicz reguły w kanonicznym przykładzie, który zamierzasz utrzymać, i aktualizuj ścieżkę @ za każdym razem, gdy go refaktoryzujesz. W razie wątpliwości poproś Cursora, aby “list every .cursor/rules/*.mdc file that references a path that no longer exists in the repo”, żeby naprawić je wszystkie za jednym razem.