Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Konstantenlänge (https://www.delphipraxis.net/155175-konstantenlaenge.html)

hanspeter 12. Okt 2010 08:02

Delphi-Version: 7

Konstantenlänge
 
Hallo,

mal eine Formfrage.
Wie lang würdert Ihr eine Konstantebezeichnung machen oder was ist von sehr langen Konstantennamen zu halten?
Ich habe hier ein Programm vorliegen, da ist keine Bezeichnung unter 70 Zeichen. Das alles in groß.
Der Verfasser preist das als superrmoderner Programmierstil. Ich sehe es einfach nur als schlecht lesbar an.

Beispiel:

Delphi-Quellcode:
const
  BENUTZER_EINSTELLUNG_VISUALISIERUNG_PLANUNG_VIRTUELLEAUFTRAEGEMITEINBEZIEHEN = 123;
Gruß
Peter

DeddyH 12. Okt 2010 08:07

AW: Konstantenlänge
 
Nunja, Großschreibung bei Konstanten verwende ich auch, außerdem sollte der Bezeichner auf den Zweck bzw. Inhalt der Konstanten schließen lassen. 70 Zeichen und mehr hingegen halte ich aber für nicht mehr zweckmäßig.

angos 12. Okt 2010 08:09

AW: Konstantenlänge
 
Hi,

und ich gebe dir damit recht. Ich empfinde das persönlich auch als bescheiden lesbar, sobald die Konstante irgendwo im Code, zB einer if-Abfrage, benutzt wird. Lediglich bei der Deklaration ist das schön, weil absolut eindeutig.
Ich denke, dass ich schon Konstanten mit recht langen Namen vergebe, meine "Schmerzgrenze" liegt so bei ca 30Zeichen.

Großschreibung und Unterstriche nutze ich allerdings auch!

Gruß

Blup 12. Okt 2010 08:29

AW: Konstantenlänge
 
Konstanten eines bestimmten Bereichs werden bei mir in jeweils einer Unit zusammengefasst.
Die Namen bischen kürzen und schon ist es lesbar.
Delphi-Quellcode:
unit BENUTZER_EINSTELLUNG_VISUALISIERUNG_PLANUNG;

interface

const
  VIRTUELLE_AUFTRAEGE_EINBEZIEHEN = 123;

HeikoAdams 12. Okt 2010 08:32

AW: Konstantenlänge
 
Was für die Namen von Variablen gilt, sollte auch für Konstanten gelten: möglichst kurz und aussagekräftig

bernau 12. Okt 2010 08:36

AW: Konstantenlänge
 
Ich finde komplette Grossschreibung sehr unleserlich. Ich verwende Grosskleinschreibung ohne Unterstriche.

IchBinEineVariableOderEineKonstante

finde ich besser lesbar als

ICH_BIN_EINE_VARIABLE_ODER_EINE_KONSTANTE

Ist aber letztendlich Geschmacksache. Maximale Länge ist ca. 40 Zeichen.

Grade bei Zahlen, mit denen auch gerechnet wird, halte ich die Bezeichner kurz, weil damit ja auch gerechnet wird. Man stelle sich eine Formel vor, die 5 Variablen mit je einer Länge von je 70 Zeichen hat. Völlig unleserlich.

himitsu 12. Okt 2010 08:36

AW: Konstantenlänge
 
Also im Prinzip ist alles über der halben "Bildschirmbreite" (standardmäßig so 80-120 Zeichen) unleserlich, denn man muß ja bedenken,
daß diese Konstantan auch irgendwo verwendet werden und wenn man nun 2 Konstantan an eine Prozedur übergibt, dann sollten die Einrückung,
Leerzeichen, Prozedurname UND diese Konstanten in eine Zeile passen.

Außerdem haben zu lange Konstantennamen, auch wenn sie "sprechender"/verständlicher und übersichtlicher zu scheinen mögen,
dennoch einen unübersichtlich Beigeschmack.
Delphi-Quellcode:
MeineMachDiesesUndJenesProzedur(DerErsteParameterMitDenEinstellungen, BENUTZER_EINSTELLUNG_VISUALISIERUNG_PLANUNG_VIRTUELLEAUFTRAEGEMITEINBEZIEHEN, BENUTZER_EINSTELLUNG_VISUALISIERUNG_STEUERUNG_VIRTUELLEAUFTRAEGEMITEINBEZIEHEN);
.
Oder sieht hier jemand auf die Schnelle, was hier gemacht wird?
Man stelle sich alles in einer Zeile vor und versuche möglichst schnell den Unterschied zwischen den fast gleich
klingenden Konstanten zu finden, denn je mehr Zeichen, umso weniger fallen kleine Unterschiede auf.
Delphi-Quellcode:
MachDieses(Parameter, VIRT_BEN_PLAN, VIRT_BEN_STRG);
.
Im Notfall kann man bei der Deklaration und/oder in der Dokumentation
eine ausführlichere Beschreibung zur Konstante angeben.

Ansonsten nehm ich persönlich für Typen, Prozeduren, Variablen und Konstanten CamelCase,
jenachdem mit einem passenden Präfix. (für Typen T und passend dazu das P und für Konstanten meist ein c)

Diese ALLES_GROß_MIT_UNTERSTRICH-Variablen nutze ich eigentlich nur bei APIs,
wo diese Konstanten irgendwo dokumentiert sind, um keine doppelten (verwirrenden) Bezeichner zu bekommen.
Denn hier *_VIRTUELLEAUFTRAEGEMITEINBEZIEHEN hab ich immer Probleme dieses
zu lesen und vorallem schnell zu verstehen, da es keine Übergänge gibt.

Sir Rufo 12. Okt 2010 08:38

AW: Konstantenlänge
 
Ansonsten mit ein wenig englisch
Code:
USER_SET_VIS_PLAN_INCLUDEVIRTUALORDER

Luckie 12. Okt 2010 08:57

AW: Konstantenlänge
 
Konstanten schreibe ich grundsätzlich mit Großbuchstaben, damit ich sie von Variablen unterscheiden kann. Und diese langen Bezeichnungen sind eher kontraproduktiv, da sie man nicht mit einem Blick erfassen kann. Und was sollen das für lange Zeilen werden, wenn sie im Code verwendet werden?

nachti1505 12. Okt 2010 09:24

AW: Konstantenlänge
 
Ich halte es mal mit Martin Fowler, welcher meinte:

- Je größer der Scope einer Variablen / Konstanten / Funktion umso aussagekräftiger (und damit einhergehen auch umso länger) sollte der Name sein. -

himitsu 12. Okt 2010 09:33

AW: Konstantenlänge
 
Eigntlich sollte es eher so sein:
aussagekräftig/verständlich und dennoch möglichst kurz und übersichtlich

- je länger etwas ist, umso länger braucht man für das verstehen/erkennen

- sind die Namen nicht aussagekräftig genug, dann weiß man nicht worum es geht
(und müßte eventuell erst irgendwo nachlesen, worum es geht, falls es überhaupt irgendwo erwähnt wurde)

Zitat:

Zitat von Luckie
Und was sollen das für lange Zeilen werden, wenn sie im Code verwendet werden?

siehe mein letzer Post :mrgreen:

Sir Rufo 12. Okt 2010 10:00

AW: Konstantenlänge
 
@himitsu Muss das sein, dass du das Seitenlayout vergewaltigst?
Krieg ich ja Augenkrebs

HeikoAdams 12. Okt 2010 10:23

AW: Konstantenlänge
 
Man kann das ganze auch wie folgt zusammenfassen:
Zitat:

So kurz wie möglich und so lang wie nötig
BTW: Es gab doch seinerzeit von Borland einen Coding Styleguide o.ä. sagt der nicht irgendwas über die Länge von Variablen-/Konstanten-Namen??

himitsu 12. Okt 2010 10:31

AW: Konstantenlänge
 
@Sir Rufo: Ja :stupid:
Man muß es doch ausnutzen, daß jetzt nicht mehr das komplette Seitenöayout geschrottet wird, sondern nur noch einzelne Beitragt. :angle2:

Weißt du wie schwer das war dieses nicht umbrechen zu lassen
und den sonstigen Text dennoch manuell umzubrechen?

Sir Rufo 12. Okt 2010 10:57

AW: Konstantenlänge
 
Auf meinem iPad muss ich hier jetzt aber ständig zoomen.

Bitte nimm da etwas Rücksicht auf mich ... :)

Teekeks 12. Okt 2010 11:02

AW: Konstantenlänge
 
Ich mache es auch wie hier allgemein schon öfter angesprochen wurde:
Ich schreibe Groß und mit _.
Jedoch graust es mich schon, Konstanten zu nutzen, die länger als dieses hier sind:
Delphi-Quellcode:
_PAR_ENTERS_SHORT

BUG 12. Okt 2010 11:58

AW: Konstantenlänge
 
Zitat:

Zitat von Teekeks (Beitrag 1055261)
Jedoch graust es mich schon, Konstanten zu nutzen, die länger als dieses hier sind ...

Nicht umsonst gibt es die Codevervollständigung.

Ich habe nicht den Eindruck, das
Delphi-Quellcode:
const
  BENUTZER_EINSTELLUNG_VISUALISIERUNG_PLANUNG_VIRTUELLEAUFTRAEGEMITEINBEZIEHEN = 123;
besonders sprechend ist. Das ist irgendwie der Namensraum mit in den Konstantennamen geschrieben.

Wie wäre es denn mit einer Unit BenutzerEinstellungVisualisierungPlanung, in der die Konstante VIRTUELLE_AUFTRAEGE_EINBEZIEHEN zu finden ist. In der Unit könnten dann alle Konstanten liegen, die im Moment mit BENUTZER_EINSTELLUNG_VISUALISIERUNG_PLANUNG_ beginnen.

Sollte die Konstante allerdings nur in einer Unit benötigt werden, die sich mit Visualisierung der Planung befasst, dann könnte man sich doch auf BENUTZER_VIRTUELLE_AUFTRAEGE_EINBEZIEHEN einigen.

@Himitsu:
Man muss ja nicht alles in eine Zeile schreiben:
Delphi-Quellcode:
MeineMachDiesesUndJenesProzedur(
    DerErsteParameterMitDenEinstellungen,
    BENUTZER_VIRTUELLE_AUFTRAEGE_EINBEZIEHEN,
    BENUTZER_VIRTUELLE_AUFTRAEGE_EINBEZIEHEN);
Außerdem wäre schon eine Funktion mit mehr als 2 Parametern suboptimal :twisted:

himitsu 12. Okt 2010 12:25

AW: Konstantenlänge
 
Zitat:

Zitat von BUG (Beitrag 1055293)
Man muss ja nicht alles in eine Zeile schreiben:
Delphi-Quellcode:
MeineMachDiesesUndJenesProzedur(
    DerErsteParameterMitDenEinstellungen,
    BENUTZER_VIRTUELLE_AUFTRAEGE_EINBEZIEHEN,
    BENUTZER_VIRTUELLE_AUFTRAEGE_EINBEZIEHEN);

Und schon hast du übersehn, daß es zwei unterschiedliche Konstanten waren.
(das war nicht zweimal die Selbe :mrgreen: )

BUG 12. Okt 2010 12:37

AW: Konstantenlänge
 
Gemein :wall:

Delphi-Quellcode:
MeineMachDiesesUndJenesProzedur(
    DerErsteParameterMitDenEinstellungen,
    BenutzerEinstellungVisualisierungPlanung.VIRTUELLE_AUFTRAEGE_EINBEZIEHEN,
    BenutzerEinstellungVisualisierungSteuerung.VIRTUELLE_AUFTRAEGE_EINBEZIEHEN);
Nagut, besonders toll ist das immer noch nicht :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz