Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#45

Re: guter stil????

  Alt 28. Mär 2006, 09:40
Zitat:
Und irgendwie finde ich meine Version übersichtlicher, als eure ._.
Delphi-Quellcode:
Delphi-Quellcode:   zusammenfalten | markieren   
// MEINE
If ... Then Begin
  ...;
End Else If ... Then Begin
  ...;
End Else if ... Then Begin
  ...;
End Else Begin
End;

// das Andere
if ... then
begin
  ...;
end else
  if ... then
  begin
    ...;
  end else
    if ... then
    begin
      ...;
    end else
    begin
    end;
Und ja, ich mache manchmal immernoch mehrere Befehle in eine Zeile, wenn es logisch zusammengehört und so auch noch übersichtlicher ist
Sorry aber das ist Spaghetti Code. Due zerstörst damit die visuelle Kommunikation mit dem Leser.
Im zweiten, wesentlich besseren beispiel kann man sehr schön und deutlich erkennen das es 4 sequientielle Abhänigkeiten gibt. Der 4'te Source block wird nur ausgeführt wenn der 3'te UND 2'te UND 1'te Sourceblock NICHT ausgeführt werden. Formal also if not (Block1 and Block2 and Block3) then Block4.

Das ist im ersten Beipiel definitiv nicht visuell zu erkennen. Dieser Beispiel könnte auch eine CASE Anweisung darstellen. Also eine Auswahl von 4 Möglichkeiten bei der immer 1 Möglichkeit mit gleichhoher Wahrscheinlichkeit wie die anderen 3 zutreffen können.

Zudem: syntaktische Sprachbezeichner schreibt man immer klein und da wir nicht in Deutsch programmieren gelten auch nicht die deutschen Rechtschreibregeln

Desweiteren ist eine spätere Veränderung der Verschachtelungen sehr einfach möglich. Gesetzt den fall das man im 2'ten Block noch eineiges an Precomputing reinbauen möchte, also gemeinsamme Variablen initialisieren möchte dann sieht das so aus:

Delphi-Quellcode:
if ... then
begin
  ...;
end else
  if ... then
  begin
    ...;
  end else
  begin
    Variable := XYZ;
    if ... then
    begin
      ...;
    end else
    begin
    end;   
  end;
Die gesamtstruktur bleibt erhalten, was auch logisch ist da das objige Konstrukt nur ein reduzierte Kurzform der vollständigen Systax ist:

Delphi-Quellcode:
if ... then
begin
  ...;
end else
begin
  if ... then
  begin
    ...;
  end else
  begin
    if ... then
    begin
      ...;
    end else
    begin
    end;   
  end;
end;
Die Kurzschreibweise ist also eine reine Reduktion von begin end blöcken per Löschen von Zeilen. Eine Expansion einer Kurzschreibweise sollte nur durch einfügen von begin end Blöcken wieder auf die offiziell richtige Schreibweise zurückführen (mit Außnahmen wie immer )

Gruß Hagen
  Mit Zitat antworten Zitat