Læse venlige koder

Tags:    visual-basic
Skrevet af Bruger #2165 @ 25.01.2003

Intro


Når man skriver en kode skal den helst være til at forstå for andre. Det nytter ikke at skrive noget som det her:

Fold kodeboks ind/udKode 

Det er umuligt at finde rundt i hvis du senere skal rette fejl eller andre skal kunne læse og forstå dine koder! Det er heller ikke smart at skrive:

Fold kodeboks ind/udKode 

Hvem ved hvad Text7 og Label3 er?
Så kan man sidde og søge efter hver eneste ord, og så er det meget svært at forstå hvad der står og det bliver hurtigt uoverskueligt!

Hvis du gider at læse videre får du et par tip til hvordan du kan gøre dine koder mere forståelige.

Brug ord der kendetegner objectet


Hvis du indsætter label's på din form vil Visual Basic automatisk kalde den label1, label2 ovs... Den samme med Tetbox's, altså Text1, Text2 ovs...
Hvis du nu f.eks. vil bruge label1 som en overskrift og Text1 til at være det felt brugeren skal skrive hvad han/hun hedder ville det være smart at skrive sådan:

Fold kodeboks ind/udKode 

lbl fortæller ham der læser at lblOverskrift er en Label, mens txt fortæller at txtNavn er en TextBox. Det vil jeg alt sammen komme ind på senere...

Når du skriver:

Fold kodeboks ind/udKode 

Kan 15483 og 15484 betyde hvad som helst! Igen skal du bruge det ord der kendetegner hvad det egentlig er du dim'er. Hvis 15483 i virkeligheden betyder om der er skrevet noget i en TextBox og 15484 er om der er trykket på en knap er det oplagt at kalde dem:

Fold kodeboks ind/udKode 

Så kan man hurtigt se at TextBoxCheck er en Boolean og at den nok check'er en TextBox, og man kan se at ButtonCheck er en Boolean og at den nok check'er en Button.
Selvom Visual Basic godt kan genkende hvad TextBoxCheck er, er det ikke sikkert at ham der læser din kode kan, så husk altid at skrive hvad det er. Lige som at selvom Visual Basic selv kan tjeke om der med txtName menes txtName.Text, kan ham der læser din kode ikke, så lad være med kun at skrive txtName.

Navngiv dine objekter


Jeg vil nu for at undgå unødvendig forvirring vise en liste der viser lidt om hvordan man forkorter de forskellige objekter:

Fold kodeboks ind/udKode 

Der står ikke alle objekter, men jeg tror jeg har skrevet de vigtigeste...
Ideen er at man let skal kunne afgøre hvad det er for et object bare ved at kigge på navnet. Det er en officel liste så det er altså ikke noget jeg lige har fundet på hvad det skal hedde.

Jeg tænke også på at skrive alle de atributer der er ved de enkelte objekter, men fandt ud af hvor mange der var!
Atribut = Jeg tror nok det er det der kommer efter navnet på objektet, f.eks. .Caption eller .Text.

Option Explicit


Options Explicit er en kode man bare SKAL indsætte i toppen af alle de forme og moduler osv. du kommer til at bruge, ikke fordi programmet ikke vil virke hvis du ikke brugte den, men fordi det sparer dig for en masse besvær med at finde fejl. Tænk på det sådan her:
Hvis du ikke sætter den ind i toppen af alle dine forme og moduler osv. skal du teste hver enkel funktion i hele dit program for at finde fejl.
Hvis du bruger Options Explicit vil det være nok bare at åbne (bruge) alle forme og moduler osv. 1 gang. Du skal altså ikke prøve at trykke på alle knapper eller skrive i alle tekstfelter.

Options Explicit skal bruges sådan:

Fold kodeboks ind/udKode 

Altså i toppen, husk at indsætte det i toppen på alt! f.eks. forme og moduler som er de mest brugte.

Husk at rykke ind


I stedet for at koderne står op og ned i lange baner ville det jo være smart at rykke det lidt ind så man kan se et mønster. Du kan evt. bruge det samme mønster som mig, men du kan sagtens opfinde dit eget hvis du synes det er mere overskueligt.
Fold kodeboks ind/udKode 

Kan du se et mønster?
Mønsteret er at hver gang der kommer en ny handling skal der rykkes ind med en Tab og når der afsluttes en handling skal der rykkes den tilbage med en Tab.

Et eksempel


For ligesom at få alle med eller bare at skære det ud i pap giver jeg et hurtigt eksempel på et program skrevet forkert:

Fold kodeboks ind/udKode 

Forstod du ikke hvad programmet gør?
Så check dette stykke kode:

Fold kodeboks ind/udKode 


Programmet udføre fulstændig det samme, men denne gang er det skrevet læseligt, så husk når du skal programmere at hvis du springer over hvor gærdet er lavest får du også meget svært ved at rette fejl senere, så du gør det altså ikke kun for andres skyld...

Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (11)

User
Bruger #3027 @ 04.02.03 09:54
Glimrende artikle. Jeg ville oenske at der var flere som ville foelge saadanne retningslinjer.
Fodnote:
Navngivningen af objekter og variable paa denne maade er ofte kendt som "Hungarian notation" - hvis du vil ud og soege mere info :-)
User
Bruger #2353 @ 29.01.03 13:05
Jeg kan lige tilføje, at det er en meget dog idé at skrive variabler med STORE BOGSTAVER. Det giver også et godt overblik.

fx
public NAVN, EFTERNAVN, ALIAS as string

når man så skriver:

navn = txtNavn.text

så bliver det:

NAVN = txtNavn.text.

- Northcode
User
Bruger #2353 @ 29.01.03 13:05
Jeg kan lige tilføje, at det er en meget dog idé at skrive variabler med STORE BOGSTAVER. Det giver også et godt overblik.

fx
public NAVN, EFTERNAVN, ALIAS as string

når man så skriver:

navn = txtNavn.text

så bliver det:

NAVN = txtNavn.text.

- Northcode
User
Bruger #789 @ 27.01.03 08:18
Tak GUD!!! endelig er der en som lære programmørene noget godt :)
User
Bruger #2165 @ 26.01.03 14:31
Hvad er det for noget, hvor blev min ekstra kommentar til artiklen af???
User
Bruger #65 @ 16.03.03 10:29
Jeg ville lige tilføje!
at det jo som sagt ikke er for andres skyld men for ens egens skyld.

Det gør det letter for dig som programør at rette fejl ,men også at udvide programmet med opdateringer osv.

det er også en god idé at lave funktion til et stykke kode der skal udføres 1000 af gange!

så i stede for at skrive 5 linier koder 1000 gange, skrive du 5 linier kode én gang i en funktioner, og kalder denne med forskelig indhold af de varibler der skal bruges!

så i stedet for at skrive

5000 linier kna du nøjes med at skrive

1005 liner!

resultatet bliver programet fylder mindre og køre hurtigere!

-Thomas
User
Bruger #2165 @ 21.05.03 12:18
I min opgivelse over hvilken forkortelse der bruges til hvilket object er der en tilføjelse:
Der er nemlig også mange der skriver
Timer = tim
og bruger altså IKKE forkortelsen: tmr
User
Bruger #360 @ 29.05.03 00:16
Når jeg ser overskriften får jeg lyst til at spørge: Hvornår er koder venlige?

Eller der menes måske "Læsevenlige koder"?
User
Bruger #2165 @ 06.02.04 16:28
Jeg undre mig lidt over at den har fået 'Niveau: Lettere øvet'! Dette burde da være standard for alle og derfor også være det man startede med at lære!
Jeg bruger ingen svære kommandoer og faktisk gør jeg det lettere for newbies at gå igang da de måske får lettere ved at overskue deres koder med mine tips.
User
Bruger #65 @ 16.03.06 13:26
En anden vigtig ting ved læsevenlig koder er

i stedet for at skrive

<pre>
funktion testBog(parm1 as booelan)
if parm1 then
'handlig
end if
endn function
[/pre]

<pre>
funktion testBog(parm1 as booelan)
if parm1=true then
'handlig
end if
endn function
[/pre]

Det er vigtig i koden at skrive hvad man tester for.
User
Bruger #8985 @ 16.10.12 00:55
Rasmus: det er ikke alle, der synes variabler skal skrives med store bogstaver. Faktisk er det vist primært konstanter, man nogle gange skriver med store bogstaver. Bl.a. er det meget udbredt at skrive noget lignende i C/C++:

#define MY_CONSTANT xxx
Du skal være logget ind for at skrive en kommentar.
t