Overblikket forsvinder

Tags:    diverse

Jeg har et problem med mine scripts/kildekoder.

Når jeg har skrevet nogle få hundrede linjer kode, så mister jeg overblikket - og dermed lysten til at lave det færdigt. Derpå starter jeg forfra proceduren gentager sig.

For nylig gik jeg over til at anvende klasser til PHP-scripting, og det gjorde, at min overblik ragte meget længere, end det plejer. Men det samme skete igen.

Hvad skal jeg gøre for at genvinde overblikket i PHP og Pascal?



brug massevis af kommentarer.

jeg gør det i mit forum script, at jeg adskiller de forskellige dele af scriptet med en fx:

//------------------------------Ny Post------------------------------

brug kommentarer, og gør dem stor med fx bindestreger.

Derudover skal du sørge for at have en masse luft i dit script. Brug tabulatortasten flittigt, og hav mange tomme linjer i dit script. Det øger overskueligheden stort.

Men vigtigst af alt er kommentarerne.




Find en editor hvor du kan "klappe funktionerne sammen". Kan man have en stor klasse, hvor kun indholdet af den ene funktion man er ved at skrive er synlig.

En fil til hver klasse, jo mere der står i en fil jo sværere er det at huske hvor henne de forskellige ting er, så er det nemmere at bladre mellem de forskellige klasser ved at skifte fil.

Ændrer i syntaks highlighteren. Jo nemmere det er at se forskel på de forskellige ting jo bedre. Jeg plejer fx at sætte en lysegrå baggrundsfarve på strings, så er det også meget nemmere at finde syntaks fejl (hvis der fx mangler en " får store dele af scriptet grå baggrundsfarve). jeg kan også godt lide at få keywordsne skrevet med fed, men prøv at eksperimenter med det!



Hvis du når til grænsen for hvor meget kode du kan overskue i en kode fil, så er det måske et tegn til at du skal fordele koden på flere filer/klasser.

Når du så begynder at få så mange filer/klasser at du efterhånden ikke kan overskue dem længere, så tegn et diagram over dem.

Nå det også begynder at blive komplekst, så brug filsystemets mappestrukturer, og del koden op i 'pakker', som er en naturlig gruppering af filer/klasser som kender hindanen mere, end de kender filer/klasser i andre pakker.

Får du mange pakker, kan du også tegne et diagram over dem.

Hvis systemet har mange pakker, som polarisere sig i to, eller flere, klumper af pakker, kan du overveje at dele systemet op i flere subsystemer, som kommunikere gennem enkle og snævre interfaces.

Til sidst, et par gode tommelfinger-regler:
1. Hvis du finder unødig kompleksitet/flexibilitet, så fjern den!
2. Hvis noget viser sig at værer ovenud svært, så tænk: 'er der ikke en nemmere måde at gører det her på?' Og når du finder denne nemmere måde, så brug den.
3. Vær ikke bange for at erkende at kode kan sande til, og når det sker, så tøv ikke med at ruske godt og grundigt op i den, og evt. skriv den helt om fra grunden. (Refakturering)



Jeg kender ikke PHP, men i andre sprog er "Divide and conquer" en vigtig metode til at bevare overblikket:
http://en.wikipedia.org/wiki/Divide_and_conquer_algorithm

Dvs. del din kode op i små dele, det er meget lettere at overskuer 25 funktioner af 10 linier en det er at overskue én funktion på 250 linier.

Jeg er ikke så meget for kommentarer. Jeg laver sjældent kommentarer i min egen kode og gør jeg det er det oftest for at gøre opmærksom på en "special feature" og ikke for at danne overblik.

Hvis du bruger en editor der kan liste funktioner, class'er og hvad man nu bruger i PHP er det også en hjælp.



hver klasse her deres egen fil. Sådan får du lettest overblik. Jeg vil dog gerne påpege at det er dumt at have for meget luft i din kode, da dette også gør at man mister overblikket. Jeg vil så igen sige at det er en smagssag. Jeg vil yderligere påpege at kommentarer så som

<----------her står noget ----------->

ikke virker for mig. Der mister jeg fx. overblikket. Derimod bruger jeg mig flittigt af en struktur ala

/**

@author Martin Slot
@date 22/07/1985
@version 1.0
@file test.php

her står en masse på mange linjer
som beskriver funktionen/klassen som jeg
skal til at lave. Der kan fx. stå
noget om de forskellige members der er og hvordan
de virker

**/

class test
{
public:
test();

};

/**
@member test
@description konstruktøren som laver lalala
@exception smider en ioException ved fejl bla
**/
test::test(){}

Altså noget til hver stykke kode. Jeg ved godt at det der ikke lige er php syntaksen (cpp for at være mere præcis) Men inde i selve kroppen af konstruktøren test, laver jeg så også hyppige kommentarer. Det gør ikke noget at der er mere kommentar end kode, da kommentarer vil hjælpe dig når du, engang, skal tilbage og rette til.
Ja, det var bare måden jeg gjorde det på.



Du kunne prøve denne her text editor program:
http://notepad-plus.sourceforge.net/uk/site.htm



Find en editor hvor du kan "klappe funktionerne sammen".


Lige nu bruger jeg TSW WebCoder. Det er jeg meget tilfreds med - især fordi jeg har en ældre, gratis udgave. Men i TSW kan man ikke klappe koden sammen (fordi programmet bruger editorkomponenten SynEdit).

Har du et forslag til en anden gratis Windows-editor? Evt. også en editorkomponent?



Når du så begynder at få så mange filer/klasser at du efterhånden ikke kan overskue dem længere, så tegn et diagram over dem.

Diagram? Findes der værktøjer (evt. en teksteditor) som automatisk kan med med PHP?

...
3. Vær ikke bange for at erkende at kode kan sande til, og når det sker, så tøv ikke med at ruske godt og grundigt op i den, og evt. skriv den helt om fra grunden. (Refakturering)

Hehe. Det er som regel også det, det ender med.



t