Op woensdag 20 februari 2002 01:29 schreef D-mension het volgende:
Ik ben op het moment veel bezig met programmeren...als hobby, maar ook voor mijn opleiding (laatste half jaar...en dat is een stageperiode wat uitstekend bevalt). Ik heb behoorlijk wat ervaring met ASP (en HTML, CSS, SQL) en heb 2 jaar geleden redelijk wat opgestoken van C++. Nou ben ik dus bezig met C++ Builder wat op zich aardig opschiet, maar ik merk dat mijn manier van programmeren niet de beste is. Waarom? Omdat veel problemen waar ik tegenaan loop, voornamelijk komen door het feit dat de structuur van mijn source op een gegeven moment nogal rommelig wordt en ik zelf regelmatig loop te puzzelen over waarom ik een bepaalde functie op die manier heb gemaakt.
Probeer je methodes/functies niet te lang te maken zodat je in een paar seconden kan zien wat er gebeurd. Probeer de methodes ook te documenteren of van een dusdanig goeie naam te voorzien dat je er mee uti de voeten kan (documentatie is een stuk beter trouwens). Als ik een langere procedure heb dan bouw ik kleine eilandjes met bij elkaar horende code op met 1 regel commentaar zodat ik alleen het commentaar hoef te lezen om te begrijpen wat er gebeurd.
En na een tijdje zal je programma door evolutie gaan veranderen. Ik besteed daarom ook wat tijd (vooral als ik geen zin heb om echt denk werk te verrichten) een het opschonen van code. Hierdoor blijft code bij mij altijd schoon en heb geen (lees niet vaak) last van: 'waar is dit nog maar goed voor?' code.
Ik denk dat het voor mij belangrijk is dat ik daar eerst eens wat aan probeer te doen.
wijs

Nou, mijn vraag aan de meer ervaren programmeurs onder jullie: Hoe pak je het maken van een programma nou aan?
Zorg dat je een gedetaileerde structuur op papier hebt van datgene wat je gaat maken? Zo ja, hoe bouw je die op (voorbeeldje misschien)?
Alleen lastige dingen werk ik eerst op papier uit, maar het meeste doe ik on the fly. Jaja.. ik weet het. Het is niet de beste methode maar in de toekomst ga ik meer met UML werken.
Wat voor namen geef je aan variabelen zodat je later ook nog weet waarvoor ze dienen?
Ik gebruik vaste index variable namen: k,l,i en verder hergebruik ik ook nooit variablen. Dit is misschien wel wat langzamer omdat je meer variablen aanmaakt. Maar het maakt de code wel zo leesbaar. En ik geef ze altijd een duidelijke naam die soms wat lang is. bv
totaalKosten maxAantalPersoon
Wat beschrijf je in het commentaar?
een groot deel van het commentaar schrijf ik als ik een classe aan het opschonen ben. Om klaar te maken voor serieus gebruik. In het begin is de structuur vaak nog een keer aan het veranderen en vind het dan zonde om overal nette commentaar bij te zetten.
Wanneer begin je een gedeelte uitgebreid te testen en zorg je dat eerst ieder onderdeeltje nagenoeg foutloos is (ik bedoel niet de compiler en/of runtime errors maar of het datgene doet wat het zou moeten doen) voor je verder gaat of komt dat pas na een hele berg code?
Je hebt hier een bepaalde 'techniek' voor: unit test. Hierdoor kun je heel eenvoudig objecten doormeten zonder eerst je programma op te starten. Wat je in wezen doet is een mini programma maken en daarin even de net gemaakte objecten inzetten en dan jouw methodes er even oplos laten zodat je kan zien dat ze het goed doen.
Een andere manier om je code wat robuster te maken is door extra checks erin te zetten. Bij iedere methode die ik maak worden de argumenten gechecked op null of op toegestane waarden. Hierdoor krijg ik meteen een foutmelding als ik een prog fout heb gemaakt ipv het pas later (of nooit) te voor schijn komt. Dit heet dan ook wel met een mooi woord: pre condities.
Kortom...geef mij wat tips en to-do's/not-to's aub. Waar moet ik op letten bij het maken van een programma?
Ik hoop dat ik je een paar tips heb gegeven waarmee je uit de voeten kan. PS ik ben een java programmeur en ik heb de indruk dat er aan de java kant veel meer standaarden zijn dan in de c(++) wereld. Hierdoor krijg je ook veel strakkere code omdat veel problemen zijn uitgewerkt. Een van de dingen die ik zelf erg fijn vind is extra duidelijke namen voro statische en member variablen (variablen van het object). Een statische variable krijg een '_' ervoor, dus _maxGewicht en een member variable krijgt een 'm_' ervoor dus m_leeftijd. Hierdoor maak ik ook minder fouten en begrijp sneller wat voor een soort type een variable is. Oja.. een van mijn oudere maar nog steeds gewardeerde naamgevings technieken is het type van een variable achter de variable te zetten, dus janPersoon of okButton. Hierdoor zie je een stuk sneller wat voor object je te pakken hebt.