Umfrage: Exit falscher / alter Programmierstil?
Ja, alt
Ja, falsch
Ja, falsch UND alt
nein, normal und kann man verwenden
[Zeige Ergebnisse]
Hinweis: Dies ist eine öffentliche Umfrage. Andere Benutzer können sehen, was du gewählt hast.
Neue Antwort schreiben 
 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[Umfrage] - Sprunganweisung falscher / alter Programmierstil?
Magic94 Offline
mehr Kerne ist immer besser

Beiträge: 1.385
Registriert seit: Nov 2010
Beitrag #1
[Umfrage] - Sprunganweisung falscher / alter Programmierstil?
Hallo,

Viele behaupten, dass wenn man die Anweisung "exit" benutzt, schreibt man in einem falschen oder altem Programmierstil. Dennoch finde ich immer wieder Programme / Algorithmen wo diese Anweisung verwendet wird. Wie seht ihr das?

Da ich hier von Delphi rede und diese Anweisung in jeder Programmiersprache anders heißt: "exit" bricht die momentane Funktion / Prozedur sofort ab.

Zitat:if 0 = 0
then exit
else machirgendwas;

HP DL-580 G7
2x Intel Xeon E7-2870 (10 x 2,4GHz)
96GB DDR3-1333 RAM
NVIDIA GeForce GTX 1080 MSI (Blower)
Samsung 850 Pro 512GB auf PCIe Karte
4TB Seagate billigfieh
72GB 10K HP Drive
(Dieser Beitrag wurde zuletzt bearbeitet: 12.03.2013 00:08 von Magic94.)
11.03.2013 23:46
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
oreissig Offline
Maître Modérateur

Beiträge: 12.021
Registriert seit: Jul 2008
Beitrag #2
RE: [Umfrage] - ist "exit" falscher / alter Programmierstil?
just darüber bin ich heute gestolpert, die wikipedia hat nen schönen abschnitt dazu, wo u.a. Knuth zitiert wird mit ein paar guten Beispielen warum man nicht alles mit if/else und schleifen machen will

EDIT: also ich selbst habe mir angewöhnt, "normale" kontrollflüsse schon möglichst alle am ende auslaufen zu lassen, aber bei irgendwelchen randfällen oder fehlern durchaus direkt zurückzuspringen
(Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2013 23:52 von oreissig.)
11.03.2013 23:48
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Magic94 Offline
mehr Kerne ist immer besser

Beiträge: 1.385
Registriert seit: Nov 2010
Beitrag #3
RE: [Umfrage] - ist "exit" falscher / alter Programmierstil?
(11.03.2013 23:48)oreissig schrieb:  just darüber bin ich heute gestolpert, die wikipedia hat nen schönen abschnitt dazu, wo u.a. Knuth zitiert wird mit ein paar guten Beispielen warum man nicht alles mit if/else und schleifen machen will

Zitat:Von einigen Entwicklern wurde auf der Linux-Kernel-Mailing-Liste die häufige Verwendung von GOTO im Quellcode von Linux diskutiert. Linus Torvalds sagte dabei, dass die Verwendung von GOTO die Lesbarkeit des Quellcodes in vielen Fällen sogar deutlich erhöhen könne


10GOTO10 :banane::banane::trollface:

HP DL-580 G7
2x Intel Xeon E7-2870 (10 x 2,4GHz)
96GB DDR3-1333 RAM
NVIDIA GeForce GTX 1080 MSI (Blower)
Samsung 850 Pro 512GB auf PCIe Karte
4TB Seagate billigfieh
72GB 10K HP Drive
(Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2013 23:54 von Magic94.)
11.03.2013 23:51
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
oreissig Offline
Maître Modérateur

Beiträge: 12.021
Registriert seit: Jul 2008
Beitrag #4
RE: [Umfrage] - ist "exit" falscher / alter Programmierstil?
(11.03.2013 23:51)Magic94 schrieb:  
Zitat:Von einigen Entwicklern wurde auf der Linux-Kernel-Mailing-Liste die häufige Verwendung von GOTO im Quellcode von Linux diskutiert. Linus Torvalds sagte dabei, dass die Verwendung von GOTO die Lesbarkeit des Quellcodes in vielen Fällen sogar deutlich erhöhen könne
die Betonung liegt eben auf "kann"
Generell ist vermutlich jedem klar, dass Spaghetticode eine schlechte idee ist, d.h. Abweichungen von strukturierter Programmierung (if, while, ...) sollten schon wohlüberlegt sein und nicht leichtfertig verwendet werden, aber sind nicht prinzipiell zu verbannen
11.03.2013 23:54
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
gandro Offline
Quälgeist

Beiträge: 8.951
Registriert seit: Jul 2008
Beitrag #5
RE: [Umfrage] - ist "exit" falscher / alter Programmierstil?
Ich versteh ehrlich gesagt die Frage nicht so ganz. Wenn man IRC trauen darf, dann ist dieses "exit" in Delphi das Äquivalent zu "return" in den C-artigen Programiersprachen (und nicht etwa das Äquivalent zu exit() in C oder PHP oder bash).

Mag zwar die Programmierschule geben, die der Meinung ist, dass Anweisungen wie "return", "break" und "continue" auch nur eine Variante von "goto" im Schafspelz ist und es daher wie goto zu vermeiden ist - wie etwa die Programmiersprache Eiffel, die kein "return" hat - aber so wirklich durchgesetzt hat sich diese Schule nicht. Und ich find Eiffel in der Hinsicht auch mühsam.

Ich persönlich halte "if 0 <> 0 then machwas;" zwar schöner und lesbarer als dein obiges Beispiel, aber wenn du mehrere Abfragen hast die du verschachteln müsstest, dann halte ich ein vorzeitiges return für schöner als eine if-Verschachtelung.

Das aber alles wie gesagt unter dem Vorbehalt, dass "exit" hier nur die Funktion beendet, nicht etwa das ganze Programm. Denn dann wäre das echt schlechter Stil.
(Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2013 23:57 von gandro.)
11.03.2013 23:55
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Magic94 Offline
mehr Kerne ist immer besser

Beiträge: 1.385
Registriert seit: Nov 2010
Beitrag #6
RE: [Umfrage] - ist "exit" falscher / alter Programmierstil?
(11.03.2013 23:55)gandro schrieb:  Ich persönlich halte "if 0 <> 0 then machwas;" zwar schöner und lesbarer als dein obiges Beispiel, aber wenn du mehrere Abfragen hast die du verschachteln müsstest, dann halte ich ein vorzeitiges return für schöner als eine if-Verschachtelung.

War auch grade nur ein Beispiel damit man versteht was ich mit exit meine.
Ich nutze das ja auch nur wenn die Prozedur selber schon >100 Zeilen ist und der "andere" weg ohne Exit dann gleich nochmal 50 Zeilen drauf kosten würde.

HP DL-580 G7
2x Intel Xeon E7-2870 (10 x 2,4GHz)
96GB DDR3-1333 RAM
NVIDIA GeForce GTX 1080 MSI (Blower)
Samsung 850 Pro 512GB auf PCIe Karte
4TB Seagate billigfieh
72GB 10K HP Drive
12.03.2013 00:03
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
oreissig Offline
Maître Modérateur

Beiträge: 12.021
Registriert seit: Jul 2008
Beitrag #7
RE: [Umfrage] - Sprunganweisung falscher / alter Programmierstil?
der klassiker ist validitätsprüfung von parametern, sowas wie
Code:
int foo(int bar) {
   if (bar < 0) return -1
   /* insert eigentliche funktionalität here */
}
da ist ein "goto" am beginn besser, als den gesamten body einzurücken, weils in einem gigantischen else-zweig steckt
12.03.2013 00:18
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neue Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste