Archive for April, 2007

Filed Under (C# code) by Christiaan van Bergen on April-10-2007

Okay, ik ga er vanuit dat we allemaal nette code schrijven en op de juiste plekken try/catch blokken schrijven. In veel gevallen is het echter zo dat in het catch-deel de gevangen Exception weer opnieuw gegooid wordt. Zoals bijvoorbeeld:

try{
  //doe iets dat wellicht fout gaat
}
catch(Exception ex){
  //doe iets moois
  throw ex;
}

Je verwacht nu dat de Exception ex die je gevangen hebt, wordt gegooid. Niets is minder waar. De Exception ex wordt onder water aangepast. De stacktrace wordt opnieuw opgebouwd, met als gevolg dat je niet meer precies het regelnummer krijgt van de code die fout is gegaan, maar het regelnummer waar je de Exception hebt gegooid. Wanneer je de Exception ongewijzigd wil gooien gebruik dan :

try{
  //doe iets dat wellicht fout gaat
}
catch(Exception ex){
  //doe iets moois
  throw;
}

Het eenvoudig weglaten van de ‘ex’ na de throw zorgt ervoor dat het Exception object ongewijzigd blijft.



Filed Under (Code algemeen) by Christiaan van Bergen on April-10-2007

We hebben het allemaal wel eens gedaan of doen het nog bijna elke dag: code uitcommentariëren voor eventueel later gebruik. Het woord eventueel staat hier niet ten overvloede. Het zou zelfs vet gedrukt moeten staan. Nog beter zou de zin kunnen zijn: code uitcommen-tariëren omdat deze nooit meer wordt gebruikt. Waarom toch?
Is het omdat we bang zijn die briljante ideeën die er stonden te verliezen? Twijfelen we over de nieuwe code en willen we een fall-back scenario in stand houden? Zijn we bang dat degene die de code heeft geschreven zich geschoffeerd voelt? Wat de reden ook is: onzin!

Oude code regels die niets doen en dan ook nog eens als commentaar in je levende code staan horen verwijderd te worden. Ben je bang dat je iets weghaalt dat een ander anders bedoeld had? Jammer dan, vertrouw maar op je sourcesafe, cvs of svn. Oh..je zegt dat je die niet hebt?!..AAaaaaaagh



Filed Under (Overig) by Christiaan van Bergen on April-5-2007

De uitspraak ‘the right tool for the right job’ zou je kunnen doortrekken tot ‘a tool without a job is a gadget’. Vanuit het oogpunt van software ontwikkeling: een compiler die je niet gebruikt voor een klus is niet meer dan een hebbedingetje om je tijd mee te verdoen.

In een eerdere post noemde ik Script# al. Op zich zat niemand te wachten op een compiler die je C# code weet om te zetten naar JavaScript, maar het gaf wel een ‘wow’-ervaring (gadget). Daar we nu een toepassing hiervoor hebben weten te vinden (nl. rekenregels naar de cliënt brengen en dezelfde regels aan de serverzijde houden met maar één codebase), heeft de gadget ineens een waarde gekregen en is het een tool geworden.



Filed Under (Overig) by Christiaan van Bergen on April-2-2007

Mijn felicitaties gaan naar Pieter-Joost van de Sande. Hij is afgelopen weekend één van de vier C#-MVP’ers van Nederland geworden. Ik weet zeker dat Nederland er een hele enthousiaste MVP’er bij heeft gekregen.
PJ, gefeliciteerd!