Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#16

AW: XEx in die Quellcodeformatierung "eingreifen"?

  Alt 4. Jan 2014, 17:59
So erkenne ich schon am IF, ob es 300 Zeilen tiefer noch ein ELSE gibt.
Da würde ich gerne mal ein Beispiel aus deinem Sourcecode sehen.
Wenn du Probleme hast auf einen Blick den Else-Teil zu erfassen, dann liegt das einfach daran dass du zuviel Code im Then-Teil hast.
Oder wenn die If-Bedingung nicht in maximal 2 Zeilen passt dann macht man etwas falsch.
Hier mal ein kleines Beispiel:
Delphi-Quellcode:
begin
  // prüfe ob Land in franz. Überseegebiet liegt
  if country='GPor country='MQor country='REor country='GFor country='PMthen
  begin
    ...
Diese If-Abfrage ist mit einer Zeile noch überschaubar, aber man braucht einen Kommentar um zu verstehen was das Ganze eigentlich soll.
Und hier die verbesserte Variante:
Delphi-Quellcode:
function IsFrenchOversea(const country:string): boolean;
const
   ll : array[0..4] of string = (
   'GP', // Guadelupe
   'MQ', // Martinique
   'RE', // Réunion
   'GF', // French Guyana
   'PM'    // Saint Pierre & Miquelion
   );
begin
   Result := StrIsOneOf(country, ll);
end;

begin
  if IsFrenchOversea(country) then
  begin
    ...
Insgesamt ist es mehr Code aber man braucht keinen Kommentar mehr um zu verstehen was da passiert.
Eigentlich wollte ich ein Beispiel bringen mit über 20 Teilbedingungen aber das war mir zu viel Schreibarbeit.

Also wenn eine If-Bedingung zu komplex oder zu lang wird dann packt man sie in eine Unterfunktion!

Das Gleiche gilt auch für den Then-Teil oder den Else-Teil.
Wenn es zuviele Zeilen werden dann ist das ein Zeichen dass hier etwas faul ist ("der Code stinkt").
Dann heisst es die vielen Codezeilen in Unterfunktion auszulagern.

Bin halt daran seit über 20 Jahren gewöhnt... Und kann daher NIE die Formatierung ausnutzen.
Das bedeutet dass du seit über 20 Jahren zuviel Code in eine Methode, Funktion, Prozedur oder Block packst und deshalb immer Probleme mit der Formatierung hast.
Ich kann nur empfehlen die Ursache abzustellen, dann braucht du auch keinen Codeformatierer.
fork me on Github

Geändert von sx2008 ( 4. Jan 2014 um 18:02 Uhr)
  Mit Zitat antworten Zitat