Przejdź do głównej zawartości

Wzorce kontekstu

Kontekst to sekretny składnik rozwoju wspomaganego przez AI. Opanuj te wzorce, aby przekształcić mgliste odpowiedzi AI w precyzyjny, gotowy do produkcji kod. Naucz się dostarczać właśnie tyle kontekstu - nie za mało, nie za dużo.

  • Limit tokenów: Modele przetwarzają ~128k tokenów (≈10,000 linii kodu)
  • Jakość vs ilość: Więcej kontekstu ≠ lepsze odpowiedzi
  • Czynnik kosztów: Większy kontekst = wyższe koszty API
  • Czas odpowiedzi: Więcej kontekstu = wolniejsze odpowiedzi
Jakość kontekstuOdpowiedź AICzas developera
Za małoOgólna, błędne założeniaDużo przeróbek
Dokładnie tyle ile trzebaPrecyzyjna, dopasowana do koduMinimalne edycje
Za dużoZdezorientowana, wolna, drogaDebugowanie AI

Kontekst chirurgiczny

Precyzyjny, skupiony kontekst dla konkretnych zadań

Kontekst warstwowy

Buduj kontekst stopniowo dla złożonych zadań

Kontekst semantyczny

Użyj AI do automatycznego znajdowania odpowiedniego kontekstu

Kontekst skompresowany

Zmniejsz użycie tokenów zachowując znaczenie

  • Szybkie poprawki i małe zmiany
  • Operacje krytyczne dla wydajności
  • Jasne, odizolowane problemy
# Źle: Podejście "wszystko naraz"
@folder src/ # 50,000 linii dołączonych
Napraw błąd logowania
# Dobrze: Precyzja chirurgiczna
@file src/auth/login.ts
@file src/auth/validation.ts
@code validateEmail # konkretna funkcja
Napraw walidację email odrzucającą prawidłowe adresy ze znakiem +
// Kontekst: Tylko te konkretne elementy
@file utils/validation.js
@code EMAIL_REGEX
@code validateEmail
// Prompt
Zaktualizuj walidację email, aby akceptowała plus addressing (user+tag@domain.com)
Zachowaj istniejącą walidację dla innych reguł

Zacznij wąsko, rozszerzaj w miarę potrzeb:

  1. Warstwa podstawowa: Dokładny kod/plik z problemem
  2. Warstwa integracyjna: Bezpośrednio połączony kod
  3. Warstwa systemowa: Architektura i wzorce
  4. Warstwa domenowa: Reguły biznesowe i wymagania
## Warstwa 1: Skupienie podstawowe
@file models/Order.ts
@file models/Payment.ts
Zadanie: Dodaj przetwarzanie płatności do zamówień
## Warstwa 2: Dodaj kontekst integracyjny
@file services/PaymentService.ts
@file api/payments/webhook.ts
## Warstwa 3: Dodaj kontekst systemowy
@folder lib/payments/
@code PaymentProvider interface
## Warstwa 4: Dodaj kontekst domenowy
@file docs/payment-requirements.md
@docs Przewodnik integracji Stripe

Pozwól AI pomóc ci znaleźć odpowiedni kontekst:

# Krok 1: Poproś AI o znalezienie kontekstu
"Jakie pliki i funkcje obsługują uwierzytelnianie użytkowników w tej bazie kodu?"
# Krok 2: Przejrzyj ustalenia AI
# AI odpowiada z: auth/, middleware/auth.ts, utils/jwt.ts
# Krok 3: Użyj ustaleń jako kontekst
@file auth/login.ts
@file middleware/auth.ts
@code generateJWT
"Dodaj dwuetapowe uwierzytelnianie do procesu logowania"
Typ zapytaniaPrzykładPrzypadek użycia
Architektura”Pokaż mi wszystkie akcje Redux”Zrozumienie wzorców
Zależności”Co wywołuje UserService?”Analiza wpływu
Podobny kod”Znajdź implementacje paginacji”Spójność
Wzorce błędów”Gdzie obsługujemy błędy API?”Obsługa błędów
  1. Pliki podsumowujące
.cursor/summaries/auth-system.md
## Przegląd systemu uwierzytelniania
- Uwierzytelnianie oparte na JWT z tokenami odświeżania
- Role: admin, user, guest
- Timeout sesji: 24h
- Wymagania hasła: 8+ znaków, 1 specjalny
Kluczowe pliki:
- auth/login.ts - Główny przepływ logowania
- auth/jwt.ts - Generowanie tokenów
- middleware/auth.ts - Ochrona tras
  1. Ekstrakcja interfejsów
// Zamiast dołączania całych plików implementacji
@file types/auth.d.ts // Tylko interfejsy
@file api/auth/routes.ts // Tylko definicje tras
  1. Selektywne dołączanie
# Dołącz tylko publiczne metody
@code "class UserService" "public"
@code "export function" auth/utils.ts
# Praca z wieloma repozytoriami
@folder ../shared-components/Button
@file ../api-server/src/endpoints/user.ts
@web https://api-docs.company.com/users
Upewnij się, że komponent Button pasuje do struktury odpowiedzi API
# Dołącz odpowiednią historię
@git PR #1234 # Poprzednia implementacja
@git commit abc123 # Kiedy funkcja została dodana
@docs decisions/adr-auth.md # Decyzja architekturalna
Refaktoryzuj auth, aby rozwiązać problemy z PR #1234
# Kontekst zmieniający się w zależności od zadania
{{if FEATURE_FLAGS}}
@file config/features.ts
@code getFeatureFlag
{{/if}}
{{if DATABASE_CHANGE}}
@file prisma/schema.prisma
@folder migrations/
{{/if}}
MetrykaDobry kontekstSłaby kontekst
Użycie tokenów5-15k tokenów50k+ tokenów
Czas odpowiedzi2-5 sekund20+ sekund
Dokładność90%+ poprawneponiżej 70% poprawne
Potrzeba iteracji1-25+
  • Trafność: Każdy plik/symbol bezpośrednio odnosi się do zadania
  • Kompletność: Wszystkie niezbędne konteksty dołączone
  • Przejrzystość: Jasne relacje między elementami kontekstu
  • Wydajność: Minimalne tokeny dla maksymalnego zrozumienia
  • Aktualność: Używanie najnowszych wersji plików
# Minimalny kontekst dla nowego komponentu
@file components/ui/Button.tsx # Wzorzec referencyjny
@file styles/theme.ts # System projektowy
@code useTheme hook # Integracja z tematami
Utwórz komponent Card zgodnie ze wzorcami Button
# Wzorzec kontekstu Redux/Zustand
@folder store/slices/ # Zobacz wzorce
@file store/types.ts # Definicje typów
@code specific slice only
1. Zacznij od kontekstu błędu
@error "TypeError: Cannot read property 'name'"
@file src/components/UserCard.tsx
2. Rozszerz na przepływ danych
@code getUserData
@file api/users.ts
3. Dodaj kontekst typów w razie potrzeby
@file types/User.ts
1. Kontekst wymagań
@file specs/feature-x.md
@figma design-link
2. Kontekst wzorców
@file similar-feature.ts
@folder patterns/
3. Kontekst integracji
@file routes/index.ts
@file types/index.ts
1. Aktualna implementacja
@file old-service.ts
@code specific methods
2. Docelowy wzorzec
@file patterns/service-template.ts
@docs architecture/services.md
3. Kontekst testów
@file tests/old-service.test.ts
  1. Buduj szablony kontekstu

    • Twórz wielokrotnego użytku wzorce kontekstu dla typowych zadań
    • Przechowuj w .cursor/contexts/
  2. Używaj aliasów kontekstu

    # Zdefiniuj raz, używaj wielokrotnie
    AUTH_CONTEXT = @file auth/* @code JWT*
    Używając AUTH_CONTEXT, dodaj rotację tokenów odświeżania
  3. Progresywne wzbogacanie

    • Zacznij minimalnie
    • Dodawaj kontekst na podstawie pytań AI
    • Usuwaj nieistotny kontekst
  4. Komentarze kontekstu

    @file api/user.ts # Aktualna implementacja
    @file api/user.v2.ts # Docelowy wzorzec
    @docs api-standards.md # Musi przestrzegać tych

Opanuj te wzorce kontekstu, aby:

  • Zmniejszyć czas rozwoju o 40-60%
  • Poprawić dokładność odpowiedzi AI do 90%+
  • Obniżyć koszty API optymalizując użycie tokenów
  • Pewnie obsługiwać złożone zmiany wieloplikowe

Kontynuuj z:

Pamiętaj: Kontekst to sygnał, nie szum. Każdy element kontekstu powinien zasłużyć na swoje miejsce, bezpośrednio przyczyniając się do lepszego zrozumienia AI.