Einzelnen Beitrag anzeigen

Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#447

AW: Eure besten Quellcode Kommentare...

  Alt 5. Mär 2019, 11:42
...da ist jeder Kommentar unötig.

In dem aktuellen Projekt gefunden:
Delphi-Quellcode:
if (not Data.FDFix.Active) then
begin
  Data.FDFix.Active := False;
end;
(Namen zum Schutz des Verursachers geändert )
Das sollte man aber Kommentieren!!!
Schau die das Beispiel mal an. Ok ist etwas konstruiert, aber so was in der Art habe ich leider schon gesehen.
Nur wenn Active False ist und nochmal False gesetzt wird, passiert was. Du entfernst bei einem Refactoring diese Zeilen und in der Produktion beim Kunden knallts.
Aus diesem Grund sollte so was kommentiert werden !!!.



Delphi-Quellcode:
program Data;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils;

type
  TFDFix = class
  private
    FActive: Boolean;
    procedure SetActive(const Value: Boolean);
  published
    property Active: Boolean read FActive write SetActive;
  end;

var
  FDFix: TFDFix;
  { FDFix }

procedure TFDFix.SetActive(const Value: Boolean);
begin
  if Value = FActive then
    WriteLn('Erwarte das Unerwartete ;)') // In dieser Zeile könnte z.B. etwas wichtiges gemacht werden, was einen Fehler verhindert.
  else
    FActive := Value;
end;

begin
  try
    WriteLn('Start');
    FDFix := TFDFix.Create;
    try
      WriteLn('1: Data.FDFix.Active := True;');
      Data.FDFix.Active := True; // hier passiert nix
      if (not Data.FDFix.Active) then
      begin
        WriteLn('2: Data.FDFix.Active := False;');
        Data.FDFix.Active := False; // das wird ja nie aufgerufen
      end;
      WriteLn('3: Data.FDFix.Active := False;');
      Data.FDFix.Active := False; // hier passiert nix
      if (not Data.FDFix.Active) then
      begin
        WriteLn('4: Data.FDFix.Active := False;');
        Data.FDFix.Active := False; // ups
      end;
    finally
      WriteLn('Ende');
      FDFix.Free;
    end;
    ReadLn;
  except
    on E: Exception do
      WriteLn(E.ClassName, ': ', E.Message);
  end;

end.
Ach ja das Programm bringt folgende Ausgabe:
Code:
Start
1: Data.FDFix.Active := True;
3: Data.FDFix.Active := False;
4: Data.FDFix.Active := False;
Erwarte das Unerwartete ;)
Ende
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)

Geändert von MaBuSE ( 5. Mär 2019 um 11:48 Uhr)
  Mit Zitat antworten Zitat