Unsaubere Variablennamen

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Unsaubere Variablennamen

Beitrag von m.fuchs »

Ich mach daraus mal ein neues Thema:
Mathias hat geschrieben:
Und man sollte den Datentyp angeben......

Dies ist auch wichtig.

Code: Alles auswählen

var
  slCode:StringList;

ist einiges besser als

Code: Alles auswählen

var
  Code:StringList;

Nö ist es nicht. Dein sl-Prefix verwirrt den Leser nur. Und ist eine redundante Information. In Pascal sind Variablen typisiert, man muss also den Inhaltstyp nicht im Namen codieren.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Unsaubere Variablennamen

Beitrag von pluto »

Nö ist es nicht. Dein sl-Prefix verwirrt den Leser nur. Und ist eine redundante Information. In Pascal sind Variablen typisiert, man muss also den Inhaltstyp nicht im Namen codieren.

Das war ja mein Punkt, um den es mir ging: In JavaScript ist das, soweit ich weiß Freiwillig.

Was ja in vielen anderen Sprachen auch der Fall ist. Heftig finde ich das in PY.
Dort muss man zwar keine Datentypen angeben, aber wenn du ein Vergleich machst, musst du wissen was da drin ist um es entsprechend casten zu können.
MFG
Michael Springwald

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Unsaubere Variablennamen

Beitrag von af0815 »

Ich sage immer nur StyleGuide. Entweder einen persöhnlichen oder einen der Gruppe.

Ich meine damit sowas wie den von Borland (oder wie die jetzt gerade heissen) oder

http://wiki.freepascal.org/Coding_style
http://wiki.freepascal.org/DesignGuidelines
http://wiki.freepascal.org/GUI_design_guidelines
https://www.delphi-treff.de/object-pascal/styleguide/

Man muß mit dem ja nicht einig sein, dann sollte man aber seinen eigen machen.

Andreas

BTW: Wäre schön wenn es die für FreePascal/Lazarus mal zusammengefasst gäbe
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Unsaubere Variablennamen

Beitrag von Michl »

af0815 hat geschrieben:BTW: Wäre schön wenn es die für FreePascal/Lazarus mal zusammengefasst gäbe
Gibt es doch. Sogar auf deutsch: http://wiki.freepascal.org/DesignGuidelines/de.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Unsaubere Variablennamen

Beitrag von af0815 »

Michl hat geschrieben:Gibt es doch. Sogar auf deutsch: http://wiki.freepascal.org/DesignGuidelines/de.

Hast du dir die Seite echt angesehen ? Vergleiche das mal mit dem von Borland/... bzw. dem aus dem Delphiforum. Dann wirst du verstehen was ich meine.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Unsaubere Variablennamen

Beitrag von Michl »

:twisted: ...hat doch geklappt. Ich zitiere mal von hier: "Mit Wiki-Prinzip ist gemeint, dass eine Inhalte im Internet gemeinsam erarbeitet werden. Dabei ist es erlaubt und erwünscht, dass eine von einer Person begonnene Seite von anderen überarbeitet und ergänzt wird".

Und nun? :shock:

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Unsaubere Variablennamen

Beitrag von af0815 »

Michl hat geschrieben:Und nun? :shock:

That's life :mrgreen: Genau deswegen ist der Inhalt so
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

compmgmt
Beiträge: 351
Registriert: Mi 25. Nov 2015, 17:06
OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
CPU-Target: i386 + x86_64
Wohnort: in der Nähe von Stuttgart
Kontaktdaten:

Re: Unsaubere Variablennamen

Beitrag von compmgmt »

m.fuchs hat geschrieben:Nö ist es nicht. Dein sl-Prefix verwirrt den Leser nur. Und ist eine redundante Information. In Pascal sind Variablen typisiert, man muss also den Inhaltstyp nicht im Namen codieren.

Braucht man eigentlich nicht extra hinzuschreiben. Bei komplexen Funktionen mit vielen Variablen und vor allem Vergleichen wird es aber deutlich angenehmer, wenn man das später liest.

Code: Alles auswählen

InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
Have fun with this snippet ;)

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Unsaubere Variablennamen

Beitrag von m.fuchs »

compmgmt hat geschrieben:Bei komplexen Funktionen mit vielen Variablen und vor allem Vergleichen wird es aber deutlich angenehmer, wenn man das später liest.

