CI/CD i standardi koda · Izrada
Standardi koda koji se provjeravaju prije svakog commita i u CI-ju
Konvencije vašeg tima postaju pre-commit i CI provjere, s posebnim skupom pravila za svaki codebase. Američki marketplace imao ih je u devetnaest repozitorija.
AngažmanPo satu · remote
Radno vrijeme9–18 CET · 4 h preklapanja
StackPre-commit hookovi · CI · ESLint s vlastitim pravilima
Dokaz2 projekta
Usluga u 4 dijela
01 · Za koga je
Tim čije se konvencije poštuju samo dok neko ima vremena za pažljiv code review. Često se taj tim sprema uvesti AI u način na koji piše kod, a tada kod nastaje brže nego što ga iko stigne pažljivo pročitati.
02 · Šta smo napravili
- Pravila na devetnaest repozitorija jednog američkog marketplacea, među kojima su zabrana tipa any, najviše 200 linija po komponenti i tipiziran zahtjev i odgovor za svaki API poziv. Provjeravaju ih i pre-commit hook i CI.Projekat 03 →
- Naš cross-platform dizajn sistem ima oko 2.450 linija provjera zbog kojih build pada. CI pokreće i stvarne buildove za Next, Vite i Metro, jer jedno od pravila zaista provjerava tek next build.Projekat 01 →
- Pregled našeg dizajn sistema našao je 188 problema i sveo ih na tri osnovna uzroka, koji su svi prošli typecheck, ESLint i build. Za dva od ta tri uzroka sada postoje posebne provjere: za labelu bez uloge i za prop koji je deklarisan u ugovoru komponente, a ne može se povezati ni s jednim elementom.Tekst →
03 · Kako radimo
01 · STROGOST PO FAZIPravilo u editoru upozorava, a u hooku i u CI-ju javlja grešku. Tako je prisutno u svakoj fazi, a blokira samo tamo gdje to malo košta.
02 · ŠTA SE GDJE POKREĆEFormatiranje i lint idu u hook, jer su brzi. Tipovi i testovi idu u CI, jer su spori i daju konačan odgovor.
03 · PO CODEBASEUNa marketplaceu su web aplikacija, backend i biblioteka komponenti imali svaki svoj skup pravila.
04 · Stack
Pre-commit hookoviCIESLint s vlastitim pravilimaTypeScriptpnpm workspaces
Dokaz
Gdje smo ovo već radili
Projekat 03 · Platforme~50%Pravila na devetnaest repozitorija jednog američkog marketplacea, među kojima su zabrana tipa any, najviše 200 linija po komponenti i tipiziran zahtjev i odgovor za svaki API poziv. Provjeravaju ih i pre-commit hook i CI.Pročitajte više o projektu →Projekat 01 · Platforme74 / 678Naš cross-platform dizajn sistem ima oko 2.450 linija provjera zbog kojih build pada. CI pokreće i stvarne buildove za Next, Vite i Metro, jer jedno od pravila zaista provjerava tek next build.Pročitajte više o projektu →BlogTri vrste grešaka u dizajn sistemu koje TypeScript i ESLint propustePregled našeg dizajn sistema našao je 188 problema i sveo ih na tri osnovna uzroka, koji su svi prošli typecheck, ESLint i build. Za dva od ta tri uzroka sada postoje posebne provjere: za labelu bez uloge i za prop koji je deklarisan u ugovoru komponente, a ne može se povezati ni s jednim elementom.Pročitajte tekst →
Česta pitanja
Pitanja o ovoj usluzi
Zato što bi zajednički skup za backend i dizajn sistem u jednom bio previše popustljiv da bi išta značio, a u drugom toliko strog da bi ga ljudi zaobilazili. Koja pravila idu u koji codebase, treba odlučiti za svaki posebno.
Hoće, ako je spor. Hook koji traje trideset sekundi počne se zaobilaziti već za sedmicu, pa u hooku ostaju samo brze provjere.
Na marketplaceu ograničenje od 200 linija po komponenti. Natjera vas da komponentu podijelite čim počne bujati, dok je podjela još laka.
Možemo. Pravila dodajemo u hookove i CI koje već koristite, jedan po jedan codebase.
Sljedeći korak
Opišite problem i javit ćemo vam se s tri opcije.
Prvi poziv traje 30 minuta i ni na šta vas ne obavezuje.