Přeskočit na obsah

Lekce 06.9: Vynucování standardů kvality kódu (Enforcing Your Coding Standards)

⏱️ 2 min čtení Lekce 06.9

🧠 Mentální model & teoretický rozbor

Nenechávejte kvalitu kódu na dobré vůli člověka ani na pozornosti agenta. Skutečný inženýrský systém staví automatické závory (Guardrails), které fyzicky nedovolí nekvalitnímu kódu proniknout do repozitáře:

VÝVOJÁŘSKÉ ZÁVORY V CI/CD PIPELINE:
Kód od agenta
Pre-commit hook (Husky / lint-staged) ──> Formátování a linter (Lokální stopka)
Git push
GitHub Actions / CI Pipeline ──> Typová kontrola, Unit testy, E2E testy
Pull Request schválen a nasazen do produkce!

Agent se v takovém prostředí rychle naučí dodržovat pravidla, protože systém mu okamžitě vystaví červenou kartu při jakémkoliv pochybení.


🏢 Realistický scénář z praxe

V projektu je nastaven pre-commit hook přes husky a lint-staged: Agent zkusí commitnout kód, kde zapomněl odstranit console.log. Pre-commit hook okamžitě commit zablokuje s chybou no-console. Harness (Antigravity i Claude Code) zachytí chybu z gitu, agent sám pochopí, co se stalo, smaže console.log a teprve poté úspěšně commitne. Člověk nemusel říct jediné slovo!


💻 Konkrétní ukázky kódu & promptů

Konfigurace lint-staged v package.json:

{
"lint-staged": {
"*.{ts,tsx}": [
"biome check --write",
"vitest related --run"
]
}
}

GitHub Actions CI workflow (.github/workflows/ci.yml):

name: CI Pipeline
on: [push, pull_request]
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
- uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'
- run: pnpm install --frozen-lockfile
- run: pnpm biome check src/
- run: pnpm tsc --noEmit
- run: pnpm vitest run --coverage

⚠️ Analýza selhání & Anti-patterns

Chyba: Oslabování CI pravidel, když “agentovi testy neprochází”

Povolit v CI continue-on-error: true nebo vypnout linter, aby pipeline prošla.

  • To je přímá cesta k degradaci celého projektu.
  • Pravidlo: Mantinely v CI jsou svaté. Pokud kód neprojde, problém je v kódu, ne v mantinelech!

🛠️ Inženýrský postup krok za krokem (Playbook)

  1. Nastavte Husky a lint-staged pro lokální kontrolu.
  2. Zaveďte striktní GitHub Actions pipeline.
  3. Nastavte ochranu hlavní větve (Branch Protection Rules) vyžadující zelenou CI před mergem.

🧪 Praktické cvičení (Hands-on Lab)

Úkol:

Zaveďte do projektu jednoduchý pre-commit skript ověřující formátování před commitem.