woensdag 5 maart 2008

Frustatie

Ik zit op kantoor. Een paar weken geleden heb ik versie 3.0.0 van Spidi opgeleverd. De klant is nu aan het testen. Soms bellen ze op, om een vraag te stellen, of een probleempje te melden. Zonet nog: “Frans, bij het overwerk van persoon 1212 van 3 maart is de SAP-datumcorrectie niet uitgevoerd”. Ojee. Dat is iets dat de prutsers mijn voorgangers niet helemaal goed en compleet hadden ingebouwd.

Zoek, zoek, waar zit dat ook alweer. In ieder geval in een stuk dat in C is geschreven. Ik hou wel van C. Fijne programmeertaal. Maar ook (of juist) in C kan je heel onleesbare code schrijven. Zie bijvoorbeeld The International Obfuscated C Code Contest.

Oja, 't zit in source file sap_interface.sc. In deze file staan 11 functies. Daarvan zijn er 6 die helemaal niks doen. Vroeger deden ze wel wat, maar 't is niet meer nodig. Normaal gesproken haal je dan die functies helemaal weg, maar alleen maar de functie leegmaken is natuurlijk voor de luie programmeur veel makkelijker. Want dan hoef je niet de aanroepen van die functies weg te halen. Prutsers.

Van de overige functies is er ééntje die er echt uitspringt. Functie uvb_verantwoording(). Die is 1561 regels lang (de hele source file is 1871 regels). Is dat erg, zo'n grote functie? Ja, dat is erg. Erg groot = erg onoverzichtelijk = erg grote kans op bugs en erg moeilijk aan te passen. Zoiets hoor je op te splitsen in een aantal kleinere functies. Prutsers.

Om een lang verhaal kort te maken (had ik maar de tijd om dat met die functie te doen… bah): ik ben niet blij. Ik moet eerst moed verzamelen. Een glaasje drinken, wat met een collega babbelen. Roene kijkt naar zijn iPod, en aan zijn gelaatsuitdrukking te zien is er iets niet helemaal in orde. Toen de accu van z'n iPod bijna op was heeft hij de verlichting van de display uitgezet. En nou blijft die uit, ook als je op de knopjes drukt. Maar als de verlichting uit is, dan kan je het scherm dus niet zien. Helemaal niet. De iPod is nu een spiegeltje. Hoe moet hij nou de verlichting weer aanzetten…? Mijn dag is weer goed. Zelfs bij Apple doen ze domme dingen.

2 opmerkingen:

  1. Werkt voor een moderne iPod niet toevallig de ouderwetse papercliptruuk? Gaatje zoeken, paperclip erin, reset done?

    En verder succes met die functie die 5/6 deel van de code beslaat...

    BeantwoordenVerwijderen
  2. hoi frans ik leef met je mee. Ik kom dit dus elke week tegen bij een project waar ik nu aan werk. Een groot deel van de code zit daar in 1 file met hele grote functies. Wat een prutsers. Zie je vrijdag in de klimhal.

    BeantwoordenVerwijderen