Download - Prosa

prosa.dk

Download - Prosa

Tema: God kode

Christian Horsdals gode eksempel i Java

Koden nedenfor er fra “Principles, Patterns and Practices of Agile

Software Development” af Robert C. Martin. Christian Horsdal,

softwareudvikler og -arkitekt, Mjølner Informatics, synes, det er

et godt eksempel på god kode, fordi:

• Eneste kommentar er i toppen, hvor algoritmen beskrives

helt kort

• Eneste public metode er den første, man møder

• Private metoder kommer i den rækkefølge, de bruges

• Metoderne er korteMetoder og variable har forklarende navne

• Metoderne holder sig til ét abstraktionsniveau hver

PrimeGenerator.java (final)

/* This class Generates prime numbers up to a user specified maximum.

The algorithm used is the Sieve of Eratosthenes. Given

an array of integers starting at 2: Find the first uncrossed integer,

and cross out all its multiples. Repeat until there are no more

multiples in the array.*/

public class PrimeGenerator

{

private static boolean[] crossedOut;

private static int[] result;

public static int[] generatePrimes(int maxValue)

{

if (maxValue < 2)

return new int[0];

else

{

uncrossIntegersUpTo(maxValue);

crossOutMultiples();

putUncrossedIntegersIntoResult();

return result;

}

}

private static void uncrossIntegersUpTo(int maxValue)

{

Værdien af god kode

På det mere praktiske plan sværger Chri-

stian Horsdal til mange små iterationer,

når han koder. Ikke blot de iterationer, der

ligger i procesmodeller som Scrum, men de

små iterationer i løbet af en dag, hvor han

tilstræber hele tiden at få tjekket sin kode af

og ind i versionsstyringsværktøjet.

– Groft sagt bør man skrive fem linjer, køre

dem, så skrive fem linjer mere og køre dem.

Det tvinger en til at skrive korte metoder og

korte klasser, hvilket igen fremmer læsbarheden,

siger han.

Men det er ikke nok, at den enkelte udvikler

har fokus på kvalitet i koden.

– Der skal være en kulturel forståelse i

virksomheden for værdien af god kode. I

princippet kunne man godt sige, at det er

o.k. at lave mindre god kode, hvis man gør

det med åbne øje, og fordi det giver mening

nu og her. Det er bare ikke mit indtryk, at det

er det, der har været baggrunden, når jeg

ser dårlig kode. Der er steder, hvor kvalitet

i koden simpelthen ikke er i fokus, mener

Christian Horsdal.

Hvis ikke der er tungtvejende grunde til

at lade være, anvender man hos Mjølner

eksempelvis Suns og Microsofts officielle

kodestandarder. I nogle tilfælde justerer man

dog standarderne i de enkelte projekter, da

crossedOut = new boolean[maxValue + 1];

for (int i = 2; i < crossedOut.length; i++)

crossedOut[i] = false;

}

private static void crossOutMultiples()

{

int limit = determineIterationLimit();

for (int i = 2; i

More magazines by this user
Similar magazines