Web Analytics
Privacy Policy Cookie Policy Terms and Conditions Programmeerstijl - Wikipedia

Programmeerstijl

Programmeerstijlen kunnen bepaald worden vanuit de volgende punten:

  • Ontwikkelmethodiek (bijvoorbeeld: Prince2 en DSDM)
  • Codeopmaak
  • Programma ontwerp

[bewerk] Ontwikkelmethodieken

Veelal binnen het bedrijfsleven wordt er middels een bepaalde methodiek ontwikkeld. Dit komt in het geval van ICT vaak neer op Prince2 en DSDM. Deze methodieken bepalen naast de planning vaak ook de manier van programmeren aan, en hoe diverse programmeurs samenwerken aan 1 codebase van een bepaalde applicatie.

Bij andere methodieken zoals XP (eXtreme Programming) is het de bedoeling dat professionele programmeurs elk hun eigen doelstellingen krijgen die binnen een bepaalde tijd gerealiseerd moeten worden. Dit heeft vaak ook tot resultaat (indien er iets mis gaat) dat de code qua programmeerstijl vaak heel divers is. Dit wordt mede veroorzaakt door het feit dat XP geen gebruik maakt van terugkoppeling naar de desbetreffende gebruiker/manager/opdrachtgever. Alle programmeurs zien dus niet bij elkaar wat ze aan het doen zijn. Het blijft uiteindelijk maar hopen of alle componenten met elkaar zullen samenwerken.

Bij DSDM en Prince2 is de terugkoppeling naar de gebruiker enorm belangrijk en staat ontwerp voorop. Dit verbeterd de eenduidigheid in het ontwerp en de code aanzienlijk, mede door de terugkoppeling tussen de programmeurs onderling en naar de manager/gebruiker/opdrachtgever.

[bewerk] Code-opmaak

Wat betreft de opmaak van de code wordt er meestal gebruikt gemaakt van een lettertype met een gefixeerde breedte, zoals 'Courier New'. Hierdoor kan men eenduidig inspringen in de code met behulp van tabs of spaties, aangezien 1 karakter altijd even breed is.

Inspringen gebeurt meestal bij een nieuw 'code block'. Deze blocks staan meestal achter nieuwe functiedefinities, booleanse vergelijkingen (if-then-else structuren, for/while loops) of bij 'scopes' voor bepaalde variabelen.

Voorbeeld van een C functiedefinitie:

   void functionName(char * variableName)
   {
   }

Het feit dat het stukje code hierboven iets inspringt heeft al te maken met de stijl waarin dit artikel is geschreven. Hetzelfde geld voor de vormgeving (oftewel stijl) van de code.

Het bovenstaande stuk code kan ook als volgt worden weergegeven:

   void functionName(char * variableName){}

In het bovenstaande stuk code is het zogenaamde 'code block' verplaatst naar een plek direct achter de functienaam. Beide manieren werken perfect en het is meer een kwestie van smaak van de programmeur(s) welke gebruikt wordt. Hierin zijn zij volledig vrij. In het geval van een ontwikkelgroep is het wel van belang dat alle programmeurs dezelfde stijl hanteren, omdat anders 2 verschillende opmaak regels gebruikt zouden worden binnen de broncode van hetzelfde programma. Dit maakt de code minder goed leesbaar en dat is onhandig bij het opsporen van problemen of uitbreiding/wijziging van de code.

Booleanse vergelijkingen kan men ook in een verkorte schrijfwijze noteren. De volgende twee if-then-else structuren doen allebei hetzelfde. Het enige verschil is de stijl:

   int x;
   if(value == true)
   {
       x = 1;
   } else {
       x = 2;
   }

Dit stuk code kan ook weergegeven worden als:

   int x = value ? 1 : 2;

Dit is duidelijk een stuk korter, maar ook iets moeilijker te begrijpen. Wellicht levert het betere gecompileerde code op, maar de meeste compilers vandaag de dag zijn slim genoeg om de eerste if-then-else structuur net zo goed te compileren als de tweede structuur.

[bewerk] Programmaontwerp

Programma ontwerp heeft ook te maken met programmeerstijlen. Denk hierbij aan de volgende vragen:

  • Wordt het programma een sequencieel stuk code of wordt het een object georienteerd geheel?
  • Worden ontwerp en implementatie gescheiden in de code?
 
THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu