Przejdź do głównej zawartości

Strategie dużych baz kodu: Wskazówki 76-90

Praca z bazami kodu zawierającymi setki tysięcy lub miliony linii wymaga specjalistycznych strategii. Te 15 wskazówek pomoże ci utrzymać produktywność i dokładność podczas pracy z projektami w skali korporacyjnej.

Wskazówka 76: Włącz zaawansowane indeksowanie struktury projektu

Dział zatytułowany „Wskazówka 76: Włącz zaawansowane indeksowanie struktury projektu”

Skonfiguruj Cursor dla optymalnego zrozumienia dużej bazy kodu:

{
"cursor.indexing.strategy": "smart",
"cursor.indexing.includeProjectStructure": true,
"cursor.indexing.priorityPatterns": [
"**/src/core/**",
"**/src/api/**",
"**/src/services/**"
],
"cursor.indexing.merkleTree": {
"enabled": true,
"updateInterval": "3m",
"maxDepth": 10
}
}

Wskazówka 77: Używaj semantycznego wyszukiwania bazy kodu

Dział zatytułowany „Wskazówka 77: Używaj semantycznego wyszukiwania bazy kodu”

Opanuj symbol @codebase do inteligentnych wyszukiwań:

// Znajdź według funkcjonalności, nie tekstu
"@codebase jak jest zaimplementowane uwierzytelnianie użytkowników"
"@codebase przepływ przetwarzania płatności"
"@codebase wzorce obsługi błędów"

Używaj czatu do budowania modeli mentalnych:

// Przegląd architektury
"Utwórz diagram architektury wysokiego poziomu naszego systemu na podstawie
@src analizując główne komponenty i ich interakcje"
// Graf zależności
"Zmapuj relacje zależności między naszymi głównymi usługami
w @src/services"
// Analiza przepływu danych
"Śledź przepływ danych dla żądania rejestracji użytkownika przez
cały nasz system"

Wskazówka 79: Skonfiguruj inteligentne wykluczenia plików

Dział zatytułowany „Wskazówka 79: Skonfiguruj inteligentne wykluczenia plików”

Optymalizuj indeksowanie z inteligentnymi wykluczeniami:

{
"cursor.indexing.exclude": {
"patterns": [
"**/node_modules/**",
"**/dist/**",
"**/build/**",
"**/.next/**",
"**/coverage/**",
"**/*.min.js",
"**/*.bundle.js"
],
"sizeThreshold": "10MB",
"generatedFilePatterns": [
"**/*.generated.ts",
"**/schema.graphql",
"**/migrations/*.sql"
]
}
}

Wskazówka 80: Implementuj wzorce plików priorytetowych

Dział zatytułowany „Wskazówka 80: Implementuj wzorce plików priorytetowych”

Kieruj skupienie AI z konfiguracjami priorytetów:

{
"cursor.codebase.priorityFiles": [
{
"pattern": "**/index.{ts,js}",
"weight": 1.5,
"reason": "Punkty wejścia"
},
{
"pattern": "**/routes/**",
"weight": 1.3,
"reason": "Definicje API"
},
{
"pattern": "**/*.service.{ts,js}",
"weight": 1.4,
"reason": "Logika biznesowa"
}
]
}

Wskazówka 81: Używaj strategii indeksowania przyrostowego

Dział zatytułowany „Wskazówka 81: Używaj strategii indeksowania przyrostowego”

Utrzymuj wydajność z inteligentnym indeksowaniem:

  1. Indeks początkowy: Pełne skanowanie przy otwarciu projektu
  2. Obserwacja plików: Aktualizacje w czasie rzeczywistym przy zmianach
  3. Okresowe odświeżanie: Indeksowanie w tle co 5 minut
  4. Ręczne wyzwalanie: Wymuś re-indeksowanie gdy potrzeba

Polecenia do zarządzania indeksem:

Okno terminala
Ctrl+Shift+P "Cursor: Rebuild Index"
Ctrl+Shift+P "Cursor: Clear Index Cache"
Ctrl+Shift+P "Cursor: Show Indexing Status"

Wskazówka 82: Opanuj nawigację między repozytoriami

Dział zatytułowany „Wskazówka 82: Opanuj nawigację między repozytoriami”

Pracuj efektywnie w wielu powiązanych repozytoriach:

Konfiguracja Multi-Root

Okno terminala
workspace/
├── frontend/
├── backend/
├── shared/
└── infrastructure/

Współdzielony kontekst

Odwołuj się między repo:

@frontend/src/api/client.ts
@backend/src/routes/user.ts

Wskazówka 83: Używaj śledzenia zależności napędzanego AI

Dział zatytułowany „Wskazówka 83: Używaj śledzenia zależności napędzanego AI”

Nawiguj po złożonych łańcuchach zależności:

// Śledź użycie
"Pokaż mi wszystkie miejsca, gdzie wywoływane jest UserRepository.findById,
włączając pośrednie użycie przez inne usługi"
// Analiza wpływu
"Jeśli zmienię sygnaturę AuthService.validateToken,
które pliki będą dotknięte?"
// Wykrywanie zależności cyklicznych
"Sprawdź zależności cykliczne w @src/services"

Wskazówka 84: Twórz inteligentne skróty nawigacyjne

Dział zatytułowany „Wskazówka 84: Twórz inteligentne skróty nawigacyjne”

Skonfiguruj efektywne wzorce nawigacji:

{
"cursor.navigation.bookmarks": [
{
"name": "Trasy API",
"pattern": "**/routes/**/*.ts"
},
{
"name": "Modele bazy danych",
"pattern": "**/models/**/*.ts"
},
{
"name": "Pliki testowe",
"pattern": "**/*.{test,spec}.{ts,js}"
}
]
}

Warstwowo stosuj różne podejścia wyszukiwania dla kompleksowych wyników:

// 1. Semantyczne wyszukiwanie koncepcji
"@codebase middleware uwierzytelniania"
// 2. Grep dla konkretnych wzorców
"Wyszukaj: req.user we wszystkich trasach"
// 3. Wyszukiwanie symboli
"@definitions AuthMiddleware"

Wskazówka 86: Używaj wyszukiwań z zakresem dla wydajności

Dział zatytułowany „Wskazówka 86: Używaj wyszukiwań z zakresem dla wydajności”

Inteligentnie ograniczaj zakres wyszukiwania:

// Zakres według katalogu
"@folder:src/api wyszukaj ograniczanie szybkości"
// Zakres według typu pliku
"W wszystkich plikach TypeScript: znajdź funkcje async bez try-catch"
// Zakres według ostatnich zmian
"@recent-changes przejrzyj obsługę błędów w zmodyfikowanych plikach"
// Łącz zakresy
"@folder:src/services @git:last-week znajdź nowe zapytania bazy danych"

Używaj Agent do sprawdzania jakości w całej bazie kodu:

// Skan bezpieczeństwa
"Przeskanuj bazę kodu pod kątem potencjalnych luk bezpieczeństwa:
- Ryzyko SQL injection
- Luki XSS
- Odsłonięte sekrety lub klucze API
- Brakujące sprawdzenia uwierzytelniania"
// Audyt wydajności
"Zidentyfikuj wąskie gardła wydajności:
- Problemy N+1 zapytań
- Brakujące odniesienia do indeksów bazy danych
- Operacje synchroniczne, które powinny być async
- Duże importy bundli"
// Ocena długu technicznego
"Znajdź obszary długu technicznego:
- Komentarze TODO/FIXME
- Użycie przestarzałych API
- Duplikacja kodu
- Złożone funkcje (złożoność cyklomatyczna > 10)"

Używaj AI do egzekwowania wzorców architektonicznych:

Walidacja warstw

Zapewnij właściwe rozdzielenie:

"Sprawdź, że kontrolery wywołują tylko usługi,
nigdy bezpośrednio repozytoria"

Egzekwowanie wzorców

Sprawdź wzorce implementacji:

"Upewnij się, że wszystkie usługi podążają za naszym
standardowym wzorcem obsługi błędów"

Zasady zależności

Waliduj zależności:

"Sprawdź, że warstwa domeny nie
zależy od warstwy infrastruktury"

Utrzymuj dokumentację zsynchronizowaną z kodem:

// Dokumentacja komponentów
"Wygeneruj README dla @src/services wyjaśniające:
- Cel każdej usługi
- Kluczowe metody i ich użycie
- Zależności i interakcje
- Wymagania konfiguracyjne"
// Dokumentacja API
"Utwórz dokumentację OpenAPI dla wszystkich tras w @src/api
na podstawie rzeczywistej implementacji"
// Wizualizacja zależności
"Utwórz diagram Mermaid pokazujący relacje
między wszystkimi głównymi komponentami w naszym systemie"

Przykładowy output:

graph TD A[API Gateway] --> B[Usługa Auth] A --> C[Usługa User] C --> D[Baza danych] B --> E[Cache Redis] C --> E

Systematycznie refaktoryzuj duże bazy kodu:

  1. Zidentyfikuj granice: “Przeanalizuj @src/monolith i zasugeruj granice modułów”
  2. Utwórz interfejsy: “Zdefiniuj interfejsy między proponowanymi modułami”
  3. Wyodrębnij stopniowo: “Wyodrębnij UserModule utrzymując wszystkie testy przechodzące”
  4. Sprawdź izolację: “Upewnij się, że UserModule nie ma zależności cyklicznych”
  5. Aktualizuj importy: “Zaktualizuj wszystkie importy, aby używały nowej struktury modułów”

Skonfiguruj Cursor dla dużych projektów:

{
"cursor.performance.largeFiles": {
"threshold": "1MB",
"strategy": "stream",
"maxInMemory": 50
},
"cursor.performance.maxOpenTabs": 20,
"cursor.performance.gcInterval": "5m"
}

Ważne Duże bazy kodu mogą szybko przekroczyć limity kontekstu

Strategie:

  1. Skupiony kontekst: Odwołuj się do konkretnych plików, nie całych folderów
  2. Progresywne ujawnianie: Zacznij szeroko, następnie zawęź
  3. Regularnie czyść: Resetuj kontekst między niepowiązanymi zadaniami
  4. Używaj podsumowań: Twórz skompresowane pliki dokumentacji

Konfiguracja współdzielonego indeksu:

Okno terminala
# Wygeneruj indeks do udostępnienia
cursor index --export ./shared-index
# Importuj na maszynie członka zespołu
cursor index --import ./shared-index

Rozwiązania:

  • Wstępnie skonfiguruj wykluczenia przed otwarciem
  • Używaj wzorców priorytetowych dla krytycznych ścieżek
  • Włącz indeksowanie przyrostowe
  • Dziel się indeksami zespołowymi

Rozwiązania:

  • Pracuj z podzbiorami plików
  • Twórz dokumenty podsumowujące
  • Używaj wyszukiwań z zakresem
  • Dziel zadania na mniejsze fragmenty

Rozwiązania:

  • Łącz semantyczne i grep wyszukiwanie
  • Utrzymuj dobrą dokumentację
  • Używaj konsekwentnych konwencji nazewnictwa
  • Twórz mapy bazy kodu

Z opanowanymi strategiami dużych baz kodu, eksploruj Zaawansowane techniki, aby wykorzystać funkcje na poziomie eksperckim jak niestandardowe serwery MCP, zaawansowane zasady i przepływy pracy automatyzacji.