Odhad versus realita: kde se ztrácí čas v agile

Z Mazovia


NoSQL zvolte, když potřebujete horizontální škálování na mnoho serverů, když je struktura dat proměnlivá nebo řídká, nebo když zapisujete velké množství událostí a logů. Typickými případy jsou katalogy produktů s různými atributy, uživatelské profily, obsahové systémy, telemetrie a doporučovací modely. Naopak pro finanční transakce, kde je nutná silná konzistence a složité dotazy přes více entit, zůstává relační databáze bezpečnější volbou. Častou chybou je nasadit NoSQL jen proto, že je „moderní", a pak v aplikaci ručně implementovat to, co by relační databáze zvládla sama.
Ruční přepisování kódu je nejpomalejší cesta k refaktoringu. Vestavěné nástroje v IDE umí totéž za zlomek času, ale jen když je člověk ovládá. Nejde o klikání v menu, jde o návyky, které se vyplatí zavést hned při první úpravě. Začni tím, že si v editoru najdeš funkci pro přejmenování symbolu a naučíš se na ni klávesovou zkratku. Ruční hledání a nahrazování řetězců totiž často přepíše i to, co nemá – třeba text v řetězcích nebo komentáře.

U implementace bývá největší chybou odhadovat podle „šťastné cesty". Kód, který funguje na první pokus, je výjimka. Započítejte čas na testy, opravy a integraci s okolím. Pomůže jednoduché pravidlo: odhad pro implementaci násobte dvěma, pokud jde o novou oblast, a jedna a půl, pokud jde o známý kód. Není to matematika, je to kalibrace. Po několika sprintech si veďte tabulku odhad versus skutečnost a upravujte koeficient podle vlastních dat.

Typická chyba je důvěřovat nástroji bez kontroly. Přejmenování může změnit i metody, které mají stejný název, ale patří jiné třídě, pokud je nástroj nedokáže rozlišit. Před potvrzením si projdi náhled změn. U extrakce metody zase dej pozor na proměnné, které se uvnitř bloku mění – nástroj je někdy nechá jako parametry, i když by stačilo je vrátit. Když výsledek nesedí, operaci vrať zpět a zkus ji jinak.

První krok je oddělit pokrytí jako metriku od pokrytí jako důkazu. Udělejte si přehled o tom, které části kódu mají vysoké pokrytí, ale nízkou hustotu tvrzení. Pomůže jednoduchý filtr: pro každý testovací soubor spočítejte počet assertů a porovnejte ho s počtem testovaných cest. Tam, kde je poměr výrazně nízký, vzniká falešný pocit bezpečí. Typická chyba je honba za procenty na konci sprintu – vývojáři dopíší testy, které jen projdou kódem, aby číslo vypadalo lépe. Takové testy se při první skutečné chybě rozbijí nebo ji nezachytí.

Největší přínos ale přijde, když nástroje používáš průběžně, ne až když je kód nepořádek. Malé přejmenování hned po napsání funkce zabere pár sekund. Odložené hromadné přepisování znamená hodiny ruční práce a vysoké riziko chyb. Nauč se pět klávesových zkratek a používej je každý den – to je celý trik.

Přejmenování, extrakce a přesun jako denní chléb Největší návratnost mají tři operace: přejmenování, extrakce metody a přesun kódu. Přejmenování přes nástroj IDE funguje na úrovni symbolů, ne textu. Projde všechny výskyty včetně volání z jiných souborů a zároveň upozorní na kolize. Extrakce metody zase vezme označený blok a vytvoří z něj samostatnou funkci s parametry a návratovou hodnotou. Přesun třídy nebo funkce do jiného souboru se postará o importy. Pokud tyto operace děláš ručně, dřív nebo později zapomeneš na některý import a kód se přestane kompilovat.

Praktické pravidlo: nesledujte jedno číslo za celý projekt. Rozdělte kód na doménovou logiku, infrastrukturu a vrstvu rozhraní. U doménové logiky držte pokrytí vysoké a hlavně s hustými assertions. U infrastruktury a adaptérů stačí testy integrační, které ověří skutečné chování proti reálné závislosti nebo její věrné napodobenině. U tenkých obalů nad frameworkem nemá smysl psát jednotkové testy vůbec – jen opisují cizí kód a při každé aktualizaci se musí přepisovat.

Kdy GraphQL naopak zvolit GraphQL vyniká, když klienti potřebují různé pohledy na data a chtějí se vyhnout mnoha požadavkům. Mobilní aplikace ocení jediný dotaz, který vrátí přesně to, co potřebují. To snižuje objem přenášených dat a zrychluje odezvu. Ale pozor: flexibilita GraphQL může vést k drahým dotazům. Bez omezení hloubky a komplexity se snadno dostanete do problémů s výkonem. V RESTu tomu zabráníte snadněji – každý endpoint dělá jednu věc.

Typická chyba je sloučit obě fáze do jednoho odhadu a pak se divit, že analytik nemá co dělat, zatímco osvětlení v obývákuývojář čeká na zadání. Oddělené odhady odhalí, kde vzniká fronta. Když vidíte, že analýza trvá déle než implementace, není to problém vývojářů. Je to signál, že zadání přicházejí příliš pozdě nebo jsou příliš nejasná. Řešením není tlačit na analytiky, ale upravit tok práce: menší dávky, dřívější zapojení vývojářů do návrhu, jasná definice hotového zadání.
In case you cherished this article in addition to you would want to receive more details concerning Byt V paneláKu kindly stop by our web site.