Unsaubere Variablennamen

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.

Unsaubere Variablennamen

Beitragvon m.fuchs » 4. Mai 2017, 22:18 Unsaubere Variablennamen

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
m.fuchs
 
Beiträge: 1590
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.6, FPC 3.0) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon pluto » 4. Mai 2017, 22:47 Re: Unsaubere Variablennamen

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
Aktuelles Projekt: PlutoArduino
pluto
 
Beiträge: 6445
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 17.1 Rebecca | 
Nach oben

Beitragvon af0815 » 5. Mai 2017, 05:38 Re: Unsaubere Variablennamen

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).
af0815
 
Beiträge: 3153
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon Michl » 5. Mai 2017, 06:20 Re: Unsaubere Variablennamen

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; 
Michl
 
Beiträge: 2123
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon af0815 » 5. Mai 2017, 07:42 Re: Unsaubere Variablennamen

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).
af0815
 
Beiträge: 3153
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon Michl » 5. Mai 2017, 08:01 Re: Unsaubere Variablennamen

: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; 
Michl
 
Beiträge: 2123
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon af0815 » 5. Mai 2017, 15:28 Re: Unsaubere Variablennamen

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).
af0815
 
Beiträge: 3153
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon compmgmt » 5. Mai 2017, 19:42 Re: Unsaubere Variablennamen

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.
Signatur.exe hat eine Zugriffsverletzung ausgelöst und muss beendet werden
compmgmt
 
Beiträge: 265
Registriert: 25. Nov 2015, 17:06
Wohnort: in der Nähe von Stuttgart
OS, Lazarus, FPC: Win 10 Pro + Linux Manjaro 17.0.2 | Lazarus 1.6.4 | FPC 3.0.2 | 
CPU-Target: i386 + x86_64
Nach oben

Beitragvon m.fuchs » 6. Mai 2017, 07:36 Re: Unsaubere Variablennamen

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
m.fuchs
 
Beiträge: 1590
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.6, FPC 3.0) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon kupferstecher » 6. Mai 2017, 08:27 Re: Unsaubere Variablennamen

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~
kupferstecher
 
Beiträge: 25
Registriert: 17. Nov 2016, 11:52

Beitragvon itjump » 6. Mai 2017, 08:28 Re: Unsaubere Variablennamen

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.
Dieses Forum hier ist Dreck
itjump
 
Beiträge: 179
Registriert: 13. Okt 2016, 17:35
Wohnort: Winnenden

Beitragvon Mathias » 6. Mai 2017, 16:42 Re: Unsaubere Variablennamen

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 gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 2819
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Michl » 6. Mai 2017, 21:30 Re: Unsaubere Variablennamen

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; 
Michl
 
Beiträge: 2123
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

• Themenende •

Zurück zu Programmierung



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried