Den professionella gränsen för programkorthet

Jag talade i ett tidigare inlägg om en gräns för när ett program gick överstyr och blev så kort och koncist att det inverkade menligt på förståelsen. Det här skulle jag vilja uttrycka som “Den professionella gränsen för programkorthet“. Varför då? Jo, enligt min mening skriver ett riktigt programmerarproffs kod en gång (eller några, inräknat refaktorisering) för att kunna läsas 1000 gånger.

Programmet bör visserligen vara elegant och enkelt, men kanske främst vara möjligt att förstå med en rimlig arbetsinsats. Någon stackare (eventuellt du själv några månader senare) måste ju underhålla och vidareutveckla koden. Ett proffs skriver inte kod för att visa upp sina kunskaper (“show-off”) utan för att göra ett jobb på det “enklaste sätt som faktiskt kan fungera”, som man säger inom Extreme Programming. Det här är något som unga, oprofessionella utvecklare ofta inte skänker en tanke.

Jag diskuterade nyligen detta med en branschkollega, Tobias Hill på Citerus. Anledningen var Ruby, det nya “inne”-språket. Vi var rörande eniga att vi båda sett för många “smarta” lösningar i Ruby som bara kändes som uppvisningar. “Titta vad jag kan!”. Allt för många “oneliners och fewliners”, som Tobias så träffande uttryckte det. Det fick oss att undra om det kanske finns för många tonnisar och för få proffs i Ruby-världen fortfarande? (Jag hackar inte på Ruby utan på übersmart kod.)

Problemet är (det finns alltid ett sådant, eller hur?) att den här gränsen för programkorthet är subjektiv och flytande. En mans “superenkla” kod är en annan mans “oförståeliga härke”. Kanske är det bara så att jag och Tobias har läst för lite rubykod ännu för att ha lärt oss den koncisa, eleganta syntaxen? Jag vet inte. Klart är att gränsen flyttar sig under tiden, subtilt.

Men mitt råd om du tvekar: Fela klart på den lättförståeliga sidan – inte den smarta sidan. Om du skriver kod som en nybörjare kan förstå så finns åtminstone en chans att någon annan än du själv kan förstå den. Och du har tagit ett stort kliv närmare mot att bli ett riktigt mjukvaruproffs.

2 thoughts on “Den professionella gränsen för programkorthet

  1. Jag håller i princip med. Vår gemensamme vän Niklas Lindström beskrev en gång oläsbar kod som “DRY until shrivelled” vilket jag tycker beskriver det hela bra.

    *Men*. Det finns också människor som bara är bekanta med måsvingesyntax och tycker att allt som inte hör hemma där, typ metaprogrammering och closures, ser konstigt och oläsligt ut. Då är problemet en begränsad horisont hos betraktaren.

  2. En sak som kan vara värd att tänka på är att den kod man visar upp på en blogg kanske är mer överförsnyggad än kod man faktiskt använder. Antingen för att visa att man själv är ball eller för att visa på en feature hos språket. Det kan nog gälla för nya språk generellt och betyder inte nödvändigtvis att just ruby uppmuntrar till sånt.

Comments are closed.