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, 10:55
Ich kann die Logik hinter dieser Formatierung nicht verstehen. Nach dem offiziellen Style sind begin/end auf einer Ebene, Man sieht sofort welches begin zu welchem end gehört.
Welchen Vorteil soll es haben das begin hinter das then zu schreiben?
Ich finde es einfach nur schrecklich unübersichtlich sowas hier zu schreiben, weil hier die else-Teile in dem end/begin total untergehen und man auch wieder nicht sieht, zu welchem begin das end jetzt wieder gehört.

Delphi-Quellcode:
if .. then
begin
  ..
end
else if .. then
begin
  ..
end
else
begin
  ..
end;
Für mich ist das übersichtlicher und genauso logisch, da das if/else und das zugehörige end auf einer Höhe sind.
Delphi-Quellcode:
if .. then begin
  ..
end
else if .. then begin
  ..
end
else begin
  ..
end;
Unter C/Java ist meine Schreibweise sogar die empfohlene (dort halt mit Klammern).
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
733 Beiträge
 
Delphi 12 Athens
 
#2

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 11:23
Delphi-Quellcode:
if .. then begin
  ..
end
else if .. then begin
  ..
end
else begin
  ..
end;
Dem kann ich mich nur anschießen. Ich schreibe es genau so. Außerdem ist für mich das Argument mit der eingesparten Zeile nach wie vor nicht von der Hand zu weisen. Gerade in längeren Blöcken mit vielen Elsen kommt da einiges zusammen.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.157 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 12:25
Außerdem ist für mich das Argument mit der eingesparten Zeile nach wie vor nicht von der Hand zu weisen. Gerade in längeren Blöcken mit vielen Elsen kommt da einiges zusammen.
Zeilen einsparen? Wofür?

Es wird Dir zu lang... Mach ne procedure draus...

Quelltext ohne Leerzeile kann ich gar nicht lesen...

Vor und nach jedem if/while/for/repeat kommt auf jeden Fall eine Leerzeile. Es sei den es steht ein Begin davor...

Genauso gibt es niemals zwei Anweisung oder Zuweisung in einer Zeile.

Funktionen die keinen Parameter haben werden mit Foo(); geschrieben... Damit ich sofort sehe, dass es keine Variable ist, sondern ein Call...

Sir Rufo hat da noch eine ganz besondere Konstruktion für If's mit langen and und or Teilen, die auch die Lesbarkeit verbessert...

Delphi-Quellcode:
procedure TForm1.SpeedButton1Click( Sender: TObject );
var
  lRateThisApp: IFDKRateThisAppService;
begin
  if true
  {} and TPlatformServices.Current.SupportsPlatformService( IFDKRateThisAppService, lRateThisApp )
  {} and lRateThisApp.ShowRateDialogIfNeeded( )
  then
    Log( 'Dialog angezeigt' );
end;
Einfach die Bedingungen bei allen {} durch gehen und schon ist klar worum es geht...

Mavarik
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 15:26
Ich finde es einfach nur schrecklich unübersichtlich sowas hier zu schreiben, weil hier die else-Teile in dem end/begin total untergehen und man auch wieder nicht sieht, zu welchem begin das end jetzt wieder gehört.

Delphi-Quellcode:
if .. then
begin
  ..
end
else if .. then
begin
  ..
end
else
begin
  ..
end;
Dafür gibt es aber doch das Einrücken, so wie das Beispiel ist würde man das doch nicht machen.
Mit Einrücken wird dann doch klar welches begin/end zusammen gehört.

Delphi-Quellcode:
if .. then
  begin
  ..
  end
else if .. then
  begin
  ..
  end
else
  begin
  ..
  end;
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 16:24
Dafür gibt es aber doch das Einrücken, so wie das Beispiel ist würde man das doch nicht machen.
Mit Einrücken wird dann doch klar welches begin/end zusammen gehört.
Das find ich mindestens genauso schlimm wie das begin hinter das then zu schreiben. Vielleicht sogar ein Stück schlimmer
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.309 Beiträge
 
Delphi 12 Athens
 
#6

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 17:05
Ich liebe solche Threads

Hier ist mein Beitrag zu den If then else

Delphi-Quellcode:
  
  If bla then
    TuWas;

  If bla then
    TuWas
  else
    TuWasAnderes;

  If bla then
    begin
      TuWas;
      TuNochWas;
    end
  else
    begin
      TuWasAnderes;
      TuNochWasAnderes;
    end;

  If bla then
    begin
      TuWas;
    end
  else
    If blabla then
      begin
        TuNochWas;
      end;
Eine Zeile, die mit "if" beginnt, hört immer mit "then" auf.

"Darunter" kommt die auszuführende Funktion. Natürlich eingerückt.

Das gilt auch für das Begin und End, die auf eine ebene gehören.

Bei verschachtelten Ifs finde ich, ist eine Einrückung des nächsten If zwingend notwendig, damit ich auf einen Blick sehe, dass es eine Verschachtelung ist.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.309 Beiträge
 
Delphi 12 Athens
 
#7

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 17:14
Auch wenn solche Threads sich wiederholen. Etwas kann man immer mitnehmen.

Durch solche Threads habe ich für mich das "Exit" entdeckt. Gibt's natürlich schon länger und habe ich bisher immer als "bah" angesehen. Beim näheren Hinsehen kann man das aber sehr sinnvoll als ersatz für die If-Verschachtelung verwenden.

Statt

Delphi-Quellcode:
  if bla then
    Result = 3
  else
    if blabla then
      Result = 5
    else
      if Blub then
        Result = 8
      else
        Result = 10
Finde ich folgendes besser lesbar

Delphi-Quellcode:
  if bla then
    Exit(3);
  if blabla then
    Exit(5);
  if Blub then
    Exit(8);
  Result = 10
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.157 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 16:48
Delphi-Quellcode:
if .. then
  begin
  ..
  end
else if .. then
  begin
  ..
  end
else
  begin
  ..
  end;
Gruselig...Codesumpf nenne ich das...

Delphi-Quellcode:
if ..
  then begin
        ..
       end
  else if ..
         then begin
               ..
              end
         else begin
               ..
              end;
Und schon is klar was wohin gehört...

ggf.

Delphi-Quellcode:
if ..
  then begin
        ..
       end
  else begin
         if ..
           then begin
                 ..
                end
           else begin
                 ..
                end;
       end;
So würde ich es machen...

Mavarik
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#9

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 17:03
Delphi-Quellcode:
if ..
  then begin
        ..
       end
  else begin
         if ..
           then begin
                 ..
                end
           else begin
                 ..
                end;
       end;

... mache ich bzgl. Struktur genauso, nur etwas kompakter und nicht so "raumgreifend" in die Breite

Delphi-Quellcode:
if (..) then begin
  ..
end else begin
  if (..) then begin
    ..
  end else begin
    ..
  end;
end;
und zumindest in CNpack und auch aktuell integriertem Castalia sieht das sogar sehr sauber aus

Geändert von mensch72 ( 9. Aug 2016 um 17:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#10

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 17:09

So würde ich es machen...

Mavarik
Schrecklich

Ich würde das hier befürworten:
Delphi-Quellcode:
if .. then
begin
  ..
end
else if .. then
begin
  ..
end
else
begin
  ..
end;
Sowas macht man ja eigentlich nur, wenn man eigentlich ein ein case-Konstrukt bräuchte, das aber nicht zugelassen ist. (Ausdruck zur Compilezeit variabel oder so...)
Insofern finde ich es sinnvoll, das auch optisch analog zu gestalten. Logisch ist das auch nur eine "Unterebene", da nur einer der Subblöcke ausgeführt wird.

Wenn man da jeden Subblock weiter einrückt, hat man ja schnell ewig lange Zeilen.

Zur Praxisrelevanz ein (delphisiertes) Codezitat:
Delphi-Quellcode:
startTime, endTime: string;

if (SpecificRegex.IsMatch(Event.Time)) then
begin
    match := SpecificRegex.Match(Event.Time);
    startTime := match[0];
    endTime := match[1];
end
else if (RegexA.IsMatch(Event.Time)) then
begin
    startTime := '8:00';
    endTime := '10:00';
end
else if (RegexB.IsMatch(Event.Time)) then
begin
    startTime := '9:00';
    endTime := '12:00';
end
else if (RegexC.IsMatch(Event.Time)) then
begin
    startTime := '12:00';
    endTime := '15:00';
end
else if (RegexD.IsMatch(Event.Time)) then
begin
    startTime := '14:00';
    endTime := '16:00';
end
else
begin
    allDayEvent := true;
    startTime := Event.startTimeDate;
    endTime := Event.EndDate.AddDays(1);
end
Da habe ich dann auch lieber deutliche Einrückungen (1 Tab = 4 Leerzeichen) damit man die Blöcke direkt sieht. Würde man dann allein für das begin eine eigene Einrückungsebene einziehen, vergeudet man ja die Hälfte des Platzes...
Ich würde daher aus
Delphi-Quellcode:
if bla then
  begin
    TuWas;
  end
das machen:
Delphi-Quellcode:
if bla then
begin
    TuWas;
end
Dann kann man auch (etwas leichter) links am Rand 'runtergucken um das nächste end zu sehen.

Geändert von jfheins ( 9. Aug 2016 um 17:24 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 04:40 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