AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

A vor Variablen

Ein Thema von Bladefire · begonnen am 10. Jul 2014 · letzter Beitrag vom 15. Jul 2014
Antwort Antwort
Seite 1 von 2  1 2      
Dejan Vu
(Gast)

n/a Beiträge
 
#1

AW: A vor Variablen

  Alt 10. Jul 2014, 20:20
In Zeiten einer modernen IDE, die mir über ein Rollover sagt, wo ein Bezeichner herkommt, kann man eigentlich komplett drauf verzichten, über Präfixe die Herkunft zu kodieren. Und da wir uns -zumindest in modernen Programmiersprachen- auch von der ungarischen Notation und Ähnlichem verabschiedet haben, kann man auch langsam den Rest in Angriff nehmen. Allerdings sind einige Präfixe und Konventionen sehr praktisch: ein 'f' für ein Feld z.B. Dann ist der backing store (das Feld) der Property 'Schießmichtot' immer 'fSchießmichtot' (oder 'F'?) und das ist dann einfach praktisch. Oder das 'I' für ein Interface, dann implementiert die Klasse 'Foobar' im Allgemeinen das Interface 'IFoobar'.

Bezüglich des 'A' habe ich auch Code gesehen, der das 'a' wie ein englisches 'ein' verwendet: Wenn man die Deklaration im Englischen liest: Procedure Save(aCustomer) steht dort ja 'Save a customer'. In in der Konsequenz wäre dann Procedure Summarize(anArgument) grammatikalisch korrekt. Im Kontext von Clean Code, wo (beinahe) alles nur um Lesbarkeit geht, wird auch diskutiert, ob man nicht lieber Procedure Save(theCustomer) verwenden sollte. Blöd ist das nicht. Sinnvoll auch imho nicht, aber wenigstens nicht hirnlos.

Eins noch: Jeder macht es, wie er will, nur eins ist wichtig: Im Team machen es alle gleich.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: A vor Variablen

  Alt 11. Jul 2014, 01:56
Diese Präfixe sind, zumindest in Delphi/Pascal, dem Umstand geschuldet, dass nicht zwischen Groß- und Kleinschreibung unterschieden wird. Unter Java und C# gilt meistens: Felder, Klassen und Methoden groß schreiben, Parameter und lokale Variablen klein. In Delphi heissen diese einbuchstabigen Präfixe meistens:

T: Type
I: Interface
L: Lokale Variable
F: Feld einer Klasse
A: Argument einer Methode, dass es dem Englischen Artikel entspricht ist eher glückliche Fügung
Methoden selbst bekommen meistens kein Präfix.

Alle Buchstaben werden mal groß und mal klein benutzt. Ich tendiere alles groß zu nutzen, ausser das "a" (weil ähnlich wie lokale Variablen in der Methode vom Scope her) und dem "l", um dem Kleinschreiben lokaler Variablen in anderen Sprachen zu entsprechen.

Beispiel:
Delphi-Quellcode:
type
  TSomething = class(TObject)
  private
    FSomeValue: Integer;
    procedure SetSomeValue(aValue: Integer);
  public
    property SomeValue: Integer read FSomeValue write SetSomeValue;
  end;

implementation

procedure TSomething.SetSomeValue(aValue: Integer);
var
  lCondition: Boolean;
begin
  lCondition := aValue > FSomeOtherValue;
  if lCondition then
    FSomeValue := aValue;
end;
Dadurch ist ohne viel im Code herumzusuchen recht schnell deutlich, welche Variable wo deklariert ist, und wo in etwa ihre Werte her kommen müssten.
Das ist aber alles nur Konvention unter Programmierern. Müssen muss das keiner so machen, es hat sich lediglich als Quasi-Standard etabliert. Auswirkungen auf den Code an sich hat das nicht, "nur" auf die Lesbar-, Wartbar- und Eindeutigkeit.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium (11. Jul 2014 um 01:59 Uhr)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: A vor Variablen

  Alt 11. Jul 2014, 07:33
...A: Argument einer Methode, dass es dem Englischen Artikel entspricht ist eher glückliche Fügung
Sehe ich auch so.. aber es ist dann weitergesponnen worden.

'L' und 'A' würde ich sogar noch streichen. 'A' hab ich selber früher verwendet, aber 'L' noch nie und man braucht es nicht: Eine gut geschriebene Methode passt auf eine Bildschirmseite, macht genau eine Sache und ist daher übersichtlich genug, um den Scope komplett darzustellen.
Nja, da man ja bekanntlich Funktionen nicht so groß machen soll, hat man somit die Lokalen und die Parameter immer im Blick und weiß somit wo sie her sind.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.880 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: A vor Variablen

  Alt 11. Jul 2014, 07:35
Schaden tun aber 1 Zeichen Präfixe aber auch nicht
Markus Kinzler
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#5

AW: A vor Variablen

  Alt 11. Jul 2014, 08:29
Schaden tun aber 1 Zeichen Präfixe aber auch nicht
Schaden tun auch 30 Zeichen Präfixe nicht und Bezeichner a la 'i1', 'i99' etc. Der Lesbarkeit dienen sie nicht gerade. Da es bei der Programmierung jedoch um Lesbarkeit einerseits als auch um das *Weglassen* überflüssiger Dinge geht, sollte man das hier vielleicht auch beherzigen.

Ich lese gerne Code wie ein Buch:
1. 'if lCustomer.HasOpenInvoices'
vs.
2. 'if theCustomer.HasOpenInvoices'
vs.
3. 'if Customer.HasOpenInvoices'

Was liest sich flüssiger? 1000x 'l' im Geiste zu lesen ist 1000x ein geistiger Schluckauf. Muss nicht sein. Ob man nun 'the' hinzupackt, um es noch lesbarer zu machen, sei mal jedem selbst überlassen: Clean-Code-Jünger machen das (ein paar), ich nicht. Ich lasse auch 'Self' weg, andere bestehen darauf.

Übrigens wäre 'Self.Field' ein Ersatz für 'fField'
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#6

AW: A vor Variablen

  Alt 11. Jul 2014, 08:54
Das "l" für lokale Variablen spare ich mir auch, aber pscht (Das "a" in Argumenten nehme ich aber ganz gerne, besonders wegen der Englisch-Artikel-Lesbarkeit.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.212 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: A vor Variablen

  Alt 11. Jul 2014, 09:07
Ich habe mich mit Präfixen als letzte Rettung dafür, dass die Delphi-IDE so gut wie nichts formatieren kann auch nie anfreunden können.

Unter Eclipse habe ich immer ein LSD-Feuerwerk an Farben abgebrannt- Abstrakte Methode? Parameter? Lokale Variable? Feld? Klassenvariable? Ist der Typ ein Interface? Eine Implementierung? Alles konnte man anhand der Farben (und anderem) schneller sehen als man zwei Buchstaben lesen kann.

Mit der RAD Studio IDE bin ich größtenteils ganz zufrieden, aber Code Highlighting ist ja schon fast schlechter als Notepad++.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.553 Beiträge
 
Delphi 12 Athens
 
#8

AW: A vor Variablen

  Alt 11. Jul 2014, 09:31
aField, aClass, aGlobalVar ... da braucht man ja nur noch das A und es passt überall davor.

Und das mit den Farben geht im Delphi auch ... man braucht nur das passende Addon.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
302 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: A vor Variablen

  Alt 11. Jul 2014, 07:52
nun gewöhne ich mir - die mühsam angewöhnte - ungarische Notation ab ... und dann das!
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.054 Beiträge
 
Delphi 12 Athens
 
#10

AW: A vor Variablen

  Alt 11. Jul 2014, 14:29
Und da wir uns -zumindest in modernen Programmiersprachen- auch von der ungarischen Notation und Ähnlichem verabschiedet haben
Ich benutze diese für visuelle Komponenten. Denn das ist ungemein praktisch, weil man nicht auf das Formular schauen muss um Komponenten zu finden.
Dass andere das nicht machen, sieht man an Fragen wie nach der parallelen Ansicht von Code und Quelltext...

So muss ich nur schreiben pnl, wenn ich ein Panel suche, und dann schauen welche es gibt. Wenn die dann ordentlich benannt sind, findet man das richtige Panel dann sofort. Wenn ich aber nicht weiß wie der Begriff anfängt, weil das nicht am Typ der Komponente festgemacht ist, muss ich viel länger suchen (oder eben zum Formular schalten).
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:36 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