HTML

ÉnKép - takacsot

Friss topikok

  • Karbonade: Az első résszel egyáltalán nem értek egyet, Európában az Operának egyelőre jóval nagyobb részesedé... (2009.04.02. 14:07) My browser war
  • takacsot: @Bővíz László: Természetesen lehet. Javasolni tudom a könyvesboltok polcain az önfejlesztés részl... (2009.01.01. 12:30) Az IQ-m
  • natalie: szerintem nagyon jo könyv. ajánlom midenkinek! (2007.09.12. 01:21) Stephen King: A mobil
  • Ismeretlen_28084: zseniális könyv tényleg (2007.04.10. 15:24) Matt Beaumont: E-sztori
  • Ismeretlen_29217: Pontosan az gond, hogy a teszt kódrészletet nem tudják értelmezni. Konkrétan a paraméterátadási m... (2006.10.18. 08:02) Internyúzás

Martin Fowler: Refactoring: Improving the Design of Existing Code

2006.09.09. 22:07 takacsot

Mint már korábban mondtam ez a mostani olvasnivalóm. Kivégeztem. A db refactoringgal ellentétben minden egyes sorát elolvastam. Valószínűleg azért, mert a programozás sokkal inkább a mindennapjaim, mint a db tervezés. Csak jót tudok mondani. Alapvető könyv minden fejlesztőnek. Mindenki kezébe adj azokat az eszközöket, amik lehetővé teszik, hogy a régi hatalmas, szar (összefoglalóan legacy) rendszerekből egy kényelmesen fejleszthető rendszert alakítsunk ki.

Természetesen az alapelvekkel kezd, hogy mi is az a refactoring. Nem mondott újat, de akinek ez a terület nem ismerős mindenképpen el kell olvasni. Különösen azoknak, akik azt hiszik ismerik a refactoringot, de valójában. Miről ismerszik meg az ilyen?

  • Ha szar rendszerrel dolgozik mindig azt mondja, hogy az alapjaitól kell újraírni az egészet. Ez néha lehet, de legtöbbször nem. És amikor lehet, akkor sem érdemes. Erre nagyon jó példa volt a Netscape esete, mikor eldöntötte, hogy alapjaiból építi fel az új böngészőt.
  • Akinek a refactoringról úgy beszél, hogy "csak jobb klikk és kiválasztom azt, hogy refactoring". Az ilyennek eszköz van a kezében, amit nem biztos, hogy tud használni.

Egy rövid példán keresztül azt is bemutatja, hogyan is kell nekikezdeni. Nem szabad elfelejteni, hogy a legfontosabb, hogy előtte és utána is teszteljük a program működését. Ebben is bukik a dolog sokaknál.

Majd töménytelen mennyiségű (főleg) apró refactoring. Rengeteg, sokszor triviálisnak tűnő refactoringot sorol fel. De egy újszülöttnek minden vicc új, de még a legegyszerűbbek is elgondolkodtató tanácsokat tartalmaznak.

Például, ami most eszembe jut a "Replace temp with query", amiben a ideiglenes változók eliminálásáról szól. Teljesen triviális, de egy teljesen logikus és jó ellenőrző lépésre nem gondoltam. Első lépésben állítsuk a finalra azt a temp változót, hogy biztosak legyünk abban, hogy nem kap többször értéket. Így utólag triviális és talán nem is egyértelműen szükséges lépés. De ha belegondolunk sok potenciális vesződségtől kímél, meg, hogy akár egyetlen sor átírása nélkül kiderüljön valami nagyon fontos egy változóról. Aki dolgozott már 1000 soros eljárásokkal az tudja, hogy ez nagyon fontos.

A könyv végén néhány nagyobb kaliberű refactoringot is bemutat. Természetesen azok nem többek, mint rengeteg apró refactoring megfelelő célból a megfelelő sorrendben végrehajtva. Hogyan alakítsuk át procedurális kódunkat objektum orientáltra. Hogyan alakítsuk át az alkalmazásunkat MVC-patternek megfelelően. Összességében az a célja, hogy megértesse, hogy a refactoringot bármilyen kis lépésben lehet végezni, hiszen akár évek is eltelhetnek két azonos céllal végrehajtott egymásra épülő refactoring lépés között.

A végén pár érdekes, de nem igazán fontos, gondolatébresztő fejezet lapul. Nem azok adják a könyv értékét.

A végére csak azt mondhatom, amit korábban is. Minden informatikusnak magáévá kell tenni ezeket az elveket. A design patternek ismeretében refactoring eszközökkel egy bármilyen szar rendszert át tudnunk úgy alakítani, hogy a végén egy rendesen működő valamik kapjunk, amivel öröm dolgozni.

Szólj hozzá!

Címkék: it book ebook programming refactoring

A bejegyzés trackback címe:

https://takacsot.blog.hu/api/trackback/id/tr79775834

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása