Refaktoring zbytečně zpomaluje ruční přepisování, ne nástroje

Aus Rettungsdienst-Wiki
Zur Navigation springen Zur Suche springen

Většina vývojářů při refaktoringu sahá po myši a ručně přepisuje názvy, přesouvá bloky a hledá výskyty očima. Přesně tím ale ztrácí čas, který mohly ušetřit vestavěné nástroje v editoru nebo IDE. Nejde o žádné pluginy ani doplňky — mluvíme o funkcích, které má každé rozumné vývojové prostředí už v sobě. Problém je, že je lidé buď neznají, nebo je používají špatně a nadělají víc škody než užitku.

Nakonec si zvykněte sledovat okno Chyby (Error List) a číst celé znění chyby. Číslo řádku a název souboru vás dovedou přesně na místo. Zkopírovat chybu do vyhledávače je rychlejší než hádat. Až si projdete cyklem úprav, spuštění a opravy, budete mít základ, na kterém se dá stavět dál.

Užitečný návyk je potvrzovat změny po malých logických celcích. Oprava překlepu v šabloně a nová funkce v ověření formuláře patří do dvou oddělených změn. Když se později něco pokazí, vrátíte jednu z nich, aniž byste přišli o druhou. Zpráva ke změně má popsat, co se stalo a proč, ne jen „oprava" nebo „úpravy". Větu pište v rozkazovacím způsobu a držte se jednoho jazyka, ať se v historii dá vyhledávat.

Kam přesně psát vlastní kód Do metody Main vložte další příkazy pod sebe. Například Console.Write pro text bez odřádkování a Console.ReadLine pro načtení vstupu od uživatele. Na konci metody Main přidejte Console.ReadKey, aby okno s výsledkem nezmizelo dřív, než si ho přečtete. Tato drobnost patří k nejčastějším zdrojům zmatku: program funguje, ale výstup se okamžitě zavře a začátečník si myslí, že je něco špatně.

Přesun souboru nebo třídy do jiného balíčku bývá také podceňovaný. Ruční kopírování a mazání rozbije importy a odkazy. Příkaz pro přesun aktualizuje všechny reference najednou. Typická chyba je, že přesunete soubor ručně v souborovém systému mimo IDE a pak se divíte, proč projekt nefunguje. Vždy přesouvejte přes prostředí, které o struktuře projektu ví.

Čistý kód v JavaScriptu neznamená, že je krátký. Znamená, že ho po vás někdo jiný – nebo vy za půl roku – přečte bez bolesti. JavaScript je flexibilní jazyk, a právě proto v něm snadno vzniká nepořádek. Základem je omezit počet cest, kterými se dá stejná věc udělat. Nepoužívejte mix var, let a const podle nálady. Držte se const všude, kde se hodnota nemění, a let jen tam, kde skutečně měnit potřebujete. var dnes nemá v novém kódu co dělat, protože jeho function scope a hoisting působí chyby, které se těžko hledají.

Parametrizované dotazy místo slepování řetězc

Pokrytí má smysl jako trend, ne jako absolutní práh. Sleduj, jestli dlouhodobě roste u rizikových částí, a jestli klesá tam, kde se přestává testovat. Pokud číslo stagnuje, ale přibývají chyby v produkci, je něco špatně v návrhu testů, ne v jejich počtu. V takové chvíli je lepší investovat do testů integračních a do testů na úrovni chování než do dalšího zvyšování procenta. Pokrytí je nástroj, ne cíl.

Základem je pochopit rozdíl mezi prostým hledáním a nahrazováním a skutečným refaktoringem. Hledání a nahrazení pracuje s textem, kdežto refaktoringové příkazy pracují se strukturou kódu. Když přejmenujete proměnnou pomocí běžného nahrazení, přepíšete i řetězce v logách nebo komentáře, kde to jméno znamenalo něco jiného. Naproti tomu příkaz pro přejmenování symbolu upraví jen skutečné výskyty vázané na daný identifikátor. První krok tedy je najít v menu editoru sekci Refactor a naučit se klávesové zkratky pro přejmenování, přesun a extrakci.

Začátečníci v C# často začnou tím, že si stáhnou Visual Studio, vytvoří nový projekt a okamžitě narazí na chybu, které nerozumí. Nejčastější příčinou není složitá logika, ale nepozornost při výběru šablony projektu. V dialogu Nový projekt se nabízí hned několik možností, které obsahují slovo „Console". Šablona Konzolová aplikace (.NET) a Konzolová aplikace (.NET Framework) vypadají podobně, ale vytvářejí projekty s odlišnou strukturou a odlišnými soubory. Pokud zvolíte špatnou, budete zbytečně řešit, proč se kód nedaří přeložit.

Poslední pravidlo: refaktoring dělejte po malých krocích a po každém ověřte, že kód stále funguje. Velké hromadné přejmenování napříč celým projektem vypadá efektně, ale když něco selže, nemáte ponětí, který krok to způsobil. Verzovací systém je váš přítel — commitněte před každou větší změnou. A hlavně: naučte se zkratky. Bez nich budete nástroje používat jen občas a ruční přepisování zůstane vaší hlavní metodou, i když je pomalejší a náchylnější k chybám.

Extrakce a přesun jako denní chléb Nejužitečnější operace bývají extrakce metody nebo funkce a přesun kódu mezi soubory. Označíte blok, který dělá jednu ucelenou věc, a necháte prostředí vytáhnout ho do samostatné metody včetně parametrů a návratové hodnoty. IDE samo odhadne, které proměnné se mají předat a co vrátit. Na co si dát pozor: pokud blok obsahuje skryté závislosti na okolním stavu, návrh parametrů bude nesmyslný a vznikne metoda s deseti argumenty. V takovém případě je lepší blok nejdřív zjednodušit a teprve pak extrahovat.