Wenn du komplexe Funktionen mit vielen Variablen hast, läuft eigentlich auch etwas falsch. Der Trick ist ja: kurze Funktionen (<= 20 Zeilen) mit wenig Variablen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: Unsaubere Variablennamen

Beitrag von kupferstecher »

m.fuchs hat geschrieben:Dein sl-Prefix verwirrt den Leser nur.

Das sehe ich auch so. Allerdings bezeichne ich Listen eigentlich immer als solche, z.B. "TriggeredItemsList". In diesem Fall wo es vermutlich eher um einen umgebrochenen Text ging, würde ich ihn "CodeLines" nennen. Das verdeutlicht schon stark das zugrundeliegende Format, was den Code einfach besser lesbar macht, ohne alle Typen von Listen zu kennen/zu unterscheiden.

Ansonsten bei Klassennamen natürlich immer ein vorangestelltes "T";
bei Objektvariablen zumindest dann ein vorangestelltes "f", wenn es ein zugehöriges Property gibt;
bei Übergabeparametern ein vorangestelltes "A", wenn die Bezeichnung recht unspeziefisch ist (AValue);
bei unspeziefischen temporären Variablen ein vorangestelltes "t" oder "tmp"; Wenn es eine temporäre Version einer nicht-temporären Variable ist, dann verwende ich oft eine Abkürzung des Namens, z:B. CodeLns für eine temporäre Kopie von CodeLines

Das sind jedoch meine eigenen Präferenzen~

itjump
Beiträge: 179
Registriert: Do 13. Okt 2016, 18:35
Wohnort: Winnenden

Re: Unsaubere Variablennamen

Beitrag von itjump »

m.fuchs hat geschrieben:
compmgmt hat geschrieben:Bei komplexen Funktionen mit vielen Variablen und vor allem Vergleichen wird es aber deutlich angenehmer, wenn man das später liest.

Wenn du komplexe Funktionen mit vielen Variablen hast, läuft eigentlich auch etwas falsch. Der Trick ist ja: kurze Funktionen (<= 20 Zeilen) mit wenig Variablen.


Sehe ich genauso. Abgesehen davon, dass unsauberen Code viel schlimmer ist, als eine unsauber benannte Variable. Ich für meinen Teil setzte zum Beispiel gerne für Zahlen z1, z2 usw. ein und bei Strings s1, s2 usw. was viele auch schon als unsauber betrachten. Jedoch dokumentiere ich über Kommentare was welche Variable macht und bei Code, den auch andere Lesen müssen benenne ich meine Variablen sinnvoller, sodass jeder gleich verstehen kann, welche Funktion die Variable hat.

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Unsaubere Variablennamen

Beitrag von Mathias »

Was ich noch gerne der Übersicht zu liebe mache, Variablen-Gruppen welche zusammengehören in einen Record verbauen.
Und die meisten Sachen löse ich mit Klassen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Unsaubere Variablennamen

Beitrag von Michl »

itjump hat geschrieben:Abgesehen davon, dass unsauberen Code viel schlimmer ist, als eine unsauber benannte Variable.
Nein, das sind zwei Seiten einer Medaille.

itjump hat geschrieben:Ich für meinen Teil setzte zum Beispiel gerne für Zahlen z1, z2 usw. ein und bei Strings s1, s2 usw. was viele auch schon als unsauber betrachten. Jedoch dokumentiere ich über Kommentare was welche Variable macht
Ich habe sicher auch schon viel verbrochen. Ein "i" (Integer) nehme ich auch gern als Zählervariable, ein "s", wenn nur ein String in einer Methode bearbeitet wird, geht sicher auch, dann hört das für mich seit einiger Zeit aber auch schon auf. Mit den Codetools (wenn man sich einmal an die paar Tastenkombinationen gewöhnt hat) hat man auch keinen wirklichen Geschwindigkeitsverlust beim Coden. Also ich stehe auf dieser Fetisch eines gut handformatierten Codes, mit gut verständlichen Bezeichnern und Methoden möglichst immer ein Stückchen kleiner, als das Editorfenster, sodaß ich diese mit einem mal überblicken kann und nicht scrollen muss.

Just my two cents.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Antworten