Przejdź do głównej zawartości

Zarządzanie dużymi bazami kodu: Wskazówki 36-50

Praca z dużymi bazami kodu wymaga innych strategii niż małe projekty. Te 15 wskazówek pomoże ci wykorzystać unikalne możliwości Claude Code dla rozwoju na skalę przedsiębiorstwa, od milionów linii monorepo po złożone architektury mikrousług.

Wskazówka 36: Wykorzystuj świadomość bazy kodu Claude’a

Dział zatytułowany „Wskazówka 36: Wykorzystuj świadomość bazy kodu Claude’a”

Claude Code używa agentowego wyszukiwania do automatycznego zrozumienia całej struktury twojego projektu:

Okno terminala
# Zamiast ręcznego wyjaśniania struktury projektu
"Wyjaśnij jak działa system uwierzytelniania"
# Claude automatycznie:
# 1. Wyszukuje pliki związane z auth
# 2. Identyfikuje kluczowe komponenty
# 3. Śledzi zależności
# 4. Rozumie przepływ
# 5. Dostarcza kompleksowe wyjaśnienie

Możliwości wyszukiwania agentowego

  • Rozpoznawanie wzorców: Znajduje podobne wzorce kodu w plikach
  • Śledzenie zależności: Rozumie łańcuchy importów i relacje
  • Budowanie kontekstu: Automatycznie zbiera odpowiedni kontekst
  • Inteligentne filtrowanie: Skupia się na ważnych plikach, ignoruje szum
  • Odniesienia krzyżowe: Łączy powiązane funkcjonalności między modułami

Przykład z rzeczywistego świata od zespołu infrastruktury danych Anthropic:

Okno terminala
# Wprowadzanie nowego pracownika
"Pomóż mi zrozumieć jak dane płyną z naszego API do dashboardów"
# Odpowiedź Claude obejmuje:
# - Identyfikację endpointów API
# - Pipeline transformacji danych
# - Relacje schematu bazy danych
# - Wzorce zapytań dashboardu
# - Odpowiednią dokumentację CLAUDE.md

Claude Code doskonale radzi sobie tam, gdzie inne narzędzia zawodzą z masywymi plikami:

Okno terminala
# Przykład komponentu React Builder.io
"Zaktualizuj obsługę zdarzeń w naszym komponencie 18,000 linii"
# Claude pomyślnie:
# - Ładuje cały plik
# - Znajduje konkretną funkcję
# - Wprowadza precyzyjne zmiany
# - Utrzymuje kontekst
# - Obsługuje złożony stan

Wskazówka 38: Używaj wyszukiwania agentowego do nawigacji

Dział zatytułowany „Wskazówka 38: Używaj wyszukiwania agentowego do nawigacji”

Pozwól Claude nawigować po złożonych bazach kodu za ciebie:

Okno terminala
# Znajdowanie wzorców
"Pokaż mi wszystkie miejsca gdzie obsługujemy uprawnienia użytkowników"
# Zrozumienie architektury
"Jak nasze mikrousługi się komunikują?"
# Lokalizacja funkcjonalności
"Gdzie jest logika walidacji email?"
# Analiza zależności
"Co zależy od klasy UserService?"
# Problemy przekrojowe
"Znajdź wszystkie zapytania do bazy danych, które mogą mieć problemy N+1"

Przykłady zaawansowanego wyszukiwania:

Okno terminala
# Złożone dopasowywanie wzorców
"Znajdź wszystkie komponenty React, które bezpośrednio dostają się do localStorage"
# Walidacja architektury
"Sprawdź czy jakiekolwiek komponenty frontendu importują z modułów backendu"
# Audyt bezpieczeństwa
"Zlokalizuj wszystkie miejsca gdzie konstruujemy zapytania SQL"
# Analiza wydajności
"Znajdź wszystkie synchroniczne operacje plikowe w naszych async handlerach"

Strukturyzuj duże projekty refaktoryzacji efektywnie:

  1. Początkowa analiza

    Okno terminala
    "Przeanalizuj aktualny system uwierzytelniania i zidentyfikuj obszary do ulepszenia"
  2. Stwórz plan

    Okno terminala
    "Stwórz plan krok po kroku migracji z uwierzytelniania opartego na sesji na JWT"
  3. Implementuj inkrementalnie

    Okno terminala
    "Krok 1: Stwórz nowe funkcje narzędziowe JWT"
    "Krok 2: Zaktualizuj model użytkownika o obsługę refresh tokenów"
    "Krok 3: Zmodyfikuj endpoint logowania"
  4. Weryfikuj każdy krok

    Okno terminala
    "Napisz testy dla narzędzi JWT"
    "Zweryfikuj kompatybilność wsteczną"

Strategia rozbijania zadań

  • Limit rozmiaru: Utrzymuj każde zadanie poniżej 200 linii zmian
  • Najpierw testy: Pisz testy przed implementacją
  • Punkt kontrolny: Commituj po każdym udanym kroku
  • Plan wycofania: Zawsze miej sposób na cofnięcie
  • Dokumentuj: Aktualizuj CLAUDE.md decyzjami

Wskazówka 40: Dostarczaj kod w skupionych fragmentach

Dział zatytułowany „Wskazówka 40: Dostarczaj kod w skupionych fragmentach”

Optymalizuj wydajność Claude’a z ukierunkowanym kontekstem:

Okno terminala
# Mniej efektywne: Niejasna prośba
"Optymalizuj naszą aplikację"
# Bardziej efektywne: Skupiona prośba
"Optymalizuj zapytania do bazy danych w klasie UserRepository"
# Jeszcze lepiej: Konkretny kontekst
"Metoda getUsersWithOrders w UserRepository ma problemy zapytań N+1.
Zoptymalizuj ją używając eager loading."

Strategie kontekstu dla dużych baz kodu:

  • 10k linii: Słodki punkt Claude’a dla kompleksowego zrozumienia
  • 50k linii: Nadal zarządzalne, ale skup się na konkretnych modułach
  • 100k+ linii: Podziel na logiczne segmenty i pracuj inkrementalnie

Wskazówka 41: Używaj wielu instancji dla różnych obszarów

Dział zatytułowany „Wskazówka 41: Używaj wielu instancji dla różnych obszarów”

Uruchom równoległe instancje Claude Code dla maksymalnej efektywności:

Okno terminala
# Terminal 1: Rozwój frontendu
claude --add-dir ./frontend
"Zaimplementuj nowy dashboard użytkownika"
# Terminal 2: API backendu
claude --add-dir ./backend
"Stwórz endpointy REST dla danych dashboardu"
# Terminal 3: Migracje bazy danych
claude --add-dir ./database
"Zaprojektuj schemat dla funkcji dashboardu"
# Terminal 4: Testowanie
claude --add-dir ./tests
"Napisz testy integracyjne dla nowych funkcji"

Korzyści z równoległych instancji:

  • Brak przełączania kontekstu: Każda instancja pozostaje skupiona
  • Symulacja zespołu: Pracuj jak zespół programistów
  • Szybszy rozwój: Wykonuj zadania jednocześnie
  • Lepsza organizacja: Wyraźny rozdział obowiązków

Wskazówka 42: Wykorzystuj system plików jako współdzielony workspace

Dział zatytułowany „Wskazówka 42: Wykorzystuj system plików jako współdzielony workspace”

Używaj systemu plików do współpracy między instancjami:

shared/types/api.types.ts
# Instancja 1: Generuj typy
"Wygeneruj interfejsy TypeScript z naszych odpowiedzi API"
# Instancja 2: Używaj wygenerowanych typów
"Stwórz hooki React używając typów w shared/types/"
# Instancja 3: Dokumentacja
"Udokumentuj typy w shared/types/ z przykładami"

Wzorce współdzielonego workspace

project/
├── .claude/
│ ├── generated/ # Kod wygenerowany przez AI
│ ├── templates/ # Implementacje referencyjne
│ └── workspace/ # Współdzielone pliki robocze
├── docs/
│ └── ai-sessions/ # Dokumentacja sesji

Przepływ pracy z życia codziennego:

Okno terminala
# Pobierz implementację referencyjną
"Skopiuj logikę uwierzytelniania z tego popularnego pakietu npm do
.claude/templates/ żebyśmy mogli referencjonować ich wzorce"
# Użyj jako referencji
"Zaimplementuj podobne uwierzytelnianie ale dostosowane do naszych wzorców"

Wskazówka 43: Zaimplementuj hierarchiczne pliki CLAUDE.md

Dział zatytułowany „Wskazówka 43: Zaimplementuj hierarchiczne pliki CLAUDE.md”

Strukturyzuj dokumentację dla dużych monorepo:

monorepo/
├── CLAUDE.md # Globalne reguły i wzorce
├── packages/
│ ├── frontend/
│ │ ├── CLAUDE.md # Specyficzne dla frontendu
│ │ └── src/
│ │ └── components/
│ │ └── CLAUDE.md # Wytyczne komponentów
│ ├── backend/
│ │ ├── CLAUDE.md # Wzorce backendowe
│ │ └── src/
│ │ ├── services/
│ │ │ └── CLAUDE.md # Wzorce serwisów
│ │ └── models/
│ │ └── CLAUDE.md # Reguły modeli danych
│ └── shared/
│ └── CLAUDE.md # Reguły współdzielonego kodu

Przykład hierarchicznej dokumentacji:

# Przegląd monorepo
## Zasady architektury
- Mikrousługi z współdzielonymi bibliotekami
- Komunikacja sterowana zdarzeniami
- TypeScript w całości
## Globalne standardy
- Conventional commits
- 100% pokrycie testami dla współdzielonego kodu
- Brak zależności cyklicznych

Pomóż Claude zrozumieć projekt twojego systemu:

# Dokumentacja architektury
## Przegląd systemu
```mermaid
graph TD
A[API Gateway] --> B[User Service]
A --> C[Product Service]
A --> D[Order Service]
B --> E[PostgreSQL]
C --> F[MongoDB]
D --> E
D --> G[Redis Cache]
B --> H[Event Bus]
C --> H
D --> H
  1. Wzorzec Repository: Cały dostęp do bazy danych przez repozytoria
  2. CQRS: Oddzielne modele odczytu/zapisu dla złożonych domen
  3. Event Sourcing: Ścieżka audytu dla krytycznych operacji
  4. Circuit Breaker: Do wywołań zewnętrznych usług
  5. Wzorzec Saga: Do rozproszonych transakcji
  • Sync: REST API ze specyfikacjami OpenAPI
  • Async: RabbitMQ dla zdarzeń
  • Real-time: WebSockets do aktualizacji na żywo
  1. Klient → API Gateway (uwierzytelnianie)
  2. Gateway → Mikrousługa (autoryzowane żądanie)
  3. Usługa → Baza danych (operacja na danych)
  4. Usługa → Magistrala zdarzeń (zmiana stanu)
  5. Inne usługi → Magistrala zdarzeń (reakcja na zmiany)
### Wskazówka 45: Używaj zapytań świadomych kontekstu
Zadawaj zaawansowane pytania o relacje w kodzie:
```bash
# Analiza zależności
"Pokaż mi wszystkie serwisy zależne od modelu User"
"Co by się zepsuło, gdybym zmienił sygnaturę metody authenticate?"
"Znajdź zależności cykliczne w naszej strukturze importów"
# Analiza wydajności
"Zidentyfikuj wszystkie zapytania do bazy danych w gorących ścieżkach kodu"
"Znajdź operacje synchroniczne, które mogłyby być async"
"Pokaż mi wszystkie niebuforowane kosztowne obliczenia"
# Audyt bezpieczeństwa
"Znajdź wszystkie wejścia użytkownika, które nie są walidowane"
"Pokaż mi wszędzie gdzie konstruujemy dynamiczne SQL"
"Zidentyfikuj eksponowane wrażliwe dane w odpowiedziach API"
# Walidacja architektury
"Zweryfikuj czy wszystkie serwisy podążają za naszym wzorcem repository"
"Znajdź bezpośredni dostęp do bazy danych poza repozytoriami"
"Sprawdź czy jakikolwiek kod frontendu importuje moduły backendowe"

Zarządzaj użyciem tokenów w dużych projektach:

Okno terminala
# 1. Często czyść
/clear
# 2. Skupiaj rozmowy
"Pracuj tylko nad modułem uwierzytelniania"
# 3. Używaj konkretnych referencji plików
@auth/login.service.ts
# Zamiast: "plik serwisu logowania"
# 4. Kompresuj kontekst
/compact
# 5. Usuń niepotrzebne pliki
"Ignoruj pliki testowe dla tego zadania"

Wskazówka 47: Twórz dokumentację specyficzną dla modułów

Dział zatytułowany „Wskazówka 47: Twórz dokumentację specyficzną dla modułów”

Dokumentuj każdy główny moduł kompleksowo:

# Dokumentacja modułu płatności
## Przegląd
Obsługuje całe przetwarzanie płatności włączając karty kredytowe,
PayPal i płatności kryptowalutami.
## Kluczowe pliki
- `payment.service.ts` - Główny orchestrator serwisu
- `processors/` - Implementacje procesorów płatności
- `models/transaction.model.ts` - Model danych transakcji
- `webhooks/` - Webhooki dostawców płatności
## Krytyczna logika biznesowa
1. **Logika ponownych prób**: 3 próby z wykładniczym backoff
2. **Idempotentność**: Używaj transaction_id aby zapobiec duplikatom
3. **Ścieżka audytu**: Każda operacja logowana do tabeli audit_log
4. **Zwroty**: Max 90 dni, wymaga zatwierdzenia managera
## Punkty integracji
- User Service: Do danych klientów
- Order Service: Do realizacji zamówień
- Notification Service: Do paragonów płatności
- Audit Service: Do logowania compliance
## Wymagania testowe
- Testy jednostkowe: Mockuj wszystkich zewnętrznych dostawców
- Testy integracyjne: Używaj środowisk sandbox
- Testy obciążeniowe: Minimum 1000 TPS
- Testy bezpieczeństwa: Wymagana zgodność PCI
## Częste problemy
1. Timeout webhooków - implementuj przetwarzanie async
2. Konwersja walut - buforuj kursy na 1 godzinę
3. Nieudane płatności - jasna komunikacja z użytkownikiem
4. Częściowe zwroty - złożone zarządzanie stanem

Podchodź do dużej refaktoryzacji systematycznie:

  1. Przeanalizuj aktualny stan

    Okno terminala
    "Przeanalizuj system uwierzytelniania i stwórz plan refaktoryzacji"
  2. Stwórz sieć bezpieczeństwa

    Okno terminala
    "Napisz kompleksowe testy dla aktualnego zachowania uwierzytelniania"
  3. Refaktoryzuj małymi krokami

    Okno terminala
    "Krok 1: Wyodrębnij logikę uwierzytelniania do oddzielnego serwisu"
    "Krok 2: Stwórz interfejsy dla dostawców uwierzytelniania"
    "Krok 3: Zaimplementuj dostawcę JWT"
    "Krok 4: Dodaj dostawców OAuth"
  4. Utrzymuj kompatybilność wsteczną

    Okno terminala
    "Stwórz warstwę adaptera dla starego API uwierzytelniania"
  5. Strategia migracji

    Okno terminala
    "Stwórz plan migracji dla istniejących sesji"

Reguły refaktoryzacji inkrementalnej

  • Nigdy nie łam istniejącej funkcjonalności
  • Każdy krok powinien być wdrażalny
  • Testy muszą przechodzić po każdej zmianie
  • Dokumentuj decyzje w CLAUDE.md
  • Utrzymuj PR poniżej 400 linii

Używaj Claude do znajdowania wzorców i niespójności:

Okno terminala
# Znajdź niespójne wzorce
"Znajdź wszystkie różne wzorce obsługi błędów w naszej bazie kodu"
"Pokaż mi wszystkie różne sposoby walidacji adresów email"
"Zidentyfikuj niespójne konwencje nazewnictwa"
# Zlokalizuj zduplikowany kod
"Znajdź podobne wzorce kodu, które mogłyby być zrefaktoryzowane"
"Pokaż mi zduplikowaną logikę biznesową między serwisami"
# Naruszenia architektury
"Znajdź wszystkie miejsca gdzie warstwa prezentacji bezpośrednio dostaje się do bazy danych"
"Pokaż mi serwisy wywołujące inne serwisy synchronicznie"
# Wzorce wydajności
"Znajdź wszystkie wzorce zapytań N+1"
"Zlokalizuj wszystkie synchroniczne I/O w obsłudze żądań"
"Pokaż mi wszystkie niebuforowane zapytania do bazy danych"

Przykład z życia:

Okno terminala
# Użycie zespołu bezpieczeństwa Anthropic
"Znajdź wszystkie różne sposoby konstruowania zapytań SQL i zidentyfikuj
które mogą być podatne na injection"
# Claude identyfikuje:
# - 15 różnych wzorców zapytań
# - 3 potencjalnie podatne konstrukcje
# - Sugeruje refaktoryzację do zapytań sparametryzowanych

Wskazówka 50: Zaimplementuj przepływy pracy eksploracji bazy kodu

Dział zatytułowany „Wskazówka 50: Zaimplementuj przepływy pracy eksploracji bazy kodu”

Opracuj systematyczne podejścia do zrozumienia dużych baz kodu:

Okno terminala
# 1. Zrozumienie wysokiego poziomu
"Co robi ten projekt? Wyjaśnij główny cel i architekturę"
# 2. Zidentyfikuj punkty wejścia
"Pokaż mi główne punkty wejścia dla tej aplikacji"
# 3. Śledź krytyczne ścieżki
"Prześledź przepływ żądania logowania użytkownika"
# 4. Zrozum model danych
"Wyjaśnij główne modele danych i ich relacje"
# 5. Zidentyfikuj kluczowe wzorce
"Jakie wzorce projektowe są używane w tej bazie kodu?"

Lista kontrolna dużych baz kodu

  • ✅ Używaj hierarchicznych plików CLAUDE.md
  • ✅ Uruchamiaj wiele równoległych instancji
  • ✅ Skupiaj się na konkretnych modułach na sesję
  • ✅ Czyść kontekst między niepowiązanymi zadaniami
  • ✅ Dokumentuj decyzje architektoniczne
  • ✅ Twórz systematyczne przepływy pracy eksploracji
  • ✅ Używaj podejść refaktoryzacji inkrementalnej
  • ✅ Wykorzystuj rozpoznawanie wzorców
  • ✅ Utrzymuj kompleksowe testy
  • ✅ Monitoruj użycie tokenów za pomocą /cost

Kluczowe zasady sukcesu:

  1. Myśl systemowo: Rozumiej relacje i zależności
  2. Pracuj inkrementalnie: Małe, zweryfikowane zmiany
  3. Utrzymuj kontekst: Używaj plików CLAUDE.md efektywnie
  4. Wykorzystuj paralelizm: Wiele instancji dla różnych problemów
  5. Ufaj wyszukiwaniu: Pozwól Claude znajdować wzorce, które możesz przegapić

Po opanowaniu strategii dla dużych baz kodu, jesteś gotowy zoptymalizować swój ogólny przepływ pracy rozwoju. Przejdź do Optymalizacja przepływu pracy, aby przekształcić sposób podejścia do rozwoju oprogramowania z asystą AI.