(Eigene) Exitcodes für methoden/funktionen und euer Code-design?



  • Hallo,

    1. mich würde interessieren wie ihr mit wohldefinierten exit-codes umgeht. Bzw. wie ihr funktionen/methoden schreibt so dass ihr übersichtlichkeit liefert mit Hilfe von exit-codes. Schreibt ihr irgendwie Makros mit return EXIT_FAILURE oder ähnlichem oder gebt ihr integer zurück wobei jeder integer für eine spezielle rückgabe steht?

    2. Wie programmiert ihr? Also nehmen wir an ihr habt ein subziel z.B. ihr braucht irgendwo eine sortierung oder ähnliches .Schreibt ihr generell einfach funktionen die euch ans Ziel bringen oder geht ihr eher den weg im voraus so zu planen dass in jeder funktion ganz allgemein etwas passiert was man immer auch für alle anderen algorithmen verwenden könnte? Also ganz blödes beispiel - ihr schreibt nicht eine spezielle sortiermethode sondern eine allgemeine die man immer anwenden kann ...ich hoffe das ist nicht zu missverständlich was ich fragen will...

    Danke für eure Meinung und Hilfe



  • heinzimeinzi schrieb:

    1. mich würde interessieren wie ihr mit wohldefinierten exit-codes umgeht.

    Wir haben für jedes Modul Error-Frames (Bereiche für Error Codes) definiert, in dem das Modul Fehlernummern und zugehörige Fehlertexte definieren darf.

    heinzimeinzi schrieb:

    1. Schreibt ihr generell einfach funktionen die euch ans Ziel bringen oder geht ihr eher den weg im voraus so zu planen dass in jeder funktion ganz allgemein etwas passiert was man immer auch für alle anderen algorithmen verwenden könnte?

    Wiederverwendbaren Code zu schreiben, ist natürlich optimal und immer im Hinterkopf. Aber so global, wie du das umschreibst ("für alle anderen algorithmen") ist das natürlich nicht immer umzusetzen. Und ich gestehe, dass ich manchmal auch einfach was Funktionierendes niederschreibe, um in der vom Kunden gesetzten Zeit fertig zu werden. Manchmal gibt es einfach ganz knappe Zeitvorgaben ("muss morgen fertig sein!"), da bleibt für Planung nicht viel Zeit...



  • Danke für die Antwort...

    Wir haben für jedes Modul Error-Frames (Bereiche für Error Codes) definiert, in dem das Modul Fehlernummern und zugehörige Fehlertexte definieren darf.

    darf man fragen wie so ein error-frame aussieht?



  • heinzimeinzi schrieb:

    darf man fragen wie so ein error-frame aussieht?

    Ist recht unspektakulär. Ein kleines Beispiel:

    ERROR_FRAME_MODUL1 = 0x1100
    ERROR_FRAME_MODUL2 = 0x1200

    Alles zwischen 0x1100 und 0x1200 darf von Modul 1 für Error Codes benutzt werden...



  • heinzimeinzi schrieb:

    1. mich würde interessieren wie ihr mit wohldefinierten exit-codes umgeht. Bzw. wie ihr funktionen/methoden schreibt so dass ihr übersichtlichkeit liefert mit Hilfe von exit-codes. Schreibt ihr irgendwie Makros mit return EXIT_FAILURE oder ähnlichem oder gebt ihr integer zurück wobei jeder integer für eine spezielle rückgabe steht?

    Im Grunde Garnicht. Je nach Modul (und Sprache) geschieht im aktuellen Projekt folgendes:
    - Exceptions (Java und C++)
    - returnvalues true/false, in kombination mit aussagekräftigen Aufrufen eines Messaging/Logging-Systems (C, C++)
    - Container mit Messages als Returnvalues, wobei diese Messages in verschiedene Kategorien einteilbar sind, unter anderem ERROR, WARNING (Java)
    - returnvalues true/false, in Kombination mit einer globalen variable die im Bedarfsfall einen Errorstate enthält (C)

    1. Wie programmiert ihr? Also nehmen wir an ihr habt ein subziel z.B. ihr braucht irgendwo eine sortierung oder ähnliches .Schreibt ihr generell einfach funktionen die euch ans Ziel bringen oder geht ihr eher den weg im voraus so zu planen dass in jeder funktion ganz allgemein etwas passiert was man immer auch für alle anderen algorithmen verwenden könnte? Also ganz blödes beispiel - ihr schreibt nicht eine spezielle sortiermethode sondern eine allgemeine die man immer anwenden kann ...

    Wiederverwendbarkeit ist immer was schönes. Allerdings immer mit einem Auge auf die Verhältnismäßigkeit. Wenn z.B. irgendwo innerhalb einer Klasse ein Vergleich mit Hilfe von zwei Memberfunktionen angestellt werden soll wird nicht gleich eine 100-Zeilen Monstertemplatefunktion gebastelt die das Ganze vollkommen abstrahiert und für die ganze Welt benutzbar sein könnte - solche allgemeinen Lösungen sind zwar durchaus interessant vom theoretischen Standpunkt her, aber in der Praxis völliger Overkill. Der Kunde jammert eh meist über die Rechnungen, also nicht unnötig in die Höhe treiben 😉



  • habt ihr auch kurze beispiele für z.B. C++ ?


Log in to reply