Ren kode

cleancode

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: , , ,

Kategorier: Bøker, OO-design/clean code.
RSS feed for kommentarene. Tilbaketråkk.

3 kommentarer til “Ren kode”

  1. Jon Arild Tørresdal Says:

    Har også lest denne og er enig med du at den var lettlest. Var mye nikking (som i enig i det meste) når jeg leste boken. Vurderer å kjøpe inn en kopi til alle utviklerene våre! Anbefales.

  2. Positiv første dag på jobb Says:

    […] Utviklerne på teamet var med og hentet inspirasjon på NDC i sommer, leser nå Clean Code, og har til og med så smått startet med å skrive enhetstester. Jeg synes dette lover veldig bra! […]

  3. Silverlight og clean code på NNUG Bergen 2. september Says:

    […] Gjør klar for litt faglig stimuli - agendaen for neste NNUG-møte i Bergen er nemlig spikret og klar: Det blir en nybegynner-sesjon i Silverlight med Øyvind Øyen fra Avenir, etterfulgt av et foredrag med Jon Arild Tørresdal, som også har blitt bitt av Clean Code-basillen. Jeg gleder meg til å komme igang igjen, og hvis NNUG-høsten blir bare halvparten så bra som våren var, så blir dette helt kanon. […]

Skriv en kommentar

Torbjørn Marø

Torbjørn er systemutvikler og et aktivt medlem av .NET-miljøet i Bergen. Dette er hans blog.

Mulig relaterte linker

Siste kommentarer


Torbjørn: Fikk lyst til å dele den vakre konklusjonen fra en blogpost...

Torbjørn: Bjørn: Clojure er Lisp! Scheme er en annen li...

Bjørn Hamre: Du sier "Om man søker å bli en dyktig utvikler må man læ...

Kenneth: Bloggen din er flott lesning, og en god inspirasjonskilde. S...

Jonas Follesø: Mine to absolutt favorittfag fra NTNU var mikrokontroller pr...

Torbjørn: man{ kan(){ få(){ samme(); } ...

Thomas: (jeg (blir (svimmel (av (al...