Przejdź do głównej zawartości

Inżynieria promptów

Inżynieria promptów to sztuka i nauka efektywnej komunikacji z AI. Z Claude Code nie chodzi tylko o otrzymywanie odpowiedzi – to orkiestracja złożonych przepływów pracy rozwoju. Ten przewodnik ujawnia zaawansowane strategie promptowania, które przekształcają Claude z asystenta kodowania w wyrafinowanego partnera programistycznego.

Claude Code działa jako to, co inżynierowie Anthropic nazywają “szybkim stażystą z doskonałą pamięcią”. Ten model mentalny jest kluczowy dla efektywnego promptowania:

Charakterystyka Claude

  • Chętny do pomocy: Dobrze reaguje na jasne, konkretne instrukcje
  • Doskonała pamięć: Pamięta wszystko w kontekście rozmowy
  • Ograniczone doświadczenie: Może potrzebować wskazówek w decyzjach architektonicznych
  • Literalna interpretacja: Korzysta z jawnych ograniczeń i wymagań
  • Świadomy kontekstu: Używa wiedzy o bazie kodu do informowania odpowiedzi

Jedna z najpotężniejszych technik to stopniowe ujawnianie informacji:

Okno terminala
# ❌ Przeciążenie informacyjne
> Zbuduj kompletną platformę e-commerce z uwierzytelnianiem użytkowników, katalogiem produktów,
koszykiem zakupów, przetwarzaniem płatności, zarządzaniem zamówieniami, śledzeniem inwentarza,
powiadomieniami email i panelem administratora używając Next.js i PostgreSQL
# ✅ Progresywne ujawnianie
> Najpierw przeanalizuj naszą aktualną strukturę bazy kodu
# Claude bada istniejące wzorce
> Utwórz plan dodawania funkcji e-commerce do naszej platformy
# Claude tworzy podejście fazowe
> Zacznijmy od katalogu produktów. Zaprojektuj schemat bazy danych
# Claude skupia się na jednym komponencie na raz

Strategicznie wykorzystuj możliwości rozszerzonego rozumowania Claude:

Okno terminala
> think about how to implement rate limiting
# Przydziela ~1,000 tokenów na rozumowanie
# Dobre dla prostych problemów

Podaj ograniczenia przed wymaganiami aby oframować przestrzeń rozwiązań:

Okno terminala
# Efektywne promptowanie z ograniczeniami na pierwszym miejscu
> Ograniczenia:
- Musi zachować kompatybilność wsteczną
- Nie może modyfikować istniejącego schematu bazy danych
- Musi ukończyć w czasie poniżej 2 sekund
- Ograniczone do 50MB użycia pamięci
Zadanie: Optymalizuj funkcjonalność wyszukiwania
# Claude teraz rozumie granice przed rozwiązywaniem

Pokaż Claude czego chcesz poprzez przykłady:

Okno terminala
> Oto jak aktualnie obsługujemy uwierzytelnianie:
[wklej istniejący kod auth]
Oto podobny system używający JWT:
[wklej przykład JWT]
Zmigruj nasze auth aby używało JWT podążając za tymi samymi wzorcami
# Claude uczy się z konkretnych przykładów

Eksploracja architektury

Okno terminala
"Przeanalizuj graf zależności między
naszymi serwisami i zidentyfikuj potencjalne
zależności cykliczne lub silne sprzężenie"

Analiza wydajności

Okno terminala
"Sprofiluj bazę kodu i zidentyfikuj
top 5 wąskich gardeł wydajności
z konkretnymi numerami linii"

Audyt bezpieczeństwa

Okno terminala
"Przejrzyj przepływ uwierzytelniania pod kątem
luk z OWASP top 10 i
zasugeruj środki zaradcze"

Dług techniczny

Okno terminala
"Znajdź zapachy kodu i antywzorce
w naszej bazie kodu, uporządkowane według
wpływu i nakładu pracy na naprawę"

Kluczem do promptów implementacji jest konkretność bez mikrozarządzania:

