Hvad er programforståelse?
Programforståelse er en programmerings evne til at forstå, hvad et computerprograms kildekode gør. I datalogiundervisning overses forståelsen af et program ofte til fordel for at lære mekanik og syntaks for det computersprog, der undervises. At skrive forståelig kode er imidlertid et universelt behov, uanset det computersprog, det er skrevet i. Hvis en programmør skriver et bibliotek eller et stykke kode, men ingen kan bestemme, hvad det gør bagefter, kan algoritmen og logikken bag den kode let gå tabt. Det bliver stadig mere almindeligt, at programmerere ikke kan dechiffrere deres egen kode, da det ofte ikke er skrevet klart og intuitivt.
Der er to hovedstrategier, som programmerere kan bruge til at forbedre programforståelsen, og hver har sine egne fordele og ulemper. Den første metode er at tilføje dokumentation til kode under eller efter oprettelse af kode, og den anden er at skrive kode med vægt på dens struktur. En kombination af begge fremgangsmåder er nyttige for de fleste programmerere, selvom der er nogle kodebygere, der foretrækker en strategi frem for en anden. Hvilken metode, der skal bruges, er et spørgsmål om personlig præference fra programmereren, og ethvert forsøg på at afklare kode er langt bedre end slet ingen.
Tilføjelse af dokumentation til kode er den enkleste af de to metoder, og når det gøres godt, kan det være en meget nyttig krykke for en programmør, der ikke er bekendt med det sprog, koden er skrevet i. De fleste computersprog har en specifik dokumentationsstil til at hjælpe med programforståelsen. Hvis kodedokumentation skrives grundigt, kan en ny programmerers første skridt være at læse al dokumentation og kommentarer for at få en forståelse af, hvordan programmet fungerer, uden at have læst koden overhovedet. I stedet for at være afhængig af kodesyntaxen og mekanikken, kan programmøren se, hvad der sker i almindelig tekst, og derefter relatere teksten til præcist, hvad der sker på et givet sted. Når du tilføjer dokumentation til kode, skal programmerere imidlertid være forsigtige, fordi for meget dokumentation kan være forvirrende og påtrængende snarere end nyttig.
Når man skriver kode med vægt på struktur, antager en programmør, at alle andre vedligeholdere, der kigger på hans eller hendes kode, har et tilsvarende kendskab til sprogets syntaks og mekanik. Undertiden er dette en gyldig antagelse, men det kan ikke altid påberåbes. Programforståelse, der i vid udstrækning er baseret på struktur, er mulig, men det kræver betydeligt mere arbejde fra den originale programmerings side for at lette det. Sprogets mekanik og syntaks skal følges nøjagtigt såvel som alle stilistiske konventioner, og alt skal være konsistent. Når man skriver kode på denne måde, skal en programmør altid være opmærksom på, at det, der er klart for ham, muligvis ikke er klart for en anden person.
Selv når man skriver kode med øje for senere programforståelse, kan der være behov for yderligere dokumentation eller strukturelle ændringer senere. Dette er en naturlig del af kodevedligeholdelse og ikke en fiasko hos programmereren. En programmerers job er at forudse så mange forståelsesproblemer som muligt, men alle af dem bliver ikke altid fanget.