Budowanie pierwszej funkcji z Claude Code
Masz zainstalowany, skonfigurowany Claude Code połączony z twoimi narzędziami. Twój CLAUDE.md opisuje twój projekt. Teraz czas faktycznie coś zbudować. Nie zabawkowy przykład — prawdziwą funkcję, która dotyka wielu plików, potrzebuje testów i musi przejść twój pipeline CI.
Ten poradnik prowadzi przez pełny cykl rozwoju: zrozumienie wymagania, implementację w wielu plikach, uruchamianie testów, debugowanie błędów i przygotowanie czystego PR. Zobaczysz dokładne prompty, które utrzymują Claude skupionego i produktywnego.
Co wyniesiesz z tego poradnika
Dział zatytułowany „Co wyniesiesz z tego poradnika”- Powtarzalny workflow dla rozwoju funkcji z Claude Code
- Prompty produkujące kod jakości produkcyjnej, nie prototypy
- Strategie utrzymywania Claude na właściwej ścieżce podczas zmian w wielu plikach
- Wzorce przyrostowej implementacji z weryfikacją na każdym kroku
Pętla rozwoju
Dział zatytułowany „Pętla rozwoju”Każda funkcja podąża za tym samym podstawowym cyklem:
- Zrozum — Niech Claude przeanalizuje wymaganie i dotknięty kod
- Zaplanuj — Uzyskaj ustrukturyzowany plan implementacji przed jakimikolwiek edycjami
- Zaimplementuj — Buduj przyrostowo, jeden komponent na raz
- Zweryfikuj — Uruchamiaj testy, sprawdzaj typy i lintuj po każdej zmianie
- Przejrzyj — Niech Claude przejrzy swoją własną pracę pod kątem problemów
- Commituj — Twórz czyste, opisowe commity
Przejdźmy przez każdy krok z prawdziwym przykładem: dodawaniem endpointu wyszukiwania do REST API.
Krok 1: Zrozumienie bazy kodu i wymagania
Dział zatytułowany „Krok 1: Zrozumienie bazy kodu i wymagania”Zacznij każdą funkcję od dania Claude pełnego kontekstu:
Claude przeczyta twoją bazę kodu, zidentyfikuje odpowiednie wzorce i da ci podsumowanie. Ten krok zapobiega najczęstszemu błędowi: Claude generuje kod, który nie pasuje do twoich istniejących wzorców.
Krok 2: Planowanie przed kodowaniem
Dział zatytułowany „Krok 2: Planowanie przed kodowaniem”Gdy Claude zrozumie bazę kodu, poproś o plan:
Na podstawie twojej analizy stwórz plan implementacji endpointuwyszukiwania. Chcę:
1. Ścieżkę routu i metodę HTTP2. Schemat walidacji danych wejściowych3. Podejście do zapytania bazodanowego4. Format odpowiedzi pasujący do istniejących endpointów5. Obsługę błędów zgodną z obecnymi wzorcami6. Przypadki testowe, które potrzebujemy
Ponumeruj każdy krok. Nie pisz kodu, dopóki nie zatwierdzę.Przejrzyj plan. Odrzuć tam, gdzie potrzeba:
Zmień zapytanie bazodanowe na użycie indeksu GIN zamiast LIKE.Również dodaj paginację do odpowiedzi -- nasze inne endpointylisty używają paginacji opartej na kursorze, nie offset.Krok 3: Implementacja przyrostowa
Dział zatytułowany „Krok 3: Implementacja przyrostowa”Nie proś Claude o implementację wszystkiego naraz. Buduj jeden element na raz:
Zaimplementuj krok 1 z planu: stwórz schemat walidacji Zoddla endpointu wyszukiwania w istniejącym pliku validatorów.Po dokonaniu zmiany przez Claude, zweryfikuj:
Uruchom type checker, aby upewnić się, że nowy schemat jest prawidłowy.Następnie przejdź do kolejnego kroku:
Teraz zaimplementuj krok 2: funkcję zapytania bazodanowego. Użyjistniejących wzorców zapytań z modułu users jako odniesienia.To przyrostowe podejście wychwytuje problemy wcześnie. Jeśli zapytanie bazodanowe Claude ma błąd typu, wychwytasz go przed zbudowaniem handlera routu na jego podstawie.
Krok 4: Weryfikacja na każdym kroku
Dział zatytułowany „Krok 4: Weryfikacja na każdym kroku”Uczyń weryfikację nawykiem, nie przemyśleniem:
# Po każdej zmianie poproś Claude o uruchomienie sprawdzeńUruchom npm run type-check i npm run lint. Napraw wszelkie błędy przed kontynuowaniem.# Po implementacji logiki uruchom testyUruchom testy dla modułu wyszukiwania. Jeśli jakieś się nie powiodą, przeanalizujawarię i napraw ją przed dalszym postępem.# Po zakończeniu całej implementacji uruchom pełny zestawUruchom pełny zestaw testów i lintera. Pokaż mi podsumowaniewszelkich awarii.Krok 5: Autoreview
Dział zatytułowany „Krok 5: Autoreview”Zanim commitniesz, niech Claude przejrzy swoje własne zmiany:
Claude często wychwytuje problemy, które sam wprowadził — brakujące sprawdzenia null, niespójne formaty błędów lub testy, które nie pokrywają przypadków brzegowych. Napraw te przed PR.
Krok 6: Commit i czyszczenie
Dział zatytułowany „Krok 6: Commit i czyszczenie”Gdy jesteś zadowolony z implementacji:
Commitnij te zmiany z opisowym komunikatem wyjaśniającym, cozostało dodane i dlaczego. Użyj formatu conventional commit.Lub użyj dedykowanej komendy commit:
claude commitClaude generuje komunikat commit na podstawie faktycznego diff, nie ogólnego opisu.
Praktyczne wskazówki dla zachowania produktywności
Dział zatytułowany „Praktyczne wskazówki dla zachowania produktywności”Utrzymuj Claude skupionego
Dział zatytułowany „Utrzymuj Claude skupionego”Długie sesje prowadzą do dryfowania. Jeśli Claude zaczyna tracić kontekst o twoich wzorcach:
Przeczytaj ponownie nasz CLAUDE.md i istniejący moduł wyszukiwania w@src/modules/search/. Następnie kontynuuj implementację formateraodpowiedzi używając tych samych wzorców.Dziel duże funkcje na sesje
Dział zatytułowany „Dziel duże funkcje na sesje”Dla funkcji zajmujących więcej niż 30-40 minut, podziel je na wiele sesji:
- Sesja 1: Schemat i zmiany bazodanowe
- Sesja 2: Ruta API i logika biznesowa
- Sesja 3: Testy i integracja
- Sesja 4: Review, dopracowanie i PR
Użyj claude -c do kontynuowania najnowszej rozmowy lub zacznij na świeżo z claude, jeśli chcesz czysty kontekst.
Używaj /compact gdy kontekst staje się ciężki
Dział zatytułowany „Używaj /compact gdy kontekst staje się ciężki”Jeśli odpowiedzi Claude zaczynają się pogarszać lub wydaje się zapominać wcześniejsze decyzje:
/compactTo podsumowuje rozmowę i zwalnia miejsce kontekstowe. Śledź to krótkim przypomnieniem, nad czym pracujesz.
Odnośniki do konkretnych plików
Dział zatytułowany „Odnośniki do konkretnych plików”Zamiast niejasnych żądań, wskaż Claude na dokładne pliki:
# Zamiast tego:Zaktualizuj moduł wyszukiwania, aby dodać filtrowanie
# Zrób to:Dodaj parametr filtra kategorii do @src/api/routes/search.tswedług wzorca użytego w @src/api/routes/products.tsPozwól Claude uruchomić twój serwer deweloperski
Dział zatytułowany „Pozwól Claude uruchomić twój serwer deweloperski”Dla aplikacji webowych Claude może uruchomić twój serwer deweloperski i sprawdzić wyniki:
Uruchom serwer deweloperski, następnie wykonaj żądanie curl do nowegoendpointu wyszukiwania z zapytaniem "typescript". Pokaż mi odpowiedź.Antywzorce
Dział zatytułowany „Antywzorce”Proszenie o wszystko naraz — “Zbuduj kompletną funkcję wyszukiwania z testami, paginacją, cachowaniem i monitoringiem” wyprodukuje przeciętny kod. Rozłóż to.
Brak weryfikacji między krokami — Jeśli pozwolisz Claude zaimplementować pięć plików przed uruchomieniem type checkera, spędzisz więcej czasu na naprawianiu kaskadowych błędów niż zaoszczędziłeś.
Akceptowanie kodu bez jego zrozumienia — Claude wyjaśni swoje zmiany, jeśli zapytasz. Jeśli nie rozumiesz, dlaczego coś zostało zrobione w określony sposób, zapytaj: “Dlaczego użyłeś kursora zamiast offsetu dla paginacji?”
Ignorowanie CLAUDE.md — Jeśli Claude ciągle generuje kod niezgodny z twoimi wzorcami, twój CLAUDE.md brakuje kluczowych informacji. Zaktualizuj go i powiedz Claude, aby go ponownie przeczytał.
Kiedy to nie działa
Dział zatytułowany „Kiedy to nie działa”Claude modyfikuje złe pliki — Bądź precyzyjny co do ścieżek plików. Używaj wzmianek @ do odnoszenia się do dokładnych plików zamiast opisywania ich nazwą.
Wygenerowany kod się nie kompiluje — Uruchamiaj type checker po każdej zmianie. Jeśli Claude generuje błędy TypeScript, powiedz mu: “Type checker znalazł błędy. Napraw je przed kontynuowaniem.”
Testy przechodzą, ale funkcja nie działa — Testy mogą nie pokrywać faktycznego zachowania. Poproś Claude o przetestowanie funkcji end-to-end z prawdziwym żądaniem, nie tylko testami jednostkowymi.
Claude utyka w pętli — Jeśli Claude ciągle próbuje tego samego podejścia i zawodzi, przerwij nowym kierunkiem: “Stop. To podejście nie działa. Zamiast tego spróbuj [alternatywne podejście].” Czasami /clear i świeży start jest szybszy niż naprawianie zdezorientowanej sesji.
Co dalej
Dział zatytułowany „Co dalej”Mając zaimplementowaną funkcję, naucz się zarządzać branchami, tworzyć czyste commity i otwierać PR z integracją git Claude Code.