
Vi pratar inte särskilt mycket om det här – jag har aldrig sett en presentation på en konferens som handlar om att välja bra namn, till exempel.
Hur stor roll spelar det egentligen om du väljer att skriva ”foo” som namn på en index-variabel i stället för ”i”? På den nivån pratar vi detaljer, men varje liten sak som hjälper någon annan att lättare förstå din kod är viktig. När vi namnger metoder och funktioner är det ännu viktigare att vi hittar rätt namn – i många fall kommer andra att direkt anropa dessa.
Vad gäller klasser och gränssnitt måste vi tänka väldigt noggrant. När jag hittar rätt namn för en klass ser jag plötsligt andra ställen där den är relevant – eller ser en omstrukturering som jag inte kunde se förut.
De senaste åren har ”refaktorering” blivit ett vanligt begrepp i programmering. Vi har bra stöd i våra verktyg för att snabbt ändra namn på alla möjliga saker. Ironiskt nog har det ofta lett till att programmerare blir lata med namngivning, eftersom de vet att de senare kan ändra dem.
Det är klart att du kan ändra namnen, men om du inte aktivt gör det sitter du där med dåliga namn och strukturer. Att ändra namn är inte alltid nog. Ibland upptäcker du att klasser och moduler är organiserade fel. Att ändra namn leder ofta till större omstruktureringar.
Ibland kan man också ha en känsla att namnen är fel, men inte sätta fingret på varför. En teknik som fungerar väldigt bra för mig är att döpa om alla klasser till nonsens och på så sätt få en färsk bild av hur saker hänger ihop utan att bli distraherad av namnen.
Parprogrammering är ett av de bättre sätten att diskutera namngivning. Eftersom du måste förklara ett koncept för din partner märks det tydligt om du har givit det fel namn.
Vi använder fortfarande ordet ”kod” när vi pratar om programmering. Bra namngivning kan hjälpa oss att komma bort från tanken på att det vi skapar är ogenomträngligt och fyllt av dold mening. Bra namngivning lyfter fram vad som är viktigt och döljer det som är irrelevant. En stor del av programmering är att skapa abstraktioner, och för att kunna hantera abstraktioner och idéer måste vi ge dem namn som gör det möjligt att resonera kring dem.
fokus på namngivning är troligen ett av de enklaste sätten att skilja programmerare åt, men man kan lära sig att bli bättre. Det finns inte så många böcker som tar upp det här, den bästa som jag läst är Kent Becks Implementation Patterns. Robert C Martins Clean Code täcker också en hel del av området.















