AW: case...of für mehrere Variablen?
Zitat:
Zitat:
Zitat:
Nur, weil man ohne 'case', 'break', 'continue', und (ja, einige fordern das sogar) 'for' auskommen kann, heißt das nicht, das diese Konstrukte überflüssig bzw. code smell sind. In der Folge wäre nur RISC wirklich 'Clean'. Das Motto muss lauten: "So lesbar wie möglich mit so wenig Code wie nötig" und nicht "So wenig keywords wie nötig". Dann ist das guter Code. Ein Case-Konstrukt aus 1000 Fällen ist per se Blödsinn, aber 3-4 Fallunterscheidungen sind allemal übersichtlicher als irgendwelche Maps oder Dictionaries, die an ganz anderer Stelle befüllt werden:
Delphi-Quellcode:
erfordert keine Zeile Kommentar, wohingegen
Case WerteBereich(Messwert) of
ZuKlein : GibFehlermeldungAus('Der Wert ist zu klein'); GeradeRichtig : VerarbeiteDen(MessWert); ZuGross : GibFehlermeldungAus('Der Wert ist zu groß'); end;
Delphi-Quellcode:
kurz und knapp ist, aber nicht gerade lesbarer. Als Programmierer muss ich nachdenken, was der Code macht. Und blättern muss ich auch, um herauszubekommen, was unter welchen Umständen ausgeführt werden soll. Mist, schon wieder 10 Sekunden unnütz nachgedacht, nur weil der Programmierer zu faul ist, sich klar und verständlich auszudrücken.
WerteBereichAuswertungsDictionary[WerteBereich(Messwert)]();
Abschließend noch eins: Denk mal darüber nach, wie viel einfacher und klarer Programme wären, wenn man keine Dogmen aufstellt ("break, continue, case sind böse"), sondern auf einer Ebene darüber (inklusive über den Tellerrand blicken und so) über den perfekten Code siniert: Erst dann kommt man weiter. |
AW: case...of für mehrere Variablen?
Zitat:
Zitat:
Zitat:
Um nur mal ein Beispiel zu bringen... Gegeben sei eine Liste von Personen, gesucht sind die Voll- und Minderjährigen. In Scala kann ich das machen:
Code:
Jetzt kommst du mit deiner for-Schleife.
val people = List(...)
val (minors, adults) = people.partition(person => person.age < 18) |
AW: case...of für mehrere Variablen?
contenance
|
AW: case...of für mehrere Variablen?
Ja, den Rest klärt Ihr bitte per PN.
|
AW: case...of für mehrere Variablen?
Zitat:
Zitat:
Zitat:
Zitat:
Deine restlichen Ausführungen gebe ich hier nicht wieder, ziehe meine Polemik zurück und werfe dennoch ein, das Du es dir ein wenig zu leicht machst: Es gibt mehr als 'schlechten Stil' und 'guten Stil'. Ich arbeite gerade mit SPS-Programmierern zusammen, die eine PASCAL-ähnliche Sprache verwenden und es ist eine Herausforderung, hier sauberen Code zu erstellen. Insofern ist das, was hier 'gut' ist, unter C# z.B. oller Tobak. For-Schleifen werden in moderneren Programmiersprachen überflüssig, da hast Du Recht. Nicht weil sie böse sind, sondern weil es Wege gibt, die Lösung eines Problemes einfacher und direkter zu beschreiben. Ich schrieb ja, das es keine Dogmen geben sollte, sondern nur dieses eine Ziel: Code lesbar, wartbar, robust zu schreiben. Das wir das gleiche Ziel verfolgen, scheint mittlerweile klar. Code riecht gut, wenn er verstanden wird. Code riecht nicht gut, wenn er erklärt werden muss. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz