AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Die "richtige" Sourcecode Formatierung?

Ein Thema von Mavarik · begonnen am 8. Aug 2016 · letzter Beitrag vom 13. Aug 2016
Antwort Antwort
Seite 3 von 10     123 45     Letzte » 
Benutzerbild von Mavarik
Mavarik

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

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 17: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
 
#22

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 18: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 18:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#23

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 18: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 jfheins
jfheins

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

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 18: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 18:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#25

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 18: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.123 Beiträge
 
Delphi 10.3 Rio
 
#26

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 18:20
Sowas macht man ja eigentlich nur, wenn man eigentlich ein ein case-Konstrukt bräuchte, das aber nicht zugelassen ist.
nicht jede if then else ist ein Case ersatz!

Wo sind deine Then's geblieben? und auch noch Tabs... hmm ":="; hmm end : String?

Da habe ich dann auch lieber deutliche Einrückungen (1 Tab = 4 Leerzeichen) damit man die Blöcke direkt sieht.
Immer 2 dann plötzlich 4??? Eher nicht.

Case Ersatz... (Wenn überhaupt)

Delphi-Quellcode:
start, end: string;

if (SpecificRegex.IsMatch(Event.Time))
  then begin
         match := SpecificRegex.Match(Event.Time);
         start := match[0];
         end := match[1];
       end
  else
if (RegexA.IsMatch(Event.Time))
  then begin
         start := '8:00';
         end := '10:00';
       end
  else
if (RegexB.IsMatch(Event.Time))
  then begin
         start := '9:00';
         end := '12:00';
       end
  else
if (RegexC.IsMatch(Event.Time))
  then begin
         start := '12:00';
         end := '15:00';
       end
  else
if (RegexD.IsMatch(Event.Time))
  then begin
         start := '14:00';
         end := '16:00';
       end
  else begin
         allDayEvent = true;
         start = Event.StartDate;
         end = Event.EndDate.AddDays(1);
       end
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

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

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 18:28
nicht jede if then else ist ein Case ersatz!
Nein, aber diese if then else -Ketten eher schon. Wenn da komplett unzusammenhängende Bedingungen abgefragt werden, dann würde ich da Leerzeilen einfügen zum trennen.

Zitat:
Wo sind deine Then's geblieben? und auch noch Tabs... hmm ":="; hmm end : String?

Immer 2 dann plötzlich 4??? Eher nicht.
Ups, länger nicht mehr Delphi gemacht. Thens habe ich nachgetragen, genauso wie die :=
Sry, die Tabs werden im Forum nicht gut angezeigt. (Tabs vs Spaces würde ich auf später verschieben...) Ich habe sie durch Leerzeichen ersetzt
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 18:29
Habt Ihr euch mal überlegt dass man im Endeffekt ganz andere Probleme hat wenn man anfangen muss 5-fach verschachtelte Bedingungen zu schreiben?

Beiträge wie dieser sind wahrscheinlich der Grund weshalb ich nirgendwo eingeladen werde
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.532 Beiträge
 
Delphi 11 Alexandria
 
#29

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 18:31
Habt Ihr euch mal überlegt dass man im Endeffekt ganz andere Probleme hat wenn man anfangen muss 5-fach verschachtelte Bedingungen zu schreiben?

Beiträge wie dieser sind wahrscheinlich der Grund weshalb ich nirgendwo eingeladen werde
(abgesehen davon finde ich den ganzen Thread irgendwie müßig, jeder hat da seine eigenen Vorlieben).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
bra

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

AW: Die "richtige" Sourcecode Formatierung?

  Alt 9. Aug 2016, 18:31
Beim letzten Beispiel sieht man nur lauter IF's aber die so seltsam eingerückten ELSE vorher gehen komplett verloren. Das nenn ich mal unübersichtlich.

Ich denke über dieses Thema könnte man endlos streiten und nie zu einem Kompromiss finden, jeder hat hier halt seine Vorlieben. Vielleicht sollten wir es dabei auch belassen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz