• [^] # Re: Eiffel

    Posté par . En réponse à la dépêche SmallEiffel devient SmartEiffel. Évalué à 8.

    Tu ne réponds pas à la question. Les techniques de vérification, si elles ne sont pas obligatoires, on oublie toujours de les utiliser à un endroit ou un autre. Que ce soit du haut niveau (dbc) ou du bas niveau (assert) ne change rien au problème.

    Des contrats sont inclus dans les classes de base, donc si tu compiles en contrôlant toutes toutes assertions (compilation par défaut), tu es obligé d'utiliser ces classes correctement. Si tu as besoin de mettre des contrats dans tes classes,tu peux facilement. Obliger à mettre des contrats n'aurait pas de sens, ce serait comme obliger d'avoir des paramêtres pour toutes les features. Lorsque tu programmes une feature en Eiffel, tu penses à ce que tu exiges (précondition) et à ce que tu assures (post-condition) et tu t'assure un état cohérent (invariant).En faisant ça systématiquement, ça aide beaucoup à avoir un code sans bug.
    Une fois que ton code a bien tourné sans violer aucun contrat, tu le recompiles sans les contrats
    ("compile -boost") et ton application tourne plus vite.

    Maintenant si tu ne veux pas mettre de contrat, tu peux, mais c'est ta responsabilité.<troll>Si tu veux (vraiment) te mettre une balle dans le pied, tu peux</troll>