Standardy
Požadavky, kterými musí projít každá změna a kterým musí dostát každý software, a co se stane, když je něco nesplní.
standard pro celou organizaci
Pravidla jsou jedna sdílená předvolba, @trebired/configs, a @trebired/code-discipline ji vynucuje v každé kódové základně Trebired, ať je napsaná v čemkoli: TypeScript, JavaScript, Rust, Go, C++, C#, Python, QML, shell, SCSS i CSS. Repozitář přidává jen to, co je jeho vlastní.
Porušte pravidlo a aplikace neběží
Každá aplikace běží za bránou code-discipline. Než se cokoli spustí, zkontroluje celý repozitář, takže stačí jediné porušené pravidlo a aplikace neběží.
0
Žádné porušení
Aplikace se spustí.
1
Jedno porušení
Nespustí se nic, ani na vašem vlastním stroji, dokud se to neopraví.
Každý soubor má jméno, které nikdo nevybral
@trebired/code-discipline dá každému zdrojovému souboru náhodný alias a celou mapu drží v synchronizaci. Import, který šplhá ze složky přes ../, se přepíše na ten alias, takže kód ukazuje na soubor, ne na cestu k němu. Alias je náhodný schválně: neříká nic o tom, kde soubor leží.
Místo
../
Každý import zní
Jedna mapa, v repozitáři
Každý alias leží v .trebired/code-discipline/imports vedle kódu. Pohled kompilátoru se z ní generuje a do repozitáře nepatří.
./ zůstává, jak je
Import, který začíná ./, zůstane, jak je. Přepíše se jen ten, který šplhá ven přes ../.
Mrtvé importy pryč
Importovaný název, který v souboru nic nepoužívá, se při opravě repozitáře odstraní.
Čísla v měřítku
Limity, které nastavuje předvolba a tento standard, každý nakreslený ve skutečné velikosti.
350
řádků v souboru nanejvýš. Delší soubor se rozdělí, než se projekt znovu spustí.
50
řádků ve funkci nanejvýš. Delší funkce dělá dvě věci a stanou se z ní dvě funkce.
500 MB
paměti na aplikaci nanejvýš, cílem je 200 MB. Nad stropem se nic nevydá a opravuje se příčina, nikdy strop.
150
znaků na řádku. Formátovač zalomí, co jde zalomit bezpečně, a zbytek se hlásí, dokud ho někdo nepřepíše.
120
znaků je hranice, od které začíná pravidlo DRY. Porovná každou funkci ve zdrojovém stromu bez názvů, mezer a komentářů, takže dvě funkce, které dělají totéž, jsou jedna skupina duplicit i po přejmenování a jedna z nich musí pryč.
72
znaků v předmětu commitu, v rozkazovacím způsobu, o chování a nikdy o souborech, které se pohnuly.