fredag 24. juli 2009 Bøker Uncle Bob
Robert C. Martins Clean Code: A Handbook of Agile Software Craftsmanship er en viktig og spennende bok. Mange mener mye om hva ren kode er for noe, men det har vært vanskelig å finne konkrete og komplette kilder. Her har Uncle Bob samlet og forklart motivasjonen bak et godt sett med regler for hvordan man skriver kode med høy kvalitet i de små detaljene.
Så hvorfor skal vi skrive ren kode? Er det ikke nok at programvaren gjør det den skal? Jo, kanskje, hvis det er 100% bugfritt, og aldri skal endres på noen som helst måte. Og hvor sansynlig er det? Ufattelig mye energi brukes på å forstå og navigere i dårlig skrevet kode, og utviklingsteam som jobber i slike systemer er langt fra så effektive som de kunne ha vært. Ren kode kan endre dette ganske drastisk.
Boken har tre deler: Første del beskriver prinsipper og praksiser for å skrive kode som kommuniserer godt, og argumenterer for hvorfor en profesjonell utvikler skriver ren kode. Andre del inneholder en rekke studier av eksisterende kode, som Uncle Bob fikser på for å gjøre den bedre. Og siste del er mer eller mindre en liste over "regler" som ren kode ifølge forfatteren skal følge.
Clean Code er en bok som fungerer både for ferske og erfarne utviklere. Folk med flere års erfaring vil tenke at de kjenner alle disse prinsippene fra før, men min erfaring tilsier at de fleset av oss ikke følger så mange av dem likevel. Alle har godt av å minnes på hva ren kode er for noe, og hvor viktig det er – og tradisjonelt har det vært alt for lite fokus på dette i bransjen. Får du hele teamet ditt til å lese boken, og så følge prinsippene i den, vil kvaliteten på det dere produserer garantert øke, noe dere vil nyte godt av i hele levetiden til produktet/produktene.
Uncle Bob advarer at boken er krevende, men jeg synes i grunnen den var ganske lettlest. Den inneholder ganske mye kode, men det leser vi jo hver dag likevel. Han har derimot rett i at det vil kreve noe av deg å lære deg å følge prinsippene i boken – det holder ikke bare å lese den, for så å gjøre som du vanligvis gjør. Du må øve på disse tingene, og praktisere dem hver dag.
Boken vil ikke lære deg alt det du trenger for å lage bra software – langt der i fra – men er en fin liten byggekloss på veien til å bli en Drivende Dyktig Utvikler. Jeg ble litt skuffet over noen av de refaktureringene Bob gjorde i del 2, jeg tror koden kunne ha blitt enda renere. Men jeg anbefaler gjerne denne boken likevel!
PS: Kodeekksemplene i boken er hentet fra Java, men det bør ikke være noe problem for en seriøs utvikler, samme hvilket språk du jobber i til vanlig – og spesielt ikke om du er en C#-utvikler som meg. Prinsippene Uncle Bob presenterer er universelle.
Knagger: Agile, Craftsmanship, Java, Robert C. Martin