5 triků v IDE, které zrychlí refaktoring kódu

Z Mazovia


Začněte tím, že zjistíte, co konkrétně potřebují vědět. Nečtěte celé znění, vyberte tři až pět bodů, které se týkají jejich práce. Typicky jde o rozsah použití, možnost sdílet obsah s dalšími, dobu platnosti a důsledky porušení. Ostatní pasáže zmiňte jen větou, že existují a jsou dostupné v příloze. Když člověk dostane pět jasných informací, zapamatuje si je. Když jich dostane padesát, nezapamatuje si nic.

Kde se chování rozchází a co tiše rozbíjí data Nejčastější chybou je předpoklad, že dotazy budou fungovat stejně. MySQL je tolerantnější k neplatným datům a k porovnávání řetězců bez rozlišení velikosti písmen. PostgreSQL je striktní: pokud do sloupce typu datum pošlete prázdný řetězec, import skončí chybou. Prázdné hodnoty proto nahraďte skutečnou hodnotou NULL. Pozor také na automatické přetypování v podmínkách, kde se porovnává číslo s textem. V MySQL to často projde, v PostgreSQL to skončí chybou nebo neočekávaným výsledkem.

Přechod z MySQL na PostgreSQL není jen výměna ovladače v aplikaci. Oba systémy mají odlišnou filozofii ukládání dat, transakcí a typů, takže většina problémů vzniká až při přenosu reálných dat. Prvním krokem je zjistit, jaké konstrukce aktuální databáze používá: uložené procedury, triggery, vlastní funkce, fulltext a práce s časovými zónami dělají největší potíže. Udělejte si seznam objektů, které se přenesou beze změny, a které bude nutné přepsat ručně.

Základem je přejmenování identifikátorů. Nikdy neměňte název proměnné, metody nebo třídy ručně přes hledání a nahrazení. Použijte funkci přejmenování (obvykle Shift+F6 nebo F2). IDE projde všechny reference včetně těch v jiných souborech a odliší stejně pojmenované symboly v jiných kontextech. Ruční nahrazení je nejčastější chyba, která tiše rozbije kód na místech, která jste neotevřeli.

Samotný přenos dat se obvykle řeší dvěma způsoby. Buď necháte nástroj pro migraci schématu vygenerovat cílové tabulky a pak data přenesete dávkově, nebo si napíšete vlastní export do CSV a import přes příkaz pro hromadné načtení. Druhý přístup je pracnější, ale dává kontrolu nad pořadím tabulek kvůli cizím klíčům. Vždy migrujte nejdřív bez cizích klíčů, data načtěte a teprve pak klíče a indexy doplňte. U velkých tabulek rozdělte import na části, jinak narazíte na limity paměti a dlouhé transakce.

Naučte se klávesové zkratky pro extrakci a přesun Extrakce proměnné, metody nebo konstanty patří k nejpoužívanějším operacím. Místo ručního vyjmutí bloku kódu a jeho vložení jinam použijte zkratku pro extrakci (často Ctrl+Alt+M nebo Ctrl+Alt+V). IDE samo odvodí návratový typ, parametry i viditelnost. U metod dávejte pozor na pořadí parametrů – někdy je potřeba je po extrakci ručně přeházet, protože IDE zachová pořadí výskytu, ne logickou posloupnost.

Analýza kódu je další zrychlení. Zapněte si zvýrazňování nepoužitých proměnných, duplicitních bloků a příliš dlouhých metod. Tyto kontroly odhalí kandidáty na refaktoring dřív, If you have any kind of concerns relating to where and exactly how to use kompletní návod, you could contact us at our web site. než začnete psát. Pozor na falešná pozitivní hlášení u kódu, který je záměrně dynamický nebo generovaný – slepé mazání podle varování může rozbít funkčnost.

Po přenosu je nutné ověřit nejen počet řádků, ale i obsah. Porovnejte kontrolní součty u číselných sloupců, u textových zkontrolujte diakritiku a u časových údajů převod zón. Aplikaci spouštějte nejdřív proti kopii cílové databáze a sledujte pomalé dotazy. Indexy, které v MySQL stačily, nemusí v PostgreSQL vyhovovat jinému plánovači. Naplánujte proto krátké období, kdy poběží oba systémy souběžně, a přepněte ostrý provoz až ve chvíli, kdy jsou výsledky srovnatelné.

Přesun souborů a tříd mezi balíčky nebo moduly řešte tažením v projektovém stromu, ne kopírováním v souborovém systému. IDE při přesunu aktualizuje importy a odkazy. Pokud soubory přesunete mimo IDE, rozbijete build a strávíte hodiny hledáním chybějících cest. Stejně tak nepoužívejte hromadné nahrazení textu pro změnu názvů – to přepíše i to, byt v paneláku co nemá.

Základem je správné používání let a const. const neznamená neměnnou hodnotu, ale neměnnou vazbu — objekt přiřazený do const můžeš dál měnit, jen ho nesmíš přeřadit. Typická chyba je snaha použít const na čítač v cyklu, což skončí chybou. Naopak let v cyklu for vytváří novou vazbu v každé iteraci, takže asynchronní kód uvnitř smyčky funguje podle očekávání. Právě tady dřív vznikal klasický problém se var, kdy všechny callbacks viděly poslední hodnotu.

Nakonec si nastavte formátování a šablony. Automatické formátování při uložení sjednotí styl a odstraní zbytečné mezery a zlomy. Šablony pro opakující se vzory (gettery, testovací kostry, obsluhu výjimek) vám ušetří psaní. Nezavádějte ale příliš mnoho vlastních pravidel najednou – vznikne nečitelný kód, kterému nikdo kromě vás nerozumí. Refaktoring má zjednodušovat, ne vytvářet novou vrstvu složitosti.