Om kodkonventioner och kultur
(Följande är en kommentar jag skrev till en text på Cocoa.se-wikin.)
Jag tycker det är knepigt med kodkonventioner. På många ställen föreskrivs tablängd, att variabelnamn ska ha olika prefix beroende på scope, osv, vilket de som efterfrågat det brukar tycka är bra, men det kan invagga i falsk trygghet.
Vad menas med att “höja värdet”? Vad är egentligen “lättläst” kod?
Ofta stannar det vid kodkonventioner som anger regler för namngivning. Ibland är dessa kodkonventioner löjligt detaljerade och dokumenten så långa att ingen läser dem. Då anses det att det är väldokumenterat, men ju längre och detaljerade de är, desto fler fall täcks inte av konventionerna och folk gör lite hur de vill.
Kodkonventioner är, tycker jag, bara en liten del av “kulturen” bland en grupp utvecklare. Att betona dess betydelse känns knasigt, eftersom hela kulturen är viktig.
Och att föreskriva konventioner känns ännu knasigare. Snarare borde dokumenten beskriva de konventioner som uppstått. Och man borde ifrågasätta i vilken utsträckning man måste beskriva dem. När nya personer kommer in i gruppen bör man ägna mycket tid åt att interagera med dem för att integrera dem i kulturen, snarare än lämna över en bibba papper som ändå inte har den rikhet som krävs för att förmedla alla nyanser av kulturen.
Det som är värt något är att man månar om kulturen. Att man ständigt kritiserar det sätt på vilket man bedriver sin verksamhet. Kan vi göra detta bättre?
Not: En programmerarbok jag tycker lyckas väldigt bra i att beskriva en kultur är Dave Thomas och Andy Hunts The Pragmatic Programmer. Rekommenderas varmt.