AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

For-Schleife :Stilfrage

Ein Thema von Ego · begonnen am 4. Nov 2012 · letzter Beitrag vom 6. Nov 2012
Antwort Antwort
Seite 3 von 4     123 4   
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.364 Beiträge
 
Delphi 10.3 Rio
 
#21

AW: For-Schleife :Stilfrage

  Alt 4. Nov 2012, 21:03
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...
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#22

AW: For-Schleife :Stilfrage

  Alt 4. Nov 2012, 22:11
Ich werde auch mal eine Antwort geben, die am Thema vorbei geht:
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.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#23

AW: For-Schleife :Stilfrage

  Alt 4. Nov 2012, 23:34
@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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#24

AW: For-Schleife :Stilfrage

  Alt 5. Nov 2012, 01:46
Das mit I ist so eine Sache, denn 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.

Ich werde auch mal eine Antwort geben, die am Thema vorbei geht:
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 ComCtrls und dort z. B. 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.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#25

AW: For-Schleife :Stilfrage

  Alt 5. Nov 2012, 07:49
Einerseits möchte ich dir Recht geben, dann aber... Guck dir mal die Unit ComCtrls und dort z. B. 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 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...

Geändert von Furtbichler ( 5. Nov 2012 um 08:02 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#26

AW: For-Schleife :Stilfrage

  Alt 5. Nov 2012, 08:42
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.
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#27

AW: For-Schleife :Stilfrage

  Alt 5. Nov 2012, 08:55
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ß
Ansgar
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#28

AW: For-Schleife :Stilfrage

  Alt 5. Nov 2012, 08:59
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#29

AW: For-Schleife :Stilfrage

  Alt 5. Nov 2012, 09:16
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#30

AW: For-Schleife :Stilfrage

  Alt 5. Nov 2012, 09:21
Wenn die das bisschen Refactoring nicht hinkriegen, wäre eine Firmenpleite ja nur eine "natürliche Auslese"
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:46 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