Pár hete kezdtem el olvasni Robert C. Martin – Clean Code c. könyvét. Az olvasás nagy részén már túljutottam, úgy éreztem, már érdemes is írnom erről a fantasztikus könyvről.
A könyv elolvasása újabb szintre helyezte a programozási készségeimet, nem vitás. Bár elég sok blogot olvasok, de ennek a könyvnek sikerült igazán jól rendszereznie eddigi ismereteimet, és újabb eszközökkel, friss ötletekkel kiegészítenie programozási fegyvertáram. Eddig is azt vallottam, hogy folyamatosan, munkánk mellett – vagyis inkább annak részeként(!) – kell időt szánnunk a kód jobbá tételére. Azonban a könyv megtanított arra, hogy milyen technikákkal, mire fókuszálva érhetjük el a tiszta kódot.
Nem írok arról, pontosan miről szól a könyv, mert a tartalomjegyzéke és rövid leírása megtekinthető a neten is. Inkább idézek az egyik fejezet végéről (Chapter 14, Conclusion):
“Az nem elegendő, ha a kód csupán működőképes. [...] Azon programozók, akik megelégednek a csupán működőképes kóddal, azok egyszerűen nem professzionálisan viselkednek. Talán attól tartanak, hogy nincs idő arra, hogy saját kódjukat átstruktúrálják, ezzel azonban nem értek egyet. Semminek nincs olyan alapos és hosszútávú leépítő hatása egy fejlesztési projektben, mint a rossz kódnak. A rossz ütemezésen lehet változtatni, a rössz követelményeket újra lehet egyeztetni, és egy rossz csapat dinamikáján is lehet javítani. Azonban a rossz kód rothad és erjed, hatalmas súlyként magával húzva a csapatot. [...]
Természetesen egy rossz kód is kitakarítható, azonban ez sokba kerül. Ahogy rothad a kód, az egyes modulok egymásba furakodnak, és rengeteg rejtett és kusza függőséget okoznak egymásban. Ezen függőségek megtalálása és feloldása hosszú és fáradságos munka eredménye. Másrészről egy kód tisztán tartása viszonylag egyszerű feladat. Ha valami nem úgy sikerült reggel, azt délután könnyen feltakaríthatjuk. Ha 5 perccel ezelőtti hibánkat azonnal javítjuk, akkor még sokkal egyszerűbb a dolgunk.
A megoldás tehát a kód folyamatos tisztán tartása, amennyire tisztán és egyszerűen csak lehet. Soha ne engedjük, hogy a rothadás elkezdődjön!”
Megkockáztatnám, hogy ennek a könyvnek a hasznossága simán üti az eddigi refaktorálás és TDD témakörben olvasott könyveket. Alapmű minden fejlesztő számára.
Nem vagyok híve az idegennyelvű szakkifejezések – kivétel nélküli – magyarra fordításának, de ha valakinek nincs kedve angolul olvasni, annak a könyv elolvasható magyarul is a Kiskapu Kiadó jóvoltából.
takacsot
Jun 5th, 2010Én magam is roppan sok jót hallottam felőle, de azért nem egyedülálló ebben a témában. Gondolom már Te is hallottál a Code Craft című könyvről, ami hasonló témaköröket feszeget és hasonlóan kiválló tanácsokat ad. Van is egy kis szösszenet róla:
http://www.qualityontime.eu/review/code-craft-pete-goodliffe
illetve
http://www.qualityontime.eu/review/code-craft-pete-goodliffe-0
Marhefka István
Jun 5th, 2010Köszönöm, hogy felhívtad rá a figyelmemet, nem ismertem! El fogom olvasni a könyvet!
palacsint
Jun 15th, 2010Érdemesebb angolul olvasni…
butcher
Jul 19th, 2010Én ezt olvastam hasonló témában, bár ez főként a már meglévő rossz kód gyógyításáról szól:
http://www.amazon.com/Refactoring-Patterns-Joshua-Kerievsky/dp/0321213351
Marhefka István
Jul 19th, 2010butcher: Tényleg jó ez a könyv is, az eredeti klasszikus Martin Fowleres könyv “folytatása”.
Azért abban nem teljesen értek egyet, hogy meglévő rossz kód gyógyításáról szól A refaktorálás a természetes kódírási folyamatnak (is) a része: megírom, nem tetszik, javítok rajta.