Hva er programforståelse?
Programforståelse er en programmerers evne til å forstå hva et dataprograms kildekode gjør. I informasjonsvitenskapelig instruksjon overses forståelsen av et program ofte til fordel for å lære mekanikk og syntaks for dataspråket som undervises. Å skrive forståelig kode er imidlertid et universelt behov, uavhengig av dataspråket den er skrevet i. Hvis en programmerer skriver et bibliotek eller et stykke kode, men ingen kan bestemme hva det gjør etterpå, kan algoritmen og logikken bak den koden lett gå tapt. Det blir stadig mer vanlig at programmerere ikke kan dechiffrere sin egen kode, siden den ofte ikke er skrevet tydelig og intuitivt.
Det er to hovedstrategier programmerere kan bruke for å forbedre programforståelsen, og hver har sine egne fordeler og ulemper. Den første metoden er å legge til dokumentasjon til kode under eller etter opprettelse av kode, og den andre er å skrive kode med vekt på strukturen. En kombinasjon av begge tilnærminger er nyttig for de fleste programmerere, selv om det er noen kodebyggere som foretrekker en strategi fremfor en annen. Hvilken metode som skal brukes er et spørsmål om personlig preferanse av programmereren, og ethvert forsøk på å avklare kode er langt bedre enn ingen i det hele tatt.
Å legge til dokumentasjon til kode er det enkleste av de to metodene, og når det gjøres bra, kan det være en veldig nyttig krykke for en programmerer som ikke kjenner til språket koden er skrevet i. De fleste dataspråk har en spesifikk dokumentasjonsstil for å hjelpe programforståelse. Hvis kodedokumentasjon skrives grundig, kan en ny programmerers første trinn være å lese all dokumentasjon og kommentarer for å få en forståelse av hvordan programmet fungerer, uten å ha lest koden i det hele tatt. I stedet for å være avhengig av kodesyntax og mekanikk, kan programmereren se hva som skjer i ren tekst, og deretter relatere teksten til nøyaktig hva som skjer på et gitt sted. Når du legger til dokumentasjon til kode, må imidlertid programmerere være forsiktige, fordi for mye dokumentasjon kan være forvirrende og påtrengende, snarere enn nyttig.
Når du skriver kode med vekt på struktur, antar en programmerer at andre vedlikeholdere som ser på hans eller hennes kode, vil ha en tilsvarende kunnskap om språkets syntaks og mekanikk. Noen ganger er dette en gyldig antagelse, men det kan ikke alltid stole på. Programforståelse som i stor grad bygger på struktur er mulig, men det krever betydelig mer arbeid fra den originale programmereren for å lette det. Mekanikken og syntaksene i språket må følges nøyaktig, samt alle stilistiske konvensjoner, og alt må være konsistent. Når du skriver kode på denne måten, må en programmerer alltid være bevisst på at det som er klart for ham, kanskje ikke er klart for en annen person.
Selv når du skriver kode med øye for senere programforståelse, kan det være nødvendig med ytterligere dokumentasjon eller strukturelle endringer senere. Dette er en naturlig del av kodevedlikehold, og ikke en feil hos programmereren. En programmerers jobb er å forutse så mange forståelsesproblemer som mulig, men alle blir ikke alltid fanget.