Przejdź do głównej zawartości

Receptury backendowe

Receptury backendowe to 11 stron promptów do skopiowania dla Claude Code, Codex i Cursora: jedna o projektowaniu API, dziewięć o językach i frameworkach oraz jedna o serverless. Każda receptura łączy prompt z maszynowym sprawdzeniem, takim jak test integracyjny na prawdziwej bazie, detektor wyścigów czy test kontraktu, które dowodzi poprawności wyniku bez czytania każdej linii przez człowieka.

Ta strona jest dla programistów, którzy oddają agentowi kod po stronie serwera. Wiesz, gdzie to pęka: testy jednostkowe przechodzą, a na produkcji wychodzi zapytanie N+1, zapisane do połowy zamówienie, wyczerpana pula połączeń albo dwa żądania, które jednocześnie wygrywają ten sam wyścig.

Każda receptura zakłada konfigurację z następnej sekcji.

Twój stosRecepturaCo receptura obejmuje i sprawdza
Projektowanie API HTTP, dowolny językWzorce rozwoju APIIdempotentne POST-y, paginacja kluczem (keyset), kontrola dryfu OpenAPI
Node.js z Express, TypeScriptPrzepisy na Node.js/ExpressTransakcje w Prismie, rotacja tokenów, rate limiting, zadania BullMQ
Python z FastAPI, DjangoPrzepisy na PythonFastAPI i Django REST, asynchroniczny SQLAlchemy 2.0, testy API w pytest
GoWzorce języka Gogo test -race, wykrywanie wycieków goroutine, pule połączeń o ustalonym rozmiarze
Java ze Spring BootWzorce Java i Spring BootTesty Testcontainers dla JPA, odporności i bezpieczeństwa
C# z ASP.NET Core, EF CoreReceptury .NET i C#Testy xUnit na prawdziwym Postgresie, analizatory, które przerywają build
Ruby on RailsReceptury Ruby on Railsbin/ci jako definicja ukończenia, N+1, przez które padają specy
PHP z Laravel, SymfonyWzorce rozwoju PHPCienkie kontrolery, usuwanie N+1, testy PHPUnit
RustWzorce rozwoju RustZapytania SQLx sprawdzane przy kompilacji, walka z borrow checkerem, czyste zamykanie usług async
Elixir z PhoenixPrzepisy na Elixir/Phoenixmix precommit jako bramka, testy OTP i Ecto
AWS Lambda, Cloudflare Workers, VercelWzorce rozwoju serverlessIdempotentne handlery, kontrola bindingów, diagnoza zimnych startów

Zmiany schematu, kod ORM i wolne zapytania znajdziesz w przepisach bazodanowych.

Każda receptura kończy się poleceniem „uruchom bramkę”, więc repozytorium musi tę bramkę nazwać. Wpisz do pliku instrukcji dokładne komendy i definicję ukończenia, na przykład w usłudze w TypeScripcie:

AGENTS.md
## Commands
- Types: `npx tsc --noEmit`
- Lint: `npm run lint`
- Tests, unit and integration (needs Docker): `npm test`
- One file: `npx vitest run src/orders/orders.test.ts`
## Definition of done
Types, lint, and tests pass, and your reply ends with the last lines of each.
Any change that touches the database adds an integration test against real
Postgres, not a mocked client. Never edit an existing test to make it pass
without asking first.

Miejsce pliku zależy od narzędzia:

Claude Code czyta CLAUDE.md. Od v2.1.277 (kanał latest) czyta też AGENTS.md, gdy projekt nie ma CLAUDE.md. Na kanale stable (v2.1.274 w dniu 2026-09-26) trzymaj CLAUDE.md z jedną linią @AGENTS.md. Żeby definicja ukończenia stała się mechaniczną kontrolą, dodaj hook Stop, który uruchamia testy: zobacz hooki Claude Code.

Plik instrukcji to tylko rada. Rozstrzyga job CI, który uruchamia te same komendy przy każdym pull requeście; zobacz automatyzację pipeline’ów. Jedno źródło prawdy dla wszystkich trzech narzędzi opisują wspólne reguły agentów.

Jak zweryfikować kod backendu bez czytania każdej linii?

Dział zatytułowany „Jak zweryfikować kod backendu bez czytania każdej linii?”

Dla każdej awarii poproś o sprawdzenie, które ją wykrywa i kończy się błędem, i wymagaj, żeby agent dołączył jego wynik.

AwariaSprawdzenie, które ją łapie
Zapytania N+1Test, który liczy zapytania na żądanie i pada powyżej ustalonej liczby
Brak transakcjiTest, który wymusza błąd w połowie operacji i sprawdza, że nic nie zostało zapisane
Wyciek połączeń lub goroutineStatystyki puli albo detektor wycieków sprawdzane przy sprzątaniu po testach
Wyścig na współdzielonym stanieDetektor wyścigów, jeśli język go ma (go test -race), plus test, który wysyła równoległe żądania do tego samego zasobu i sprawdza niezmiennik
Dryf kontraktu APIWygenerowana specyfikacja OpenAPI porównywana w CI z tą zapisaną w repozytorium

Człowiek zatwierdza dwa razy: kryteria akceptacji, zanim agent zacznie, i nieodwracalne kroki, gdy skończy, na przykład migrację usuwającą dane albo zmianę uwierzytelniania. Oba zatwierdzenia trafiają do pakietu dowodów pull requesta.

  • Testy przechodzą, bo agent zamockował bazę. Naprawa: definicja ukończenia wymaga testów integracyjnych na prawdziwym silniku; konfigurację Testcontainers pokazują wzorce testowania integracyjnego.
  • Agent poprawia test, aż zrobi się zielony. Naprawa: zabroń tego w pliku instrukcji, przeglądaj diff testów osobno i przeczytaj ochronę wyroczni.
  • Kod używa API frameworka ze starszej wersji. Naprawa: daj agentowi aktualną dokumentację przez Context7 albo przez serwer MCP samego frameworka, jeśli receptura go wskazuje.
  • Bramka jest zielona lokalnie i czerwona w CI. Naprawa: niech CI uruchamia dokładnie te komendy, które są w pliku instrukcji, a agent odtworzy nimi błąd, zanim cokolwiek poprawi.
  • Agent pomija bramkę i ogłasza „gotowe”. Naprawa: dodaj hook Stop w Claude Code i ustaw job CI jako wymagane sprawdzenie dla każdego narzędzia.