Frenzy Blogja
Frenzy webnaplója: mindennapok Finnországban meg sok más dolog

Code Complete   (CubeHead)   
Ha már az előbb sikerült egy programról írnom, most írok egy könyvről. A könyv címe Code Complete. Azon belül is a második kiadás (Second Edition), amit én olvasgatok (kiadói oldal, vagy ha vásárolni támad kedved, a könyv oldala amazon.com-on).

A könyv programozásról szól, egész konkrétan magáról a program kód írásáról. Bármilyen nyelvvel használható, legyen szó akár C, C++, C#, Java, Visual Basic vagy extrémebbről, mint amilyen az Ada például. Szintén lényegtelen a környezet, lehet szó akár Windowsról, akár Linuxról. Szóval mindenki elolvashatja, aki valamit is programozik.

Első ránézésre feleslegesnek tűnhet a könyv. A tartalomjegyzéket böngészve ilyenekről olvashatunk, mint például változók elnevezése, önkommentező kód, utasítások, elágazások, stb. Csupa olyan dolog, aminek ismerete triviális lehet, ha valaki már tud programozni, netalántán már egy ideje kódol is. És gyakorlott programozók biztosan sok ismerős dolgot találnak benne, olyat is, amire esetleg önhibájából jött rá az ember.

De ezeken felül rengeteg újdonságot, tippet, módszert lehet megtudni, hogyan is kellene igazából kódolni? Miért kellene bizonyos dolgokat így vagy úgy csinálni, és milyen rossz módszerek vannak dolgok végzésére. Sok olyan triviális dolog is van benne persze, ami gyakorlott programozónak tényleg az lehet (vagy éppen rádöbbenhet, hogy erre nem is gondolt eddig). De ugyanakkor sok olyan leírás is található benne, amivel valakiből a korábbiaknál is jobb programozó lehet (szintlépés :-D)

Én még nem rágtam át magam mindenen, de már jó néhány dolgot kipróbáltam a könyv dolgaiból/tanácsaiból a munkám során is. És a kód minőségét javító tanácsai valóban nagyon hasznosak. Sok olyan dolog van, amit ezért vagy azért eddig nem próbáltam ki, nem úgy csináltam, és nem is nagyon akartam rávenni magam. És most mégis kiderül, mennyire jó is. Mennyivel könnyebbé teszi a kód írását/olvasását vagy éppen karbantartását.

Ha valaki a fentebbi sorok elolvasása után azt gondolja, rajta egy ilyesféle könyv nem segít, nincs benne semmi újdonság, biztos vagyok benne, hogy téved. Olvasás közben gyakran elgondolkoztam már azon, hogy minden programozónak kötelezővé kellene tenni az elolvasását, és akkor sok munka gyorsabban és jobb minőségben készülhetne el, nem is beszélve a későbbi karbantartásról.

Persze nem kell univerzális csodára gondolni a könyv kapcsán. Sok minden más is kell ahhoz, hogy valaki magát jónak vallhassa (legalábbis szerintem). De ez az olvasmány nagyon is fontos lépcsőfoknak számít a jobbá válás utján, legyen szó akár kezdőről, akár haladóról.

Úgyhogy ha valaki komolyan magáénak vallja a programozás hivatást (és most súlyosan gyakorlati oldalára gondolok a dolognak, semmi egyetemi magas szintű hókusz pókusz :-P ), akkor ez a könyv akár kötelző olvasmány is lehet számára. Azon felül olvasni is élvezetes :-)

 

Hozzászólások

(select 198766*667891 from DUAL) Re: Code Complete



(select 198766*667891) Re: Code Complete



@@kxMo2 Re: Code Complete



1����%2527%2522\'\" Re: Code Complete



1'" Re: Code Complete



1C3K2YvNE' OR 706=(SELECT 706 FROM PG_SLEEP(15))-- Re: Code Complete



1-1)) OR 937=(SELECT 937 FROM PG_SLEEP(15))-- Re: Code Complete



1-1) OR 59=(SELECT 59 FROM PG_SLEEP(15))-- Re: Code Complete



1-1 OR 694=(SELECT 694 FROM PG_SLEEP(15))-- Re: Code Complete



1W2zYzn5Q')); waitfor delay '0:0:15' -- Re: Code Complete



1biXNFu3Y'); waitfor delay '0:0:15' -- Re: Code Complete



1Vo2bLjLe'; waitfor delay '0:0:15' -- Re: Code Complete



1-1 waitfor delay '0:0:15' -- Re: Code Complete



1-1)); waitfor delay '0:0:15' -- Re: Code Complete



1-1); waitfor delay '0:0:15' -- Re: Code Complete



1-1; waitfor delay '0:0:15' -- Re: Code Complete



-1" OR 5*5=26 or "LsOrISoh"=" Re: Code Complete



-1" OR 5*5=25 or "LsOrISoh"=" Re: Code Complete



-1' OR 5*5=26 or 'ZWaiD8uW'=' Re: Code Complete



-1' OR 5*5=25 or 'ZWaiD8uW'=' Re: Code Complete



-1" OR 5*5=26 -- Re: Code Complete



-1" OR 5*5=25 -- Re: Code Complete



-1' OR 5*5=26 -- Re: Code Complete



-1' OR 5*5=25 -- Re: Code Complete



-1 OR 5*5=26 Re: Code Complete



-1 OR 5*5=25 Re: Code Complete



-1 OR 5*5=26 -- Re: Code Complete



-1 OR 5*5=25 -- Re: Code Complete



1q6nKp7DQ Re: Code Complete



(select 198766*667891 from DUAL) Re: Code Complete


(select 198766*667891) Re: Code Complete


@@HnTuu Re: Code Complete


1����%2527%2522\'\" Re: Code Complete


1'" Re: Code Complete


1NUkDYKKZ' OR 473=(SELECT 473 FROM PG_SLEEP(15))-- Re: Code Complete


1-1)) OR 145=(SELECT 145 FROM PG_SLEEP(15))-- Re: Code Complete


1-1) OR 155=(SELECT 155 FROM PG_SLEEP(15))-- Re: Code Complete


1-1 OR 692=(SELECT 692 FROM PG_SLEEP(15))-- Re: Code Complete


1uTtZ6Zsz')); waitfor delay '0:0:15' -- Re: Code Complete


18voVZqi7'); waitfor delay '0:0:15' -- Re: Code Complete


1JQ5nMiHd'; waitfor delay '0:0:15' -- Re: Code Complete


1-1 waitfor delay '0:0:15' -- Re: Code Complete


1-1)); waitfor delay '0:0:15' -- Re: Code Complete


1-1); waitfor delay '0:0:15' -- Re: Code Complete


1-1; waitfor delay '0:0:15' -- Re: Code Complete


-1" OR 5*5=26 or "P8qrN2rP"=" Re: Code Complete


-1" OR 5*5=25 or "P8qrN2rP"=" Re: Code Complete


-1' OR 5*5=26 or 'WdXt4FYs'=' Re: Code Complete


-1' OR 5*5=25 or 'WdXt4FYs'=' Re: Code Complete


-1" OR 5*5=26 -- Re: Code Complete


-1" OR 5*5=25 -- Re: Code Complete


-1' OR 5*5=26 -- Re: Code Complete


-1' OR 5*5=25 -- Re: Code Complete


-1 OR 5*5=26 Re: Code Complete


-1 OR 5*5=25 Re: Code Complete


-1 OR 5*5=26 -- Re: Code Complete


-1 OR 5*5=25 -- Re: Code Complete


1Utw7btvp Re: Code Complete


(select 198766*667891 from DUAL) Re: Code Complete



(select 198766*667891 from DUAL) Re: Code Complete



(select 198766*667891) Re: Code Complete



@@qI53n Re: Code Complete



1����%2527%2522\'\" Re: Code Complete



1'" Re: Code Complete



13wVlgTCn' OR 518=(SELECT 518 FROM PG_SLEEP(15))-- Re: Code Complete



1-1)) OR 744=(SELECT 744 FROM PG_SLEEP(15))-- Re: Code Complete



1-1) OR 811=(SELECT 811 FROM PG_SLEEP(15))-- Re: Code Complete



1-1 OR 508=(SELECT 508 FROM PG_SLEEP(15))-- Re: Code Complete



1mj1xWT4V')); waitfor delay '0:0:15' -- Re: Code Complete



1xAHHLW99'); waitfor delay '0:0:15' -- Re: Code Complete



11agssvXG'; waitfor delay '0:0:15' -- Re: Code Complete



1-1 waitfor delay '0:0:15' -- Re: Code Complete



1-1)); waitfor delay '0:0:15' -- Re: Code Complete



1-1); waitfor delay '0:0:15' -- Re: Code Complete



1-1; waitfor delay '0:0:15' -- Re: Code Complete



-1" OR 5*5=26 or "S1ZmmZqX"=" Re: Code Complete



-1" OR 5*5=25 or "S1ZmmZqX"=" Re: Code Complete



-1' OR 5*5=26 or 'lhc8fneO'=' Re: Code Complete



-1' OR 5*5=25 or 'lhc8fneO'=' Re: Code Complete



-1" OR 5*5=26 -- Re: Code Complete



-1" OR 5*5=25 -- Re: Code Complete



-1' OR 5*5=26 -- Re: Code Complete



-1' OR 5*5=25 -- Re: Code Complete



-1 OR 5*5=26 Re: Code Complete



-1 OR 5*5=25 Re: Code Complete



-1 OR 5*5=26 -- Re: Code Complete



-1 OR 5*5=25 -- Re: Code Complete



1W0mBDcUM Re: Code Complete



(select 198766*667891 from DUAL) Re: Code Complete


(select 198766*667891) Re: Code Complete


@@HFtmb Re: Code Complete


1����%2527%2522\'\" Re: Code Complete


1'" Re: Code Complete


1UZWoHFEB') OR 76=(SELECT 76 FROM PG_SLEEP(15))-- Re: Code Complete


18EgYkLIU' OR 647=(SELECT 647 FROM PG_SLEEP(15))-- Re: Code Complete


1-1)) OR 797=(SELECT 797 FROM PG_SLEEP(15))-- Re: Code Complete


1-1) OR 325=(SELECT 325 FROM PG_SLEEP(15))-- Re: Code Complete


1-1 OR 743=(SELECT 743 FROM PG_SLEEP(15))-- Re: Code Complete


1JKro2q2O')); waitfor delay '0:0:15' -- Re: Code Complete


14WWAQpQD'); waitfor delay '0:0:15' -- Re: Code Complete


1BWADlnku'; waitfor delay '0:0:15' -- Re: Code Complete


1-1 waitfor delay '0:0:15' -- Re: Code Complete


1-1)); waitfor delay '0:0:15' -- Re: Code Complete


1-1); waitfor delay '0:0:15' -- Re: Code Complete


1-1; waitfor delay '0:0:15' -- Re: Code Complete


-1" OR 5*5=26 or "MzWqW6Up"=" Re: Code Complete


-1" OR 5*5=25 or "MzWqW6Up"=" Re: Code Complete


-1' OR 5*5=26 or 'ILYam2WA'=' Re: Code Complete


-1' OR 5*5=25 or 'ILYam2WA'=' Re: Code Complete


-1" OR 5*5=26 -- Re: Code Complete


-1" OR 5*5=25 -- Re: Code Complete


-1' OR 5*5=26 -- Re: Code Complete


-1' OR 5*5=25 -- Re: Code Complete


-1 OR 5*5=26 Re: Code Complete


-1 OR 5*5=25 Re: Code Complete


-1 OR 5*5=26 -- Re: Code Complete


-1 OR 5*5=25 -- Re: Code Complete


1t1qnHbv2 Re: Code Complete