Okno terminala
# Zbyt niejasne
> Dodaj cache'owanie
# Zbyt szczegółowe
> Dodaj cache'owanie Redis używając klienta node-redis wersja 4.5.1 z...
# W sam raz
> Dodaj cache'owanie do naszych odpowiedzi API:
- Używaj naszej istniejącej konfiguracji Redis
- Cache'uj endpointy GET na 5 minut
- Unieważniaj przy powiązanych POST/PUT/DELETE
- Podążaj za naszymi ustalonymi wzorcami obsługi błędów
Okno terminala
# Kompleksowe generowanie testów
> Wygeneruj testy dla modułu płatności:
- Testy jednostkowe dla każdej funkcji
- Testy integracyjne dla endpointów API
- Przypadki graniczne włączając awarie sieci
- Mockuj zewnętrzny gateway płatności
- Cel 90%+ pokrycia
# Inteligentne ulepszanie testów
> Przejrzyj nasze istniejące testy i:
- Zidentyfikuj brakujące przypadki graniczne
- Znajdź niestabilne testy i uczyń je deterministycznymi
- Dodaj testy oparte na właściwościach gdzie odpowiednie
- Upewnij się że testy podążają za wzorcem AAA

Dla operacji wieloetapowych, używaj strukturyzowanych list kontrolnych:

Okno terminala
> Utwórz migration-checklist.md ze wszystkimi krokami potrzebnymi do:
1. Migracji z Express do Fastify
2. Zachowania całej istniejącej funkcjonalności
3. Aktualizacji testów
4. Aktualizacji dokumentacji
Następnie przepracuj listę kontrolną, odznaczając każdy element
# Claude tworzy i podąża za ustrukturyzowanym planem

Wbuduj weryfikację w swoje prompty:

Okno terminala
> Dla każdego pliku który modyfikujesz:
1. Wprowadź zmianę
2. Uruchom powiązane testy
3. Jeśli testy nie przechodzą, napraw i uruchom ponownie
4. Przejdź do następnego pliku tylko gdy testy przechodzą
Zacznij od user.service.ts

Wykorzystaj możliwości podagentów Claude:

Okno terminala
> Użyj podagentów aby zbadać to równolegle:
- Aktualne wzorce użycia pamięci w aplikacji
- Dostępne strategie cache'owania dla naszego stosu
- Benchmarki wydajności z podobnych systemów
Następnie zsyntetyzuj odkrycia w plan optymalizacji
Okno terminala
"Czy mógłbyś proszę pomóc mi zrozumieć jak mógłbym
potencjalnie zrefaktoryzować ten moduł uwierzytelniania
aby prawdopodobnie używać tokenów JWT zamiast obecnego
podejścia opartego na sesjach, upewniając się aby
zachować całą istniejącą funkcjonalność?"

~50 tokenów

Zarządzaj kontekstem Claude strategicznie:

Okno terminala
# Wyczyść kontekst między głównymi zadaniami
> /clear
# Selektywne ładowanie kontekstu
> Skup się tylko na module płatności - ignoruj inne części
> Przeanalizuj payment/src/ pod kątem zgodności z PCI
# Zachowanie kontekstu
> Zanim będziemy kontynuować, podsumuj co osiągnęliśmy
i co pozostaje w todo.md
> /clear
> Kontynuuj od todo.md

Prowadź Claude do lepszych rozwiązań poprzez pytania:

Okno terminala
> Jakie są potencjalne problemy z tym schematem bazy danych?
# Claude identyfikuje problemy
> Jak rozwiązałbyś problem zapytania N+1 który zidentyfikowałeś?
# Claude proponuje rozwiązania
> Jakie są kompromisy każdego podejścia?
# Claude analizuje opcje
> Zaimplementuj rozwiązanie które najlepiej balansuje wydajność i maintainability
# Claude dokonuje świadomego wyboru

Używaj Claude jako inteligentnej gumowej kaczki:

Okno terminala
> Próbuję debugować dlaczego nasze połączenia WebSocket
przerywają się po dokładnie 30 sekundach. Oto co wiem:
- Dzieje się tylko w produkcji
- Zaczęło się po ostatnim wdrożeniu
- Brak logów błędów
Pomóż mi przemyśleć możliwe przyczyny
# Claude zadaje pytania doprecyzujące i prowadzi śledztwo

Strukturyzuj żądania przeglądu kodu efektywnie:

Okno terminala
> Przejrzyj ten PR skupiając się na:
1. Błędach logicznych i przypadkach granicznych
2. Lukach bezpieczeństwa
3. Implikacjach wydajnościowych
4. Spójności z naszymi wzorcami
Pomiń problemy stylu - linter je obsługuje
[wklej diff lub odwołaj się do PR]

Przechowuj złożone prompty jako polecenia wielokrotnego użytku:

.claude/commands/optimize-query.md
Przeanalizuj dostarczone zapytanie SQL i:
1. Wyjaśnij aktualny plan wykonania
2. Zidentyfikuj wąskie gardła wydajności
3. Zasugeruj optymalizacje z wyjaśnieniami
4. Dostarcz zoptymalizowane zapytanie
5. Oszacuj poprawę wydajności
Rozważ:
- Użycie indeksu
- Strategie join
- Objętość danych
- Częstotliwość zapytania
Argumenty: $ARGUMENTS

Użycie:

Okno terminala
> /project:optimize-query "SELECT * FROM users WHERE..."

Używaj skryptowania powłoki aby tworzyć prompty świadome kontekstu:

Okno terminala
# Generuj prompt z aktualnym stanem systemu
claude << EOF
Status systemu:
- CPU: $(top -l 1 | grep "CPU usage" | awk '{print $3}')
- Pamięć: $(vm_stat | grep "Pages free" | awk '{print $3}')
- Dysk: $(df -h / | awk 'NR==2 {print $5}')
Zdiagnozuj dlaczego aplikacja działa wolno
EOF

Wbuduj obsługę błędów w prompty:

Okno terminala
> Spróbuj zaimplementować integrację OAuth:
- Jeśli jakikolwiek krok nie powiedzie się, udokumentuj dlaczego w errors.log
- Zasugeruj alternatywne podejścia
- Utwórz minimalną działającą wersję jeśli pełna implementacja nie jest możliwa
- Oznacz niejasne wymagania komentarzami TODO

Nie oczekuj perfekcji za pierwszym razem:

Okno terminala
# Początkowa próba
> Utwórz formularz rejestracji użytkownika
# Dopracowanie na podstawie wyniku
> Dobry start. Teraz dodaj:
- Walidację po stronie klienta
- Wskaźnik siły hasła
- Checkbox regulaminu
# Dalsze dopracowanie
> Dodaj właściwą obsługę błędów gdy API jest niedostępne

Przywołuj konkretną ekspertyzę:

Okno terminala
> Jako ekspert wydajności bazy danych, przeanalizuj nasze wzorce zapytań
> Jako badacz bezpieczeństwa, spróbuj znaleźć luki
> Jako projektant UX, zasugeruj ulepszenia naszych komunikatów błędów

Używaj sprzecznych punktów widzenia dla lepszych rozwiązań:

Okno terminala
> Przedstaw argumenty za i przeciw używaniu mikrousług
dla naszego przypadku użycia, następnie zaleć najlepsze podejście
> Porównaj REST vs GraphQL dla naszej aplikacji mobilnej,
rozważając nasze konkretne ograniczenia

Pozwól Claude pomóc ulepszyć Twoje prompty:

Okno terminala
> Oto zadanie które często muszę wykonywać:
[opisz zadanie]
Utwórz zoptymalizowany szablon promptu którego mogę używać ponownie
# Claude tworzy dopracowany, wielokrotnego użytku prompt

Śledź to aby ulepszyć swoje promptowanie:

  1. Efektywność tokenów: Jakość wyniku / zużyte tokeny
  2. Liczba iteracji: Ile dopracowań było potrzebnych
  3. Wskaźnik błędów: Jak często Claude źle rozumie
  4. Czas do rozwiązania: Całkowity czas od promptu do działającego kodu

Przed wysłaniem złożonego promptu:

  • Czy zadanie jest jasno zdefiniowane?
  • Czy ograniczenia są jawne?
  • Czy kryteria sukcesu są mierzalne?
  • Czy kontekst jest skoncentrowany i istotny?
  • Czy przykłady są dostarczone gdzie pomocne?
  • Czy prompt jest ustrukturyzowany logicznie?
  • Czy przypadki graniczne są rozważane?

❌ Powieść

Pisanie ekstremalnie długich, wędrujących promptów które zakopują rzeczywiste żądanie w akapitach kontekstu.

❌ Czytelnik myśli

Założenie że Claude zna Twoje niewypowiedziane preferencje, decyzje architektoniczne lub logikę biznesową.

❌ Perfekcjonista

Oczekiwanie bezbłędnego kodu przy pierwszym generowaniu zamiast iterowania.

❌ Mikromenedżer

Specyfikowanie każdego szczegółu implementacji zamiast wykorzystywania możliwości Claude.

Opanuj te komplementarne umiejętności:

Pamiętaj: Inżynieria promptów to zarówno sztuka jak i nauka. Najlepsze prompty są jasne, kontekstowe i konwersacyjne. Z praktyką rozwiniesz intuicję co działa i stworzysz własne wzorce pasujące do Twojego stylu rozwoju.