Przejdź do głównej zawartości

Wzorce backendu Node.js

Opanuj rozwój backendu Node.js z Cursor i Claude Code. Te wzorce obejmują wszystko od projektowania API po mikrousługi, integrację z bazami danych, strategie testowania i wzorce wdrażania zoptymalizowane dla programowania wspomaganego przez AI.

  1. Otwórz Cursor w swoim workspace
  2. Aktywuj tryb Agent (Cmd/Ctrl + I)
  3. Prompt: “Użyj Context7 aby pobrać najnowszą dokumentację Express.js i Prisma. Stwórz projekt Node.js TypeScript z:
    • Express.js z definicjami typów
    • Prisma ORM dla bazy danych
    • Jest dla testowania
    • ESLint i Prettier
    • Konfiguracja Dockera”
  4. Pozwól agentowi obsłużyć instalację pakietów i konfigurację
// Prompt Cursor dla czystej architektury:
"Skonfiguruj czystą architekturę dla Node.js z:
- Warstwą domeny (encje, przypadki użycia)
- Warstwą infrastruktury (baza danych, usługi zewnętrzne)
- Warstwą aplikacji (kontrolery, middleware)
- Warstwą prezentacji (DTO, transformery)
- Wstrzykiwanie zależności z tsyringe"
// Wygenerowana struktura:
src/
domain/
entities/
repositories/
use-cases/
infrastructure/
database/
external/
application/
controllers/
middleware/
presentation/
dtos/
transformers/
// PRD: API zarządzania użytkownikami
// Wymagania: RESTful API z autoryzacją, walidacją i dokumentacją
// Plan: Użyj Context7 dla aktualnych wzorców Express
// Prompt Cursor Agent:
"Użyj Context7 aby zbadać najlepsze praktyki Express.js i autentyfikację JWT.
Stwórz RESTful API do zarządzania użytkownikami z:
- Operacje CRUD
- Middleware walidacji
- Obsługa błędów
- Autentyfikacja z JWT
- Ograniczanie częstotliwości
- Dokumentacja OpenAPI
Lista zadań:
- [ ] Skonfiguruj Express z TypeScript
- [ ] Stwórz trasy i kontrolery użytkowników
- [ ] Zaimplementuj middleware walidacji
- [ ] Dodaj autentyfikację JWT
- [ ] Skonfiguruj ograniczanie częstotliwości
- [ ] Wygeneruj dokumentację OpenAPI"
// Kompleksowy prompt GraphQL:
"Skonfiguruj serwer GraphQL z:
- Apollo Server
- Dekoratory type-graphql
- DataLoader dla zapobiegania N+1
- Wsparcie subskrypcji
- Kontekst autentyfikacji
- Obsługa błędów"
Okno terminala
# PRD: Schemat bazy danych e-commerce
# Plan: Zaprojektuj znormalizowany schemat z Prisma
# Użyj database MCP dla wglądu w schemat
"Połącz się z PostgreSQL MCP i przeanalizuj istniejącą strukturę bazy danych jeśli istnieje"
# Użyj Context7 dla wzorców Prisma
"Użyj Context7 aby pobrać najnowszą dokumentację Prisma i najlepsze praktyki"
# Kroki implementacji:
1. **Projektowanie schematu**: "Na podstawie dokumentacji Context7, stwórz schemat Prisma dla e-commerce z użytkownikami, produktami, zamówieniami"
2. **Migracje**: "Wygeneruj i zastosuj migracje bazy danych"
3. **Dane seed**: "Stwórz skrypt seed z realistycznymi danymi testowymi"
4. **Optymalizacja zapytań**: "Użyj PostgreSQL MCP aby przeanalizować zapytania i dodać indeksy"
// Prompt wzorców bazy danych:
"Zaimplementuj połączenie z bazą danych z:
- Pooling połączeń
- Logika ponawiania
- Wsparciem transakcji
- Dzieleniem odczyt/zapis
- System migracji
- Strategie kopii zapasowych"

Projektowanie bazy danych wspomagane AI

Cursor/Claude może pomóc z:

  • Normalizacją schematów
  • Optymalizacją indeksów
  • Analizą wydajności zapytań
  • Strategiami migracji
  • Najlepszymi praktykami modelowania danych
// Prompt systemu autoryzacji:
"Zaimplementuj autentyfikację JWT z:
- Tokenami dostępu i odświeżania
- Kontrolą dostępu opartą na rolach
- Integracją OAuth2 (Google, GitHub)
- Zarządzaniem sesjami
- Przepływem resetowania hasła
- Wsparciem 2FA"

Walidacja wejścia

// Prompt: "Dodaj kompleksową walidację:
// - Walidacja treści żądania
// - Sanityzacja parametrów zapytania
// - Ograniczenia przesyłania plików
// - Zapobieganie SQL injection"

Ograniczanie częstotliwości

// Prompt: "Zaimplementuj ograniczanie częstotliwości:
// - Limity per użytkownik
// - Throttling bazowany na IP
// - Rozproszone ograniczanie częstotliwości
// - Niestandardowe strategie limitów"
// Prompt konfiguracji mikrousług:
"Stwórz architekturę mikrousług z:
- Service discovery
- API gateway
- Komunikacja między usługami
- Distributed tracing
- Circuit breakers
- Messaging sterowany zdarzeniami"
// Integracja RabbitMQ:
"Skonfiguruj RabbitMQ z:
- Wzorzec publisher/subscriber
- Kolejki robocze
- Kolejki martwych listów
- Odzyskiwanie połączeń
- Potwierdzanie wiadomości"
// PRD: Kompleksowa strategia testowania
// Plan: Zaimplementuj testowanie wielowarstwowe
// Użyj Context7 dla frameworków testowych
"Użyj Context7 aby pobrać dokumentację dla:
1. Najlepsze praktyki Jest
2. Supertest dla testowania API
3. Strategie testowania bazy danych"
// Prompt generowania testów:
"Zgodnie z zasadami TDD, stwórz zestaw testów z:
Lista zadań:
- [ ] Testy jednostkowe dla usług
- [ ] Testy integracyjne dla API
- [ ] Testy E2E z Supertest
- [ ] Testy transakcyjne bazy danych
- [ ] Mock usług zewnętrznych
- [ ] Raportowanie pokrycia (min 80%)"
  1. Napisz testy najpierw: “Stwórz testy dla endpointu rejestracji użytkownika”
  2. Zaimplementuj kod: “Zaimplementuj rejestrację użytkownika aby przeszła testy”
  3. Refaktoryzuj: “Zrefaktoryzuj kod zachowując pokrycie testami”
  4. Dodaj przypadki brzegowe: “Dodaj testy dla scenariuszy błędów”
// Implementacja cache'owania:
"Dodaj warstwę cache'owania z:
- Redis dla storage sesji
- Cache'owanie wyników zapytań
- Integracja CDN
- Strategie unieważniania cache
- Cache rozproszony
- Monitorowanie wydajności"

Wzorce wydajności

AI może zaimplementować:

  • Optymalizację zapytań do bazy danych
  • Pooling połączeń
  • Strategie lazy loading
  • Kompresję zasobów
  • Wzorce skalowania poziomego
// Prompt konfiguracji logowania:
"Zaimplementuj system logowania z:
- Logger Winston lub Pino
- Strukturalne logi JSON
- Poziomy logów i filtrowanie
- Correlation IDs
- Śledzenie błędów (Sentry)
- Gotowość agregacji logów"
  1. Zbieranie metryk: “Skonfiguruj metryki Prometheus”
  2. Health checki: “Dodaj endpointy health check”
  3. Integracja APM: “Skonfiguruj Application Performance Monitoring”
  4. Alerting: “Ustaw reguły alertów”
# Prompt konfiguracji Docker:
"Stwórz konfigurację Docker z:
- Multi-stage builds
- Optymalizacja warstw
- Najlepsze praktyki bezpieczeństwa
- Zmienne środowiskowe
- Health checks
- Compose dla local dev"
# Prompt CI/CD: "Stwórz workflow GitHub Actions z:
# - Automatyczne testowanie
# - Budowanie i push obrazów Docker
# - Wdrażanie na staging/production
# - Mechanizmy rollback"
// PRD: System komunikacji czasu rzeczywistego
// Użyj Context7 dla wzorców Socket.io
"Użyj Context7 aby pobrać najnowszą dokumentację Socket.io i wzorce skalowania"
// Plan implementacji WebSocket:
"Stwórz system czasu rzeczywistego z:
Plan:
1. Zbadaj najlepsze praktyki Socket.io
2. Zaprojektuj architekturę pokojów
3. Zaimplementuj przepływ autoryzacji
4. Dodaj obsługę ponownego łączenia
Lista zadań:
- [ ] Konfiguracja Socket.io z TypeScript
- [ ] System zarządzania pokojami
- [ ] Autentyfikacja oparta na JWT
- [ ] Logika ponownego łączenia z exponential backoff
- [ ] Rozgłaszanie wiadomości z potwierdzeniami
- [ ] Śledzenie obecności z Redis"
// Implementacja SSE:
"Stwórz endpoint SSE dla:
- Powiadomień na żywo
- Aktualizacji postępu
- Dashboardów czasu rzeczywistego
- Automatyczne ponowne łączenie
- Filtrowanie zdarzeń"
// Prompt obsługi błędów:
"Zaimplementuj obsługę błędów z:
- Niestandardowe klasy błędów
- Globalny middleware błędów
- Łapanie błędów async
- Logowanie błędów
- Odpowiedzi przyjazne użytkownikowi
- Zarządzanie stack trace"
// Strukturyzuj prompty jak:
"Stwórz [funkcjonalność] dla Node.js z:
- Wsparciem TypeScript
- Obsługą błędów
- Walidacją wejścia
- Testami jednostkowymi
- Dokumentacją
Zgodnie z naszymi istniejącymi wzorcami w [pliki referencyjne]"

Code review wspomagany AI

Użyj Cursor/Claude do:

  • Sprawdzania luk w zabezpieczeniach
  • Weryfikacji kompletności obsługi błędów
  • Optymalizacji zapytań do bazy danych
  • Zapewnienia spójnych wzorców kodowania
  • Walidacji kontraktów API
// PRD: Implementacja event sourcing
// Faza badawcza
"Użyj Context7 aby zbadać:
1. Wzorce event sourcing
2. Strategie implementacji CQRS
3. Bazy danych event store"
# Użyj database MCP dla event store
"Połącz się z PostgreSQL MCP aby zaprojektować schemat event store"
// Implementacja event sourcing:
"Zaimplementuj event sourcing z:
Plan:
1. Zaprojektuj schemat zdarzeń
2. Zaimplementuj event store
3. Stwórz projekcje
4. Dodaj możliwość replay
Lista zadań:
- [ ] Projekt event store z wersjonowaniem
- [ ] Możliwość replay zdarzeń
- [ ] Snapshoty dla wydajności
- [ ] Implementacja wzorca CQRS
- [ ] Aktualizacje projekcji z eventual consistency"
// Konfiguracja serverless:
"Stwórz funkcje serverless dla:
- Handlery AWS Lambda
- Optymalizacja cold start
- Warstwy współdzielone
- Konfiguracja środowiska
- Konfiguracja lokalnego developmentu"