Ako staviame
Rýchlosť je tu dôsledkom kontrolných bodov, nie cestou okolo nich.
Rozumná námietka voči malému tímu, ktorý dodá štyri produkty, znie, že sa niečo muselo obísť. Táto stránka je odpoveďou: čo stroj robí, čo mu nie je dovolené, a čím musí zmena prejsť, kým sa dostane do produkcie.
Všetko nižšie beží na našej vlastnej práci. Nie je to produkt, ktorý predávame, ani ukážka.
Platforma
Súkromný marketplace orchestrátorov, subagentov, zručností a hookov.
Stavebný motor je verzionovaný interný plugin marketplace, nainštalovaný v každom repozitári, v ktorom pracujeme. Šesť pluginov pokrýva vývoj, prevádzku, dokumentáciu, obchod a nástroje, ktoré stavajú ďalšie nástroje. Samotný vývojový plugin nesie 24 subagentov a 52 zručností.
Počty zodpovedajú nainštalovanému marketplace a menia sa, ako platforma rastie.
Tri vrstvy, zámerne
Úlohové orchestrátory
Jeden vstupný bod na každý druh práce: implementovať zmenu, diagnostikovať chybu, spustiť revíziu, aktualizovať závislosti. Orchestrátor prácu najprv ohodnotí a nasadí len to, čo jej rozsah odôvodňuje.
Zručnosti
Stredná vrstva rutín, ktoré orchestrátory opakovane volajú: rozhodnúť, ktoré verifikátory zmena potrebuje, zvoliť úroveň testovania, rozdeliť preklad medzi jazyky. Napísané raz, volané odvšadiaľ.
Listové agenty
Úzki pracovníci s úzkymi nástrojmi. Inžinier, ktorý píše jednu vrstvu. Verifikátor, ktorý hlási len prešlo alebo neprešlo. Audítor, ktorý číta a nikdy neupravuje. List, ktorý vie len čítať, nemôže nič pokaziť.
Automatizované a schvaľované človekom
Hranica medzi tým, čo beží bez dozoru, a tým, čo počká na človeka.
Toto delenie nie je vecou vkusu. Čo sa dá znova spustiť a mechanicky overiť, je automatizované. Čo pri zlyhaní stojí veľa, je nezvratné alebo je to otázka úsudku, sa zastaví a počká.
Ako jedna zmena prejde platformou
Prieskum
- codebase-researcherzmapuje vrstvy pred písanímhotovo
Písanie, paralelne a v sandboxe
- backend-engineerslužba a endpointhotovo
- frontend-engineerstránka a komponenthotovo
- prisma-migratorschéma a k nej migráciahotovo
Overenie
- backend-verifierčistý štart, žiadne chýbajúce provideryPASS
- frontend-verifiertypová kontrola, lint, buildPASS
- e2e-testerdotknuté toky v reálnom prehliadačiPASS
Merge
- mergečaká na človekadrží
Názvy agentov sú tie z platformy, na ktorej vznikol aj tento web.
Beží bez dozoru
- Nájsť kód: paralelní čitatelia zmapujú relevantné vrstvy skôr, než sa čokoľvek napíše.
- Napísať zmenu, jeden špecialista na vrstvu, paralelne tam, kde sa vrstvy nekrížia.
- Typová kontrola, lint a build; naštartovanie backendu a sledovanie chýb pri štarte.
- Spustenie testov a prevedenie bežiacej aplikácie tokmi, ktorých sa zmena dotkla.
- Audit prístupnosti, responzivity a výkonu stránky voči meraným limitom.
Zastaví sa na človeka
- Každý merge. Žiadny agent sám nepushuje do zdieľanej vetvy.
- Zmeny schémy a dátové migrácie, ktoré sa recenzujú pred vygenerovaním, nie po ňom.
- Všetko, čo sa dotýka produkcie: nasadenia, produkčné dáta, force push.
- Rozsah. Keď sa úloha ukáže väčšia alebo rizikovejšia, než bola odhadnutá, pipeline sa zastaví a spýta.
- Konečné slovo pri každom náleze revízie vrátane toho, či sa označené riziko akceptuje.
Latka kvality
Čím musí zmena prejsť.
Overovanie má tvrdé dno
Zmena kódu sa nikdy nehlási ako hotová bez build a lint kontrol pre vrstvy, ktorých sa dotkla. Backendové zmeny musia čisto naštartovať. Toto dno je zapísané v doktríne orchestrácie, takže si ho jednotlivý beh nemôže odpustiť.
Kontroly sa odvodzujú z dôkazu, nie zo zvyku
Ktoré verifikátory bežia, sa odvodí od skutočného zoznamu zmenených súborov a ťažšiu úroveň spúšťajú cesty citlivé na build, nie odhad. Práve to drží dôkladnosť dosť lacnú na to, aby bola nespochybniteľná.
Nálezy musia prežiť skeptika
Každý nález revízie dostane čerstvý agent, ktorého jedinou úlohou je dokázať, že nález je nesprávny. Čo sa vyvrátiť nedá, prežije, zvyšok padne skôr, než si to niekto prečíta. To je rozdiel medzi revíziou a hlučným skenom.
Zlyhania sa najprv klasifikujú, až potom opravujú
Neúspešná kontrola sa najprv zaradí ako chyba v kóde alebo problém prostredia. Problémy prostredia nikdy nevstupujú do opravnej slučky, nahlásia sa aj s postupom nápravy a beh sa zastaví. Počet opravných pokusov je obmedzený a opakovaná príčina sa eskaluje, nie opakuje.
Testy sa píšu tak, aby zostali
Regresné testy vznikajú ako commitnuté špecifikácie v testovacom runneri projektu, nie ako jednorazové kontroly v rámci relácie. Čo dokázalo opravu, zostáva v repozitári a dokazuje ju ďalej.
Nič sa nezužuje potichu
Keď je pokrytie obmedzené vzorkovaním, stropom alebo vynechanou dimenziou, nahlási sa to. Čiastočný výsledok sa nikdy nečíta ako úplný.
Prečo sa termíny skracujú
Štandardy sa neposunuli. Posunula sa cena ich splnenia.
Každá z týchto kontrol existovala aj v klasickom tíme. Zmenilo sa to, že ich spustenie prestalo byť otázkou kalendára. Revízie v piatich dimenziách bežia naraz namiesto čakania na voľno recenzenta. Testovací prechod cez tucet stránok stojí jedno nasadenie, nie popoludnie. Práca, ktorá sa kedysi dávkovala, lebo bola drahá, dnes beží pri každej zmene, lebo drahá nie je.
V tom je celý trik a preto rýchlosť nejde z rozpočtu na kvalitu. Keď je overovanie lacné, rozumné množstvo overovania rastie, nie klesá.
Pozrieť ten istý postup na reálnej stavbeDve metódy, dve otázky
Táto stránka je náš dodávkový postup. Celofiremný model je publikovaný samostatne.
To, čo ste práve čítali, je spôsob, akým staviame vlastné produkty: platforma, deliaca čiara medzi tým, čo beží bez dozoru, a tým, čo čaká na človeka, a latka, cez ktorú musí prejsť každá zmena. Rozbehnúť takto celú organizáciu, rolu po role, je iný problém s inou odpoveďou. Ten publikuje augmented.club v plnom rozsahu a je to dokument, ktorý si prečítajte, ak je otázkou, ako by to vyzeralo naprieč vašou firmou, a nie ako staviame my.
Prečítať publikovanú metóduTá istá metóda, vyučovaná.
Inžinierske organizácie, ktoré chcú pracovať takto, sa to učia cez augmented.club, našu vzdelávaciu značku.
Pozrieť programy