was versteht man unter gutem Programmdesign?



  • pointercrash() schrieb:

    Öhem,

    worum geht's eigentlich? Man kann auch unter strikter Einhaltung der MISRA- Regeln ziemlich obfuskativen Schrott schreiben, genauso kann eine Verwendung von goto Licht ins Dickicht bringen.
    In Ermangelung von Exceptions bleibt in C ja nicht viel anderes. Ein goto auf ein Label cleanup:, das (hoffentlich) alle Ressourcen zurückgibt, ist auf jeden Fall übersichtlicher, als alle Steuerstrukturen einzeln aufzulösen.
    Technisch passiert ja auch nichts anderes als ein gezielter Verwurf des Returnstacks. Beim break passiert das gleiche, halt nur mit dem obersten Element. switch-case z.B. würde sonst nur begrenzt Sinn machen.

    Unter "gut" verstehe ich hauptsächlich "les- und nachvollziehbar", mache das nicht daran aus, ob da ein goto drinsteht.

    Los, steinigt mich! :p

    Die Angst vor dem GOTO kann ich auch nicht nachvollziehen. Ich denke, sie kommt noch aus der Zeit, als BASIC-Homecomputer-Programmierer die strukturierte Programmierung in Pascal entdeckten.

    Ich glaube, Donald Knuth hat vor über 30 Jahren mal eine Streitschrift gegen die Dämonisierung des GOTOs publiziert. Müsste im Netz noch zu finden sein.



  • Mirek schrieb:

    Die Angst vor dem GOTO kann ich auch nicht nachvollziehen. Ich denke, sie kommt noch aus der Zeit, als BASIC-Homecomputer-Programmierer die strukturierte Programmierung in Pascal entdeckten.

    Jupp.
    Es ging mit den Basic-Dialekten aber nicht anders.
    Wenn du das durch hast, willst du kein goto mehr.

    Es ist daher einfacher einem Anfänger die Nutzung von goto zu untersagen.
    Wenn er dann mehr Erfahrung hat und weiß was er tut, kann er es ja benutzen.
    Nochmal: Wenn er weiß, was er tut.
    ^Aber wer weiß das schon^



  • uns hat man im 1. semester auch die verwendung von goto und globalen variablen untersagt. vermutlich, weil man sonst nur noch goto und globale variablen verwenden würde und natürlich, weil man sonst nicht überprüfen kann, ob wir die konzepte der schleifen und funktionsaufrufe verstanden haben.
    im 3. semester hieß es dann, dass man damit den code unter gewissen umständen sehr viel übersichtlicher und schneller machen kann, und dass es unter assembler sowieso nur noch goto und globale variablen gäbe, c aber eine hochsprache sei, deren konzepte man durchaus nutzen dürfe, sofern sie sinnig seien. 🙄



  • Hör auf mit deinem Geschwätz.
    Die Leser des Forums könnten denken, man programmiert in C tatsächlich so wie du fabulierst.
    Wer zur Uni geht um dort Programmieren zu lernen ist grenzenlos naiv und dumm.



  • programmieren ist dort halt ein teil der ausbildung, und zumindest in meinem fall hat informatik sogar was mit computern zu tun. 🙄

    und ja: da programmiert man dann auch so. es wird ohne ende mit goto und globalen variablen rumgesaut, weil man eben so unglaublich schlau ist, nicht einfach so drauf loszuproggen, sondern sich vorher erst mal auf dem papier gedanken zu machen, wie das alles ablaufen soll (90%) um das ganze dann ganz bequem einzugeben (10%).
    wobei eigentlich saut man damit nicht rum, man verwendet es bewusst, weils eben nicht anders geht.



  • DirkB schrieb:

    Mirek schrieb:

    Die Angst vor dem GOTO kann ich auch nicht nachvollziehen. Ich denke, sie kommt noch aus der Zeit, als BASIC-Homecomputer-Programmierer die strukturierte Programmierung in Pascal entdeckten.

    Jupp.
    Es ging mit den Basic-Dialekten aber nicht anders.
    Wenn du das durch hast, willst du kein goto mehr.

    Wenig später gab es BASIC-Dialekte ohne Zeilennummern und mit erweiterten Kontrollstrukturen, wo man GOTO nur noch selten gebraucht hat. Auch das GOSUB wurde in CALL umbenannt. Das sieht einfach seriöser aus. 😉

    Ach ja, - Java hat goto als reserviertes Schlüsselwort. Aber es hat dort keinen Effekt.


Anmelden zum Antworten