fredag 17 april 2009

Min föreläsning

I torsdags höll jag en föreläsning för mina kollegor på jobbet om Clean code, eller nåja, min uppfattning av det viktigast runt vad som gör kod enkel att underhålla.

Först pratade jag lite teori. Kanske inte så mycket kontrekta råd men ändå lyfta ett antal begrepp så att de finns på kartan.
  • Law of demeter
  • Open closed principle
  • Liskows substition principle
  • Single responsiblity principle
  • Don't ask, tell
  • Duplicering
Inga av begreppen är revolutionerande men att bygga ett gemensamt språk om koden vi skriver känns angeläget så att alla kan referera till samma utttryck och alla andra förstår vad uttrycket betyder. Några av uttrycken är motsägande, tex Law of Demeter och Single Responsibiltiy principle där LoD lätt resulterar i GOD-objects medans SRP lätt skapar långa kedjor av objekt som man måste navigera.

Den andra delen av föreläsningen tog upp något mer konkreta tips på hur man kan få bättre och renare kod.

  • Beskrivande namn
  • Förklarande variabler
  • Tvingande anropsordning (beroende på ordning)
  • Abstract factory
  • Template method
  • Dependency injection
  • Tester
  • Refaktorering
Jag kände att tiden inte riktigt räckte till för att kunna förklara tex Abstract Factory tillräkligt väl men förhoppningvis kommer de som lyssnar ihåg uttrycket och slår upp det.

Till sist pratade jag lite om "the boyscout rule" om att alltid försöka att lämna saker i bättre skick än man fann dem. Vi pratade även lite om de små klockor man bör försöka att träna upp till att ringa i bakhuvudet när man tex ser en metod som är mer än 10 rader lång. Inte för att man nödvändigtvis ska bryta ut en mindre metod utan för att man ska se om det faktiskt finns en metod där.

tisdag 14 april 2009

Team anti-patterns

Läste lite på Ola Ellnestams blog och såg att han skrivit ner de patterns som han hade med på sin föreläsning på SDC2009 som jag skrivit om tidigare. Ni hittar dokumentet här. Läs och fundera på om ni har något att ta till er.

De "team antipatterns" som jag känner mest för är "The code napper" och "The hidden backlog", men det kanske beror på att det är de två som jag har upplevt senast.

Det är bra läsning för de som ibland kanske intresserar sig för de något mjukare delarna av programmering.