Computable.nl
  • Thema’s
    • Carrière
    • Innovatie & Transformatie
    • Cloud & Infrastructuur
    • Data & AI
    • Governance & Privacy
    • Security & Awareness
    • Software & Development
    • Werkplek & Beheer
  • Sectoren
    • Channel
    • Financiële dienstverlening
    • Logistiek
    • Onderwijs
    • Overheid
    • Zorg
  • Awards
    • Computable Awards
    • Nieuws
    • Winnaars
    • Partner worden
  • Vacatures
    • Vacatures bekijken
    • Vacatures plaatsen
  • Bedrijven
    • Profielen
    • Producten & Diensten
  • Kennisbank
  • Magazine
  • Nieuwsbrief

Foutvrij met een glimlach

01 april 2004 - 22:003 minuten leestijdOpinieSoftware & Development
Dick Streefland
Dick Streefland

Martijn Linsen heeft het Perpetuum Mobile van de software-ontwikkeling bedacht, was de eerste gedachtengang van Dick Streefland na het lezen van het artikel ‘Foutvrij programmeren’. Hij heeft echter zijn bedenkingen.

Bij het lezen van het artikel (Computable van 2004-03-12) kon ik een glimlach niet onderdrukken. De auteur beweert hier daadwerkelijk het Perpetuum Mobile van de software ontwikkeling te hebben uitgevonden: de magische formule voor foutvrije programma’s.
De eerste techniek, ACP, vervangt functionele interfaces door het modificeren van een gedeeld object. Dat kan in sommige situaties misschien handig zijn, maar ik zie niet in hoe dit de software foutvrij zou kunnen maken. De kans op fouten neemt eerder toe, omdat de interface van de functie minder strak is, en niet meer uit het prototype is af te leiden.
De Siblr-techniek (de b van ‘business’ is raadselachtig) is niets anders dan een ingewikkelde manier om een ‘goto’ statement na te bootsen. Het komt op mij over als een krampachtige manier om het gebruik van ‘goto’ te vermijden. Ook hier is onduidelijk hoe een beetje syntactische suiker een programma foutvrij kan maken.

Naschrift

ACP stuurt inderdaad aan op één gedeeld object, waarin alle belangrijke waardes zitten. Dat heeft misschien zijn nadelen (ik begrijp niet goed wat je bedoelt met ‘strak’, kun je dat wat nader omschrijven?), maar ook zo zijn voordelen: als een functie nu een argument meer of minder gaat gebruiken, hoef je nergens de functie-aanroep te veranderen.
Siblr bootst geen ‘goto’ na, maar maakt het gebruik ervan overbodig. Dit geldt eveneens voor multiple returns / exits: dit zijn allemaal dingen die je liever niet ziet in code. Met Siblr spring je bovendien altijd naar dezelfde plaats in een programma.
Siblr dwingt je om na te denken over foutafhandeling door de situatie om te draaien: de meeste ontwerpen zijn doelgericht (doe dit, check dat, doe dat, check dit, etc) en gaan niet in op uitzonderingen.
In de praktijk is gebleken dat slecht enkele ‘Siblr-if’s’ geen foutsituatie opleveren, en het gros wel. Door de confrontatie met deze situaties word je gedwongen meteen een foutboodschap te maken, het fout type te bepalen, en de transactie af te breken. Zo vang je stelselmatig alle functionele fouten af.
Op het technische vlak heeft elke functie natuurlijk een try-catch: in de catch hang je de lokale variabelen als properties aan je object, en zet je ook weer foutboodschap en -type; zo heb je alle informatie in één object, en zijn ook alle technische fouten afgedekt.
Combineer dit met een foutafhandeling die ook nog omgevings variabelen en user settings ophaalt, en je hebt een compleet beeld: het is alsof je naaast de gebruiker stond toen het mis ging.
Ik hoop dat dit een en ander verduidelijkt; voel je vrij om contact met me op te nemen.< BR> 
Martijn Linssen

 
Dick Streefland

Deel

    Inschrijven nieuwsbrief Computable

    Door te klikken op inschrijven geef je toestemming aan Jaarbeurs B.V. om je naam en e-mailadres te verwerken voor het verzenden van een of meer mailings namens Computable. Je kunt je toestemming te allen tijde intrekken via de af­meld­func­tie in de nieuwsbrief.
    Wil je weten hoe Jaarbeurs B.V. omgaat met jouw per­soons­ge­ge­vens? Klik dan hier voor ons privacy statement.

    Whitepapers

    Computable.nl

    Agentic AI in actie

    De stappen van automatiseren naar écht autonoom werken. Welke toepassingen zijn succesvol?

    Computable.nl

    Staat Digitale Connectiviteit Bouw- en Installatiebranche

    Connectiviteit is de kern van veel processen en van strategisch belang voor de toekomst. Waar sta jij?

    Computable.nl

    Design Sprints: 4 dagen van idee naar prototype

    Hoe zet je in vier dagen tijd een gevalideerd prototype neer met Design Sprints?

    Geef een reactie Reactie annuleren

    Je moet ingelogd zijn op om een reactie te plaatsen.

    Populaire berichten

    Meer artikelen

    Uitgelicht

    Partnerartikel
    Security & Awareness

    De noodzaak van OT-cybersecurity en de...

    ‘Wat je niet weet, kan het meeste zeer doen’ De Europese Unie scherpt de cyberwetgeving stevig aan. Met de nieuwe...

    Meer persberichten

    Meer lezen

    Carrière

    Kort: It-werknemer verwacht salarisgroei, The Ocean Cleanup in zee met SAP (en meer)

    betaalpas 2027
    Financiële dienstverlening

    Nieuwe betaalpas in 2027 nog vrij onbekend, maar heeft weinig erp-aanpassing nodig

    Software & Development

    Python-stichting wijst forse overheidssubsidie af door controversiële voorwaarden

    Overname M&A
    Security & Awareness

    Kort: Weer diverse overnames, Zander Labs wint Tech Fast 50 (en meer)

    Jacob Spoelstra blazen vermoeiend
    Overheid

    Spoelstra Spreekt: Kleuter

    Software & Development

    Vibe coding en het lot van de developer

    ...

    Footer

    Direct naar

    • Carrièretests
    • Kennisbank
    • Planning
    • Computable Awards
    • Magazine
    • Ontvang Computable e-Magazine
    • Cybersec e-Magazine
    • Topics
    • Phishing
    • Ransomware
    • NEN 7510

    Producten

    • Adverteren en meer…
    • Jouw Producten en Bedrijfsprofiel
    • Whitepapers & Leads
    • Vacatures & Employer Branding
    • Persberichten

    Contact

    • Colofon
    • Computable en de AVG
    • Service & contact
    • Inschrijven nieuwsbrief
    • Inlog

    Social

    • Facebook
    • X
    • LinkedIn
    • YouTube
    • Instagram
    © 2025 Jaarbeurs
    • Disclaimer
    • Gebruikersvoorwaarden
    • Privacy statement
    Computable.nl is een product van Jaarbeurs