Przejdź do głównej zawartości

Bramki jakości i egzekwowanie standardów

Twój zespół scalił PR w piątek, który wprowadził subtelny wyciek pamięci w obsłudze sesji użytkownika. Kod przeszedł wszystkie istniejące testy, ludzki recenzent zatwierdził go po szybkim rzucie oka, a linter nie miał nic do powiedzenia. Do poniedziałku rano serwis konsumował 4GB RAM i crashował co sześć godzin. Bramki jakości nie służą do wyłapywania błędów składniowych — służą do wyłapywania tego, co ludzie i lintery pomijają.

  • Wielowarstwowa architektura bramek jakości wyłapująca problemy na każdym etapie
  • Przepływy przeglądów kodu oparte na AI, które wykraczają poza sprawdzanie stylu
  • Mierzalne metryki jakości korelujące z rzeczywistą stabilnością produkcyjną
  • Wzorce promptów do głębokiej analizy kodu, w tym wydajności, bezpieczeństwa i utrzymywalności
  • Strategie automatycznego egzekwowania, które nie spowalniają prędkości deweloperów

Bramki jakości działają warstwowo. Każda warstwa wyłapuje inne kategorie problemów i żadna pojedyncza warstwa nie jest wystarczająca sama w sobie.

Inline AI w Cursor wyłapuje problemy podczas pisania. Wzmocnij go jawnymi regułami jakości:

.cursor/rules
CODE QUALITY STANDARDS:
Before suggesting any code, verify:
- No functions longer than 50 lines
- No files longer than 300 lines
- Cyclomatic complexity under 10 per function
- All public functions have JSDoc documentation
- Error handling follows our Result<T, E> pattern (no bare try/catch)
- No magic numbers - use named constants
- All database queries go through the repository layer

Po scaleniu kodu narzędzia AI mogą monitorować degradację jakości.

Zastosuj pięć odrębnych soczewek analitycznych do każdego znaczącego PR.

Uruchom każdą soczewkę jako osobną konwersację w Agent dla większej głębi:

Lens 1 - Correctness: Review /src/services/payment.ts changes.
Assume every input is adversarial. Find every way this code could
produce incorrect results, crash, or behave unexpectedly.
Lens 2 - Performance: Same file. Assume 10,000 requests per second.
Find bottlenecks, memory leaks, and unnecessary allocations.
Lens 3 - Security: Same file. You are a penetration tester.
Find every way to exploit this code.

Samo pokrycie testami nie wskazuje na jakość. Zamiast tego śledź te metryki:

MetrykaCo ujawniaCel
Wynik mutacyjnyTesty rzeczywiście łapią błędy, nie tylko wykonują kod> 75%
Średni czas wykryciaJak szybko błędy są znajdowane po wprowadzeniu< 1 sprint
Wskaźnik uciekających defektówBłędy, które docierają do produkcji< 2% zmian
Czas reakcji na przeglądJak długo PR czeka na przegląd< 4 godziny
Wskaźnik przeróbekPR wymagające > 2 rund przeglądu< 15%
Niezawodność builduWskaźnik sukcesu pipeline CI> 95%
  1. Stwórz współdzielony pakiet konfiguracji

    Pakiet w twoim monorepo lub osobny pakiet npm zawierający konfiguracje ESLint, TypeScript, Prettier i twoje pliki reguł AI.

  2. Dystrybucja przez zarządzanie pakietami

    Każdy projekt rozszerza współdzieloną konfigurację. Lokalne nadpisania muszą być udokumentowane i zatwierdzone.

  3. Egzekwowanie w CI

    Pipeline sprawdza, czy współdzielone konfiguracje nie zostały nadpisane bez zatwierdzenia.

  4. Reguły AI dziedziczą ze współdzielonej konfiguracji

    Twoje pliki .cursor/rules lub CLAUDE.md odwołują się do współdzielonego dokumentu standardów.

  5. Comiesięczne przeglądy jakości

    Wspomagane AI kontrole kondycji bazy kodu uruchamiane co miesiąc, porównujące zespoły ze współdzielonymi benchmarkami.

“Deweloperzy czują, że bramki jakości ich spowalniają.” Twoje bramki są zbyt restrykcyjne lub wyłapują niewłaściwe rzeczy. Skup bramki jakości na problemach o wysokiej ważności (bezpieczeństwo, poprawność, wydajność). Pozostaw styl i formatowanie automatycznym formatterom, które naprawiają problemy cicho, zamiast blokować.

“Przegląd kodu przez AI generuje zbyt wiele fałszywych alarmów.” Dostosuj swoje prompty do przeglądu. Dodaj “Do not flag style issues” i “Only report issues that could cause bugs, security vulnerabilities, or performance problems in production.” Przejrzyj wnioski AI przez tydzień i dostosuj prompt na podstawie tego, co było faktycznie przydatne.

“Zespoły oszukują metryki.” Jeśli zespoły piszą bezsensowne testy, aby osiągnąć cele pokrycia, przejdź na testy mutacyjne. Nie da się oszukać wyników mutacyjnych bez pisania testów, które faktycznie weryfikują zachowanie.

“Jakość jest niespójna między kodem generowanym przez AI a pisanym przez ludzi.” Stosuj te same bramki jakości do całego kodu niezależnie od pochodzenia. Pipeline CI nie obchodzi, kto (lub co) napisał kod.