AGB  ·  Datenschutz  ·  Impressum  







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

Die "richtige" Sourcecode Formatierung?

Ein Thema von Mavarik · begonnen am 8. Aug 2016 · letzter Beitrag vom 13. Aug 2016
Antwort Antwort
Seite 1 von 3  1 23      
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 09:05
oder doch lieber so:

Delphi-Quellcode:
type
  TFoo = class
    private
      Procedure Bla;
      Function. Blub : Integer;
      Procedure SetWert( AValue : Integer )
      Function. GetWert : Integer
      Procedure SetText( Const AValue : String )
      Function. GetText : String;
    public
      Property Wert............ : Integer read GetWert write SetWert;
      Property TestmessageValue : String. read GetText write SetText;
   end
Diese Formatierungen mit Einrückungen sind zwar ganz nett zu lesen, aber immer dann wenn man neue Funktionen oder Properties hinzufügt, die länger sind als das schon vorhandene, fängt man an, alles umzuformatieren und das ist einfach zeitaufreibend und nutzlos. Zumal einem die IDE bei sowas überhaupt nicht unterstützt.

Ich bin der Meinung, es gibt keine "richtige" Formatierung, auch weil jeder ein wenig anders tickt und den Quellcode anders erfasst. Ein Kollege macht im Quellcode z.B. keinerlei Leerzeichen und ich finde das immer grauenvoll zu lesen, er kommt damit prima klar.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.829 Beiträge
 
Delphi 12 Athens
 
#2

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 09:26
Die IDE unterstützt bei so manchem. Aber das Ausrichten der Methodennamen hat sie halt noch nicht drauf.
Manchmal ist es zu viel des Guten, da wird so weit auseinandergezogen, daß man (ich ) sich in der Zeile vertun kann.

Zum Thema "richtige" Formatierung: Freilich bleibt es Einzelkämpfern überlassen, ihren Code nach Gutdünken zu formatieren. Sie können ihn auch mit rosa Blümchen tapezieren. Aber es gibt tatsächlich Formatierungsrichtlinen von Borland...Codegear...Embarcadero (in der Tat haben die sich seit mindestens 8 Jahren nicht verändert, Generics fehlen komplett und allgemeines Entstauben täte gut). Ein Team, in dem es bekanntlich keine Einzelkämpfer gibt, tut gut daran sich an diese Richtlinien zu halten. Es wird IMMER Diskussionen geben, gerade was das Ausrichten von Typnamen oder auch '=' in Konstanten betrifft. Wenn man sich dann auf einen "neutralen" Dritten berufen kann, ist der Käse gegessen.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.750 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 09:45
Wenn man sich dann auf einen "neutralen" Dritten berufen kann, ist der Käse gegessen.
Is klar, ne. Du kennst meine Kollegen nicht.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.829 Beiträge
 
Delphi 12 Athens
 
#4

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 09:48
Wenn man sich dann auf einen "neutralen" Dritten berufen kann, ist der Käse gegessen.
Is klar, ne. Du kennst meine Kollegen nicht.
Das war mit Absicht sehr...einfach formuliert Ich hab ja schließlich auch diesen Kampf schon endlos ausgefochten. Selbst das Berufen auf "neutrale Dritte" hat nichts geholfen. Aber als Tipp, was wirklich hilft: Vor dem nächsten Commit einfach die komplette Unit formatieren lassen. Das ist dann nämlich ein weiterer Beweis für die normative Kraft des Faktischen

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.750 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 09:56
Aber als Tipp, was wirklich hilft: Vor dem nächsten Commit einfach die komplette Unit formatieren lassen. Das ist dann nämlich ein weiterer Beweis für die normative Kraft des Faktischen
Das wird dann im Zweifelsfall schon wieder "korrigiert".
Uli Gerhardt
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.018 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Die "richtige" Sourcecode Formatierung?

  Alt 11. Aug 2016, 18:46
Woher kommt eigentlich dieses lästige und überflüssige A am Anfang von Parametern (z.B. "AValue")?

Im Delphi Style Guide ( http://edn.embarcadero.com/article/10280) ist es nicht zu finden.

Im Delphi Sourcecode - z.B. http://docwiki.embarcadero.com/Libra...ysUtils.Format - wird es nicht verwendet.

Handelt es sich um eine Modeerscheinung?
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.064 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: Die "richtige" Sourcecode Formatierung?

  Alt 11. Aug 2016, 18:56
Im Delphi Source findet man das durchweg an vielen Stellen - wird aber nicht konsequent durchgezogen, aber schau mal in Classes.pas z.B.
Da Delphi nunmal nicht case sensitiv ist, bietet es sich an, Parameter zu prefixen, damit es keine potenziellen Namenskollisionen gibt.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.175 Beiträge
 
Delphi 13 Florence
 
#8

AW: Die "richtige" Sourcecode Formatierung?

  Alt 12. Aug 2016, 02:09
Ich sortiere sie ein wenig, um es übersichtlicher zu gestalten:
Delphi-Quellcode:
uses
  { Standard }
    System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
[...]
  { Eigen }
    Unit_HTTP, Unit_HTTPS, Unit_Modulverarbeitung
  {};
Das mache ich auch so. Meistens als Delphi, 3rd-Party, Common (das sind unsere gemeinsamen Units für alle Projekte) und Project unterteilt. Wir benutzen auch Common als Namespace für diese gemeinsamen Units und einen projektspezifischen für die Units im Projekt. So kann dann eine Unit zum Beispiel heißen Common.Utils.StringTools.pas. Diese liegt dann im Verzeichnis common/utils im Repository. Und darin befindet sich eine gleichnamige Klasse TStringTools.
Interfaces liegen in einem Unterordner Interfaces und heißen dann z.B. Common.Interfaces.Utils.StringTools.pas.

So findet man zu Klassen und Interfaces schnell den Unitnamen und auch das Verzeichnis, in dem die Unit liegt.

Das finde ich sehr viel sinnvoller als ein Unit_ oder ähnliches voranzustellen. Denn dass es eine Unit ist, weiß ich auch so. Durch den Namespace Common weiß ich, dass es eine gemeinsame Unit ist, die nicht in das Projekt eingebunden sein muss um benutzt zu werden. (Die werden bei uns separat kompiliert.)
Ich habe also eine Mehrinformation, was bei Unit_ nicht der Fall ist. (Es sei denn du machst das genauso, nur mit Unit_ und Project_, was dann aber erst recht für Namespaces spräche.)

Vom Untereinanderschreiben halte ich wenig. Entweder sind es so wenige Units, dass man sie eh überblickt, oder es sind (z.B. in einem Datasnap oder FireDAC Datenmodul) so viele, dass sie untereinander geschrieben auch nicht leichter überschaubarer sind.

Dazu kommt, dass Error Insight ja anzeigt, wenn eine Unit fehlt. Leider kommt dazu ein Störrauschen von falschen Meldungen, aber wenn man sich dran gewöhnt hat, lassen sich diese recht gut von echten Meldungen unterscheiden. Wenn es zu viele falsche sind, bringt es natürlich nichts mehr.

Woher kommt eigentlich dieses lästige und überflüssige A am Anfang von Parametern (z.B. "AValue")?
[...]
Im Delphi Sourcecode - z.B. http://docwiki.embarcadero.com/Libra...ysUtils.Format - wird es nicht verwendet.
Das wird im Quelltext der RTL und VCL durchaus häufig verwendet wie Stevie schon sagte, prominentestes Beispiel ist der Konstruktor einer Komponente:
http://docwiki.embarcadero.com/Libra...mponent.Create

Ich benutze das A auch, weil Parameter einer Methode so eindeutige Namen bekommen. Denn Test als Name des Paramaters würde zwar funktionieren, wäre aber sehr unsauber, weil die Property auch so heißt:
Delphi-Quellcode:
type
  TExample = class
  private
    FTest: Integer;
  public
    constructor Create(const ATest: Integer);
    property Test: Integer read FTest write FTest;
  end;

constructor TTest.Create(const ATest: Integer);
begin
  FTest := ATest;
end;
Und daher finde ich es sehr sinnvoll durchweg das A als Prefix zu verwenden.
Sebastian Jänicke
AppCentral

Geändert von jaenicke (12. Aug 2016 um 02:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.829 Beiträge
 
Delphi 12 Athens
 
#9

AW: Die "richtige" Sourcecode Formatierung?

  Alt 12. Aug 2016, 07:21
Woher kommt eigentlich dieses lästige und überflüssige A am Anfang von Parametern (z.B. "AValue")?

Im Delphi Style Guide ( http://edn.embarcadero.com/article/10280) ist es nicht zu finden.

Im Delphi Sourcecode - z.B. http://docwiki.embarcadero.com/Libra...ysUtils.Format - wird es nicht verwendet.

Handelt es sich um eine Modeerscheinung?
Vermutlich kommt das daher, um unsaubere Kapselung und reichlich globale Variablen weiter führen zu können (nicht das Verfechter dieser Notation sowas tun würden, schon gar nicht unsere werten Mitforisten, ich denke aus dieser Not heraus wurde diese Notation geboren, das ist alles). Genauso gibt es ja noch die "kleines L" vor lokale Variablen Fraktion - ummm... li, anyone?. Ich halte es mit einem gesunden Mittelmaß: das "a" für Argument nehme ich gerne mit, das ist auch in den "offiziellen" Delphi Units so. Das "l" verkneif ich mir genauso wie den Typ der Variablen (egal ob infix oder postfix, sonst müsste ich mir bei ii jedesmal Gedanken machen, was nun Name und was Typ ist), Felder von Klassen bekommen wiederum ein "f" vorangestellt, dann weiß ich woran ich bin. Meiner Meinung nach muss ein Bezeichner lesbar sein, dann erübrigt sich auch ihm mitzugeben, daß er lokal ist und welchen Typ er hat. Letzteres erledigt die IDE ja ohnehin schon im Mouseover. Ersteres ergibt sich aus der Kürze der Methode.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.879 Beiträge
 
Delphi 13 Florence
 
#10

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 09:49
Aber es gibt tatsächlich Formatierungsrichtlinen von Borland...Codegear...Embarcadero
Der Vorteil dieses Styles ist einfach, daß sich auch die mitgelieferten Sourcen in der Regel daran orientieren - so wie viele andere Projekte auch. Man fühlt sich dort dann einfach wie zuhause. Jede davon abweichende Regel müsste schon eine sehr gute Begründung mitbringen, die deutlich über ein das ist mein persönlicher Geschmack oder das mache ich schon immer so hinaus geht. Und wenn schon jeder Standard besser ist als kein Standard, dann ist dieser Standard immerhin auch nicht schlechter als jeder andere Standard.

In der Regel steht bei mir der integrierte Formatter auch auf diesen (Default-)Einstellungen. Lediglich die Zeilenlänge setze ich passend zu den heute üblichen Widescreens auf einen höheren Wert. Durch die Kommandozeilenversion lassen sich auch problemlos ältere und fremde Sourcen ohne großen Aufwand anpassen.

Was mir noch fehlt ist eine Möglichkeit, die automatische Formatierung für eine Zeile oder einen Bereich ausser Kraft zu setzen. Es gibt halt immer mal wieder Ausnahmen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming

Geändert von Uwe Raabe ( 9. Aug 2016 um 10:04 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 18:58 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