Commit message bez chaosu: jak zpětná dohledatelnost změní váš kód

From IT-Core
Jump to navigation Jump to search

Nejčastější chybou je uvádět jeden konkrétní termín bez jakékoli rezervy. Pokud si nejste jistí, řekněte raději rozsah: „Předpokládám, že to bude hotové mezi středou a pátkem." Tím dáváte najevo, že nad termínem přemýšlíte, a zároveň si necháváte prostor pro nepředvídané komplikace. Zákazník ocení, když mu rovnou vysvětlíte, co může ovlivnit délku práce – například čekání na podklady, složitost zadání nebo nutnost dodatečných konzultací.

Posledním bodem je osvěta a pravidelná údržba. Proškolte svůj tým, aby každý nový kód procházel kontrolou na SQL injection. Při každém nasazení aktualizujte frameworky, knihovny a databázové ovladače, které opravují známé bezpečnostní díry. Pokud dodržíte tyto kroky, výrazně snížíte riziko, že se SQL injection stane noční můrou vaší aplikace. Prevence je vždy levnější a méně stresující než řešení následků.

Verzování se vyplatí i pro jednoho vývojáře. Když budete mít každou změnu podchycenou, můžete bez obav zkoušet nové přístupy. Špatný nápad můžete zahodit jedním příkazem a vrátit se k osvědčenému stavu. Navíc si vytvoříte zvyk, který využijete v každém dalším projektu. Začněte dnes – vytvořte si první commit a uvidíte, jak se vám uleví. Za pár týdnů si nedokážete představit práci bez toho.

Typické chyby, které ztěžují zpětnou dohledatelnost Nejčastějším prohřeškem je vágnost. Zpráva „Změny v souboru" neříká nic o tom, co změna dělá. Stejně zrádné jsou i zprávy sice konkrétní, ale psané v minulém čase, které popisují, co už bylo hotovo, místo toho, co commit přináší. Rozdíl mezi „Opravena chyba v přihlášení" a „Oprav přihlášení při prázdném heslu" je zásadní – druhá varianta jasně říká, kdy a kde problém nastane. Další častou chybou je přidávání nesouvisejících změn do jednoho commitu, což znemožňuje rychlé pochopení logiky a komplikuje reverty.

Důležité je také myslet na budoucnost. Komentáře píšete pro sebe za šest měsíců, ne pro váš aktuální mozek. Proto se vyplatí investovat čas do vět, které vysvětlují rozhodnutí, jež na první pohled nedávají smysl. Pokud jste například změnili algoritmus kvůli výkonu, napište, proč to bylo nutné a jaké měření vás k tomu vedlo. Tím se vyhnete situaci, kdy později někdo (nebo vy sami) změnu vrátí, protože nevidí důvod, proč byla provedena.

Růst codebase s sebou přináší nepříjemný paradox: čím více testů, tím pomalejší a méně spolehlivá je zpětná vazba. Jednotkové testy začnou trvat minuty, integrační testy vyžadují databázi a externí služby. Nejde o to testů ubírat, ale o to je správně nasměrovat. Klíčem není poměr počtu testů, ale jejich ekonomika – každý test musí mít jasný účel a rozumnou cenu údržby.

Při psaní nových testů dodržujte pyramidu: většina testů by měla být malých a rychlých. Pokud zjistíte, že čistý jednotkový test vyžaduje složité nastavování falešných závislostí, je to signál, že kód je příliš provázaný. Refaktorujte – rozdělte třídy, zaveďte rozhraní. Častou chybou je testovat vnitřní implementaci místo chování. Test pak selže při každé změně kódu, i když funkce zůstává stejná. Testujte veřejné rozhraní a výsledky, ne to, jak jsou interně dosaženy.

Stanovit termín dodání je vždy riskantní. Když řeknete „bude to za týden", zákazník si to uloží do hlavy jako pevný slib. Jakmile práce skončí za deset dní, cítí zklamání, i když bylo zpoždění způsobeno objektivními okolnostmi. Klíčem k úspěšné komunikaci odhadů není být vždy přesný, ale nastavit očekávání tak, aby drobné odchylky neznamenaly ztrátu důvěry.

Důvěra se buduje dlouhodobě. Pokud jednou dodáte pozdě, ale s vysvětlením a náhradním řešením, zákazník to pochopí. Pokud se to opakuje, přestane vašim odhadům věřit úplně. Proto si před každým slibem položte otázku: „Co všechno se může pokazit a jak to ovlivní termín?" Nechte si rezervu na technické problémy, nemoc, čekání na podklady. A když práci dokončíte dříve, než jste slíbili, je to vždy příjemné překvapení, které posiluje vaši důvěryhodnost.

JWT je ale jen podepsaný řetězec. Jeho bezpečnost stojí na tom, jak ho vytvoříte a jak s ním zacházíte. Nejdůležitější je podpis. Vždy používejte asymetrický algoritmus, jako je RS256, a soukromý klíč držte výhradně na serveru. Veřejný klíč pak můžete distribuovat klientům, kteří jen ověřují podpis. Vyhněte se symetrickému HS256, pokud nemáte jen jednu službu, protože ten vyžaduje sdílení tajemství, které se snadno dostane tam, kam nemá. A nikdy, ale opravdu nikdy nepodepisujte token algoritmem, který si klient může zvolit sám – to je cesta k obejití celé ochrany.