Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   For-Schleife :Stilfrage (https://www.delphipraxis.net/171375-schleife-stilfrage.html)

Lemmy 4. Nov 2012 20:03

AW: For-Schleife :Stilfrage
 
Zitat:

Zitat von Ego (Beitrag 1189609)
Schnelle Antwort, aber leider keine auf meine Frage. Ich wollte nichts über die Auswahl von Variablennamen wissen, sondern über die Schleifenkonstruktion: Mit einer oder mit zwei Variablen? Egal wie sie heißen

selten so gelacht. Mehr schreib ich nicht - ist eh für die Katz...

@Popov: i als Schleifenindex verwende ich auch noch hin und wieder - aber bei Software die langfristig gewartet werden muss (und nicht nur von mir) vermeide ich so zeugs selbst bei den einfachsten Schleifen...

Furtbichler 4. Nov 2012 21:11

AW: For-Schleife :Stilfrage
 
Ich werde auch mal eine Antwort geben, die am Thema vorbei geht:
Delphi-Quellcode:
For i:=0 to 10
ist schlechter Stil, weil hier magische Konstanten verwendet werden. 0 mag ja noch angehen (untere Grenze), aber 10 ist... was?

Wenn es sich um eine Konstante handelt, dann sollte sie als Konstante deklariert werden (und nicht einer Variablen zugewiesen werden, Herr Fragesteller).
Handelt es sich um eine Veränderliche, weil z.B. eine Liste durchsucht wird, steht dort natürlich nicht 10, sondern z.B. Elementanzahl-1 o.ä.

Handelt es sich um Bereichsgrenzen (eines Arrays), dann sollte das auch so implementiert werden (Low, High). Schließlich kann man mit einer Programmiersprache nicht nur programmieren, sondern auch erklären.

p80286 4. Nov 2012 22:34

AW: For-Schleife :Stilfrage
 
Zitat:

Zitat von Lemmy (Beitrag 1189680)
@Popov: i als Schleifenindex verwende ich auch noch hin und wieder - aber bei Software die langfristig gewartet werden muss (und nicht nur von mir) vermeide ich so zeugs selbst bei den einfachsten Schleifen...

Das hätte ich gerne näher erklärt. Wenn ich mich richtig erinnere wird i (j,k..) als Schleifenindex bei Fortran z.B. "mitgeliefert".
Für mich ist das ein bedingter Reflex I = Schleife.
Etwas Anderes ist es bei SatzIndex oder ähnlichem.

Gruß
K-H

Popov 5. Nov 2012 00:46

AW: For-Schleife :Stilfrage
 
Das mit I ist so eine Sache, denn
Delphi-Quellcode:
for to
akzeptiert meines Wissens sowieso nur lokale Variablen, somit hält sich die Unübersichtlichkeit in Grenzen. Es ist nur ein Schleifenindex, mehr nicht. Bei komplexen Verschachteltelungen lasse ich mit mir reden, aber guck dir mal den Quelltext der Units an. Lauter Is.

Zitat:

Zitat von Furtbichler (Beitrag 1189689)
Ich werde auch mal eine Antwort geben, die am Thema vorbei geht:
Delphi-Quellcode:
For i:=0 to 10
ist schlechter Stil, weil hier magische Konstanten verwendet werden. 0 mag ja noch angehen (untere Grenze), aber 10 ist... was?

Einerseits möchte ich dir Recht geben, dann aber... Guck dir mal die Unit
Delphi-Quellcode:
ComCtrls
und dort z. B.
Delphi-Quellcode:
TCustomRichEdit.Print
. Zig 1440 Zahlen. Ich brauchte Stunden bis ich rausfand was sie zu bedeuten haben. Ok, Stunden vielleicht nicht, aber es hat schon paar Minuten gedauert.

Furtbichler 5. Nov 2012 06:49

AW: For-Schleife :Stilfrage
 
Zitat:

Zitat von Popov (Beitrag 1189726)
Einerseits möchte ich dir Recht geben, dann aber... Guck dir mal die Unit
Delphi-Quellcode:
ComCtrls
und dort z. B.
Delphi-Quellcode:
TCustomRichEdit.Print
. Zig 1440 Zahlen. Ich brauchte Stunden bis ich rausfand was sie zu bedeuten haben. Ok, Stunden vielleicht nicht, aber es hat schon paar Minuten gedauert.

Damit ist dann wohl bewiesen, das sich die VCL-Programmierer einen Dreck um sauberen Code scheren.

[QUOTE=Popov;1189726]Das mit I ist so eine Sache, denn
Delphi-Quellcode:
for to
akzeptiert meines Wissens sowieso nur lokale Variablen, somit hält sich die Unübersichtlichkeit in Grenzen. Es ist nur ein Schleifenindex, mehr nicht. Bei komplexen Verschachteltelungen lasse ich mit mir reden, aber guck dir mal den Quelltext der Units an. Lauter Is.
Wenn Du Clean Code konsequent durchziehst, würde eine Methode (der Name sagt ja alles) eh nur aus einer Schleife bestehen. Ich finde, i und j sind allgemein übliche und verständliche Zähl/Laufvariablen und können auch in Programmen, die in 10 Jahren noch verstanden werden sollen, verwendet werden. Wobei i und j ziemlich fies -weil mit bestimmten Fonts schwer zu unterscheiden- sind.

Der Index (daher das I) einer Liste hat ja eigentlich keinerlei Semantik (außer der des Index'). Oder nimmst du etwa Namen wie 'ArrayIndex' und verwechselst 'lange Bezeichnernamen' mit 'lesbarer Code'? ;-)

Du hast bestimmt ein Beispiel für einen guten Namen für eine Schleifenvariable...

Popov 5. Nov 2012 07:42

AW: For-Schleife :Stilfrage
 
Meinst du mich? Eigentlich stehe ich auf i, j dagegen nutze ich fast nie. k, dann m, aber kein n.

Wobei gerade letzte Woche habe ich etwas konstruiert das aus zum Teil drei Schleifen bestand. Das ist an für sich nicht das Problem, aber bei i, k und m verlor ich dann doch etwas den Überblick, da der Code etwas komplex war. Nach einer handvoll Fehler durch falsche Zuweisung entschloss ich mich richtige Namen zu benutzen. Nachdem ich fertig war und alles optimiert habe, entwor sich das Chaos und ich hab die Klassiker wieder eingesetzt.

angos 5. Nov 2012 07:55

AW: For-Schleife :Stilfrage
 
Hi,

du hast also i,k,j durch lesbare Namen ersetzt, dann die Fehler bereinigt und zum Schluß die neuen Namen wieder durch i,j,k ersetzt? Wenn ja: Warum? Das würde ich nämlich nicht verstehen.


Gruß

Sir Rufo 5. Nov 2012 07:59

AW: For-Schleife :Stilfrage
 
Weil das nachher auffällt und er dann erklären müsste, dass er das am Anfang nicht geblickt hat mit den i, k, n Variablen.

So hält er sich lästige Diskussionen vom Hals ;)

Popov 5. Nov 2012 08:16

AW: For-Schleife :Stilfrage
 
Nicht i,k,j, sondern i,k,m.

Die drei Gründe wieso ich sie durch Namen ersetzte waren: währen der Entwicklung, als ich noch nicht wusste wie alles aussehen soll, war der Code etwas umfangreicher. Der zweite Grund war, dass sich alles etwas verschachtelte. Es ist ja nicht so, dass ich den Überblick verloren habe, aber um Flüchtigkeitsfehler zu vermeiden waren schwer verwechselbare Namen sinnvoller. Als alles stand und funktionierte, wurde es optimiert und übersichtlicher (der einst langer Code schrumpfte auf paar Zeilen). Die Namen hatten jetzt keinen Sinn und machten ihrerseits dem Code durch die Namen unübersichtlich. Was übrig blieb war auch mit i, k und m leicht verständlich.

Und drittens, und das soll bitte nicht als der geringste Grund angesehen werden, weil ich bösartig bin. Ich verstehe es auch mit i, k und m, aber wenn die Firma meint mich feuern zu müssen, was kümmert mich ob der Nachfolger damit nicht klar kommt. Ich hoffe sogar, dass er damit nicht klar kommt, Stunden, Tage, Monate damit verbringt die Funktion zu entwirren. Die hohen Kosten belasten die Firma dann so sehr, dass sie Konkurs geht. Selber Schuld wenn sie mich feuern ;)

DeddyH 5. Nov 2012 08:21

AW: For-Schleife :Stilfrage
 
Wenn die das bisschen Refactoring nicht hinkriegen, wäre eine Firmenpleite ja nur eine "natürliche Auslese" :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr.
Seite 3 von 4     123 4      

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