Čo je to Refactoring?

Podobné dokumenty
Hromadná korešpondencia v programe Word Lektor: Ing. Jaroslav Mišovych

Moderné vzdelávanie pre vedomostnú spoločnosť/projekt je spolufinancovaný zo zdrojov EÚ. Grafy

Návod na použite plaftormy ELMARK E- Business obsahuje popis hlavných možností a funkcií programu. Príručka je štruktúrovaná podľa poradia možností.

Organizačné štruktúry.

Manuál Generovanie prístupových práv E-Recept

INTERNET BANKING. Platby cez Internet banking VŠETKO, ČO JE MOŽNÉ. with.vub.sk, Bank of

Multihosting Užívateľská príručka

Inventúra účtov- základný popis.

Prevody z pointfree tvaru na pointwise tvar

Návrh, implementácia a prevádzka informačného systému

SYSTEMATICKÉ VZDELÁVANIE PRACOVNÍKOV V ORGANIZÁCII

Pracovné prostredie MS EXCEL 2003.

Co je refaktorování Historie Proč refaktorovat Kdy refaktorovat Jak refaktorovat Code obfuscation Shrnutí. Refaktorování.

ZRÝCHLENÝ PREDAJ (AJ CEZ DOTYKOVÚ OBRAZOVKU)

Informatika a jej jednotlivé oblastí

Užívateľská príručka systému CEHZ. Základné zostavy Farmy podľa druhu činnosti

Textový editor WORD. Práca s obrázkami a automatickými tvarmi vo Worde

Vytvorenie používateľov a nastavenie prístupov

Operačný systém Úvodná prednáška

ANALÝZA PRÍPADNÉHO ROZDIELU A SPÔSOB JEHO ODSTRÁNENIA

Nepremeškajte šancu a doprajte svojmu dieťaťu, aby sa naučilo jazyk, ktorý v živote určite využije!

Verifikácia a falzifikácia

Používateľská príručka k aplikácii na SOČ

Univerzálne dia kové ovládanie TV SAT DVD AUX

Aktuálny stav DRG a ďalšie kroky

Téma : Špecifiká marketingu finančných služieb

Elektronické odosielanie výplatných pások

Spotreba, úspory, investície. Ing. Zuzana Staníková, PhD.

Naformátuj to. Naformátuj to. pre samoukov

Imagine. Popis prostredia:

Inteligenté prístupové systémy

nastavenie a realizácia vzájomných zápočtov v Money S4 / Money S5

PRÍLOHY: Príloha 1 Organizačná štruktúra firmy

Informatika 2. Udržovateľný kód

Program "Inventúra program.xlsm"

Názov projektu: Čítaj viac a dvere k poznaniu sa samy otvoria. Kód projektu: METODICKÝ LIST

Dell S2718H/S2718HX/S2718HN/ S2718NX Dell Display Manager Návod na obsluhu

Vybrané novinky v IS WISP

Pripojenie na internet cez WiFi pre zamestnancov a študentov

Rozšírený zápis ZoznamŠkôl.eu

MATLAB (1) - úvod do programovania vedeckých problémov. LS 2017, 8.predn.

SKLADOVÁ INVENTÚRA 1 VYTVORENIE INVENTÚRY. 1.1 Nastavenie skladovej inventúry

NEVLASTNÁ VODIVOSŤ POLOVODIČOVÉHO MATERIÁLU TYPU P

Pred samotnou prácou s objednávkami odporúčame vykonať súvisiace nastavenia cez menu Firma - Nastavenie

Dealer Extranet 3. Cenové ponuky

Matematika test. 1. Doplň do štvorčeka číslo tak, aby platila rovnosť: (a) 9 + = (b) : 12 = 720. (c) = 151. (d) : 11 = 75 :

Úroveň strojového kódu procesor Intel Pentium. Adresovanie pamäte

VECIT 2006 Tento materiál vznikol v rámci projektu, ktorý je spolufinancovaný Európskou úniou. 1/4

M úlohy (vyriešené) pre rok 2017

Referenčná ponuka na prístup ku káblovodom a infraštruktúre. Príloha 7 Poplatky a ceny

Intrastat SK NASTAVENIE PROGRAMU PRE POTREBY INTRASTAT-SK

Pravdepodobnosť. Rozdelenia pravdepodobnosti

pomôcť Vám pripraviť sa po funkčnej stránke na tehotenstvo (pre oboch partnerov)

Prehľad nového TwinSpace

Lineárne nerovnice, lineárna optimalizácia

VZOR. Informácia o platobnom účte spotrebiteľa 1 )

Cieľ: správne vysvetlenie významu slova migrovanie, priblížiť prečo ľudia migrujú, zapájať do odpovedí účastníkov,

Toaleta so štýlom Kovové zásobníky a dávkovače Katrin elegantný dizajn, inteligentné detaily

Stiga Autoclip 200 Series

Úvodná strana IS ZASIELKY Prvky úvodnej stránky:

OCHRANA INOVÁCIÍ PROSTREDNÍCTVOM OBCHODNÝCH TAJOMSTIEV A PATENTOV: DETERMINANTY PRE FIRMY EURÓPSKEJ ÚNIE ZHRNUTIE

JCDwin - prechod na EURO

MS PowerPoint - Úvod.

M R2454 SK

Hotline - účtovníctvo tel.: 0905/ , denne od 8 00 do HUMANET ÚČTOVNÍCTVO

TomTom Referenčná príručka

P R O L E M FAKTURA Z VYDAJA OBSAH. Vystavenie faktúry z výdaja postup, podmienky... 2

MANUÁL K TVORBE CVIČENÍ NA ÚLOHY S POROZUMENÍM

Užívateľský manuál Technický server SKGA ročná kontrola HCP

Zisti, ktoré farby sa zobrazia na bielom povrchu, ak svetlo prechádza hranolom.

Písanie ZP. Alexandra. O čom to je. Postup. kontrola. Citovanie. Odkazy Abstrakt. textu

Používateľská príručka portálu

ALGORITMY A PROGRAMOVANIE VO VÝVOJOVOM PROSTREDÍ LAZARUS. Vývojové prostredie Lazarus, prvý program

Produktovo-skupinová inzercia so spoločnosťou Google v spolupráci s ASData a BlueWinston.

Vedecký prístup ku koncipovaniu ekonomickej teórie. VET Cvičenie 1.2

Používateľská príručka pre autorov Prihlásenie

Vážení používatelia programu WISP.

MS Dynamics NAV 2017 Čo je nové?

TESTOVANIE SOFTVÉRU MANUÁLNE

Objektovo orientované programovanie v C# ERIK KUČERA METÓDY VÝPOČTOVEJ INTELIGENCIE PREDNÁŠKA 3

tipov pre kvalitnú tlač Na jednoduchých príkladoch Vám ukážeme ako postupovať a na čo si dávať pozor pri príprave podkladov na kvalitnú tlač.

PLASTOVÉ KARTY ZÁKAZNÍKOV

Konfigurácia IP Bell 02C Dverný vrátnik a FIBARO Home Center 2

Total Commander. Základné nastavenia

Beáta Stehlíková Časové rady, FMFI UK, 2013/2014. CvičenievR-kuI.:ARIMAmodely p.1/15

Externé zariadenia Používateľská príručka

STRUČNÝ NÁVOD NA OBSLUHU DATALOGERA KIMO KT110 / 150

Návod na inštaláciu sieťovej tlačiarne KONICA MINOLTA C20P pre Windows XP a Vista

Príklad BH BZ NC KC Zisk 1 Parfum ,70 22,90 8,20 10 Parfumov Nákupná cena (NC) = 147 Katalógová cena (KC) = 229

Finančné riaditeľstvo Slovenskej republiky

AKO PRIPRAVIŤ MONEY S4 / S5 NA NOVÝ ÚČTOVNÝ ROK

Užívateľská príručka k funkcii Zastavenie a pretočenie obrazu

Humanoidné systémy... počítačové videnie... Peter Sinčák & Mária Virčíková

Microsoft Project CVIČENIE 6 1

Program ovocie a zelenina do škôl Školské ovocie

KATEDRA DOPRAVNEJ A MANIPULAČNEJ TECHNIKY TESTOVANIE ŠTATISTICKÝCH HYPOTÉZ

Všeobecne záväzné nariadenie obce Lozorno č. 3/2012. ktorým sa určujú a menia názvy ulíc a iných verejných priestranstiev na území obce Lozorno

R11 extremo. Odolný mobilní telefon pro dvě SIM karty. Návod k funkci SOS locator Návod na použitie SOS locator

Zásady manipulácie, zberu, prepravy a nakladania s VŽP. Vedľajší živočíšny produkt kuchynský odpad materiál kategórie 3

2. Nahratie mapy pre Locus Map - formát sqlite alebo mbtiles do zariadenia (telefón, tablet) s OS Android.

Transkript:

Čo je to Refactoring? Desiaty víkend s Linuxom Marec 2004 Richard Virgo Richter richter@bgs.sk

Agenda Čo to je refaktoring? Kedy a prečo refaktorovať? Aký je vzťah návrhu (dizajnu) a refaktorovania? Koľko navrhovať a koľko nechať na neskôr? Katalóg refaktoringov Refaktoring naživo (snáď to výde :-))

Refaktoring Refaktoring = zmena štruktúry/návrhu programu bez zmeny jeho chovania Ciele refaktoringu: čistejší kód, lepší návrh čitateľnejší kód, ľahšia ďalšia údržba

Refaktoring prvý príkladík (1) Vyňať metódu (Extract method)...výpisy // vypocet sumy vsetkych poloziek int suma = 0; for (Iterator i = l.iterator(); i.hasnext();) { suma += ((Polozka) i.next()).cena(); } System.out.println( Suma: + suma);

Refaktoring prvý príkladík (2) Vyňať metódu (Extract method)...výpisy System.out.println( Suma: + vyratatsumu(l)); private int vyratatsumu(list polozky) { int suma = 0; for (Iterator i=polozky.iterator(); i.hasnext();){ suma += ((Polozka) i.next()).cena(); } return suma; }

Refaktoring nemeniť chovanie! V zásade by človek buď mal pridávať fukncionalitu alebo refaktorovať nie oboje naraz Proces reštrukturalizácie kódu postupuje po malých krôčikoch (po jednotivých refaktoringoch) predíde sa tak zmene chovania, ktorá nie je žiadúca zamedzí sa tak aj implementácii nových chýb :-) Testovať (unit testy,...)

Refaktoring čo to teda je? Technika na vylepšenie už existujúceho kódu bez zmeny jeho chovania Označenie pre jednoduchý krok (transformáciu), akúsi minimálnu jednotku v sérii úprav vedúcich k požadovanému zlepšeniu niektoré refaktoringy používajú iné menšie a jednoduchšie Po každej zmene (kroku refaktorovania) je projekt plne funkčný (teda... tak ako bol pred úpravou :-))

Kedy refaktorovať? Univerzálna rada kedykoľvek :-))) Akonáhle hrozí, že sa ku kódu niekedy vrátite Pred pridaním novej funkcie, pri hľadaní chýb, pri revízii Vyžaduje refaktorovanie čas navyše? áno, ale s veľkou pravdepodobnosťou je to rýchlo návratná investícia, ak sa nepoužíva bezhlavo Refaktorujte, keď cítite potrebu odkaz XP: nerobte, čo nebudete potrebovať

Aké kazy kódu má riešiť refaktoring? Duplicitný kód Dlhá metóda, veľká trieda Dlhý zoznam parametrov Zložité switche (hlavne založené na údajoch z inej triedy) Zbytočná prešpekulovaná všeobecnosť Potreba napísať komentár v kóde (nie k metóde či triede)

Prečo refaktorovať? Hlavnou motiváciou je: lepšia štruktúra (návrh) kódu lepšia čitateľnosť, a teda ľahšia údržba Postupnými krokmi refaktoringu je možné opraviť aj dizajn Refaktoring typicky vedie k čistejšiemu kódu zväčša narastá počet tried a metód zmenšuje sa však veľkosť tried (aj počet metód v triede) vznikajú tak menšie, jednoduchšie, znovupoužiteľnejšie kusy kódu

Rozprávka o úrovniach abstrakcie/zložitosti všeobecné refaktoring konkrétne-detaily

Návrh, implementácia a refaktoring refaktoring Návrh kód implementácia

Refaktoring nie je mágia Refaktoring je len systematický prístup k tomu, čo občas robíme tak či tak reštrukturalizáciu kódu Tomu zodpovedajú názvy refaktoringov vyňať (extract) metódu, triedu včleniť/vložiť (inline) metódu, triedu presunúť, premenovať, zmeniť signatúru,...

Refaktoring katalóg Úpravy metód (nahradiť metódu objektom metódy) Presúvanie prvkov medzi objektami/triedami (presunúť položku/metódu, delegovanie, vyňať triedu,...) Organizácia dát (zapúzdrenia, zmeniť hodnotu na odkaz,...) Zjednodušovanie podmienených výrazov (polymorfizmus) Zjednodušovanie volania metód Generalizácia (presuny vyššie/nižšie, vyňať podtriedu)

Príklad Oprava implementácie príkazu ltell (last tell)

Záver Refaktoring je systematický prístup k reštrukturalizácii kódu nemení sa chovanie programu, len štruktúra kódu Cieľom refaktoringu je: dodatočná oprava návrhu, zvýšenie kvality kódu zlepšenie čitateľnosti a zjednodušenie údržby kódu http://www.refactoring.com Refactoring: Improving the design of existing code od Martina Fowlera