Article View: nl.comp.programmeren
Article #368Re: wordt refractering veel gedaan?
From: John Bokma
Date: Sun, 16 Jan 2005 01:41
Date: Sun, 16 Jan 2005 01:41
63 lines
3697 bytes
3697 bytes
Nico Coesel wrote:
> "Jaap Beetstra" <jaap@nospam.beetstra.com> wrote:
>
>>Passero wrote:
>>> Ik ben momenteel mijn examen object geori�nteerd ontwerp en analyse
>>> aan het leren voor maandag en dit jaar zagen we heel veel manieren
>>> om te refracteren maar ik heb nu gehoord van sommige bedrijven dat
>>> ze dat daar niet doen, omdat het tijd kost en time is money.
>>
>>Refactoren (zoals ik het noem) kost natuurlijk tijd, maar het niet
>>doen kost meer tijd. Als je aan het programmeren bent, maak je op
>>ieder moment keuzes, en het is lastig om iedere keer de juist keuze te
>>maken. Refactoren helpt je dan:
>>- je code leesbaarder te maken door betere namen voor je
>>variabelen/classes/methods,
Kies je namen met zorg. Sterker, wellicht als de naam niet zo slim was
beter om die te handhaven, want die kan er na korte tijd "in" zitten, en
dan blijf je continu fouten fixen die met een slechte naam voorkomen
hadden kunnen worden. Mijn ervaring is: zeer zelden nodig.
>>- je code leesbaarder te maken door een betere opdeling van je proces
>>in deelstappen,
Kan soms noodzakelijk zijn, zeker als een project wat klein begon ineens
veel meer moet doen. Ik probeer altijd te voorkomen om voor jaar 2089 te
ontwerpen tenzij direct duidelijk is dat dit de bedoeling is.
>>- je code leesbaarder te maken door je methoden onder te brengen in de
>>juiste class)
Kan soms nodig zijn als later een class B nodig blijkt te zijn die een
deel van de code in class A kan hergebruiken, en dus een
gemeenschappelijke ouder, class C, handig kan zijn.
>>- je code minder bug-gevoelig te maken door gelijksoortige code samen
>>te voegen, waardoor je eventuele bugs erin nog maar 1 keer hoeft te
>>ontdekken en op te lossen
Zie boven.
>>- je code te hergebruiken, door dependency-management
>>- enz...
>
> Dus allemaal zaken rechtrekken die je eigenlijk al tijdens het ontwerp
> van de software had moeten doen?
Nee, want vaak weet je bij versie 1 niet waar versie 3 heen gaat. Een
kleine editor die handig is kan ineens deel uit gaan maken van een IDE
bijvoorbeeld. Of een editor van HTML moet ineens ook XML, PHP, Perl,
Java, C# enz. netjes kunnen kleuren e.d.
Als je bij versie 1 al rekening gaat houden met versie 2 t/m EOL dan zal
het project meestal niet eens uit de ontwerpfase komen. Bij elk nieuw
idee komen er dan zoveel problemen en nieuwe ideeen naar boven dat er
een mooie infinite loop ontstaat :-D.
--
John Bokma
Voorbeeldscripts in Perl: http://johnbokma.com/perl/
Ervaren Perl / Java programmeur beschikbaar: http://castleamber.com/
Tevreden opdrachtgevers: http://castleamber.com/testimonials.html
Technical Details
Message-ID:
<Xns95DFC8604F396castleamber@130.133.1.4>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mailReferences:
<KGaGd.31705$NH4.2884676@phobos.telenet-ops.be> <csbg9p$l03$1@news1.zwoll1.ov.home.nl> <41e98769.100171639@news.planet.nl>Show Full Headers
Complete Article Headers
X-Google-Thread: 107324,f4d24472362760fe
X-Google-Thread: fcea4,f4d24472362760fe
X-Google-Attributes: gid107324,gidfcea4,public
X-Google-Language: DUTCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: John Bokma <postmaster@castleamber.com>
Newsgroups: nl.comp.programmeren,be.comp.programming
Subject: Re: wordt refractering veel gedaan?
Date: 16 Jan 2005 01:41:53 GMT
Organization: Castle Amber - software development
Lines: 63
Message-ID: <Xns95DFC8604F396castleamber@130.133.1.4>
References: <KGaGd.31705$NH4.2884676@phobos.telenet-ops.be> <csbg9p$l03$1@news1.zwoll1.ov.home.nl> <41e98769.100171639@news.planet.nl>
X-Trace: individual.net mO5dmksGy7y9FZAjclOLCQ4be6SoRehwKxpOovlqa9kXD/VbBP
User-Agent: Xnews/5.04.25
X-Face: $7h&5K*ZL9*ZQ\6Hco2"V?1dD*C<ab^>zlws[S%i0b,@gKk|[,)Y-<hk143{.Ov"x{({zo( l,N\m`-_^nJfVQdEyt+-uAP^7WG]5mHj9&::7X-qK;Yv;xmRvNWQR"_igw+cr5WMj;6:zlj<R80Ei@ $gGWq&*{FL*kC*a