AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Eure besten Quellcode Kommentare...
Thema durchsuchen
Ansicht
Themen-Optionen

Eure besten Quellcode Kommentare...

Ein Thema von Relicted · begonnen am 20. Jul 2007 · letzter Beitrag vom 1. Okt 2022
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.441 Beiträge
 
Delphi 12 Athens
 
#1

AW: Eure besten Quellcode Kommentare...

  Alt 4. Mär 2019, 12:37
...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 )

Geändert von haentschman ( 4. Mär 2019 um 13:39 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#2

AW: Eure besten Quellcode Kommentare...

  Alt 4. Mär 2019, 14:24
...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 )
Was denn... Nur so kann man sicher gehen dass es auch wirklich AUS ist und nicht etwa auf STANDBY
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
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
 
#3

AW: Eure besten Quellcode Kommentare...

  Alt 5. Mär 2019, 10: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 10:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#4

AW: Eure besten Quellcode Kommentare...

  Alt 5. Mär 2019, 18:46
Da liegt das Problem aber in der Implementierung des Setters:

Delphi-Quellcode:
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
      (* ... *)
    finally
      WriteLn('Ende');
      FDFix.Free;
    end;
    ReadLn;
  except
    on E: Exception do
      WriteLn(E.ClassName, ': ', E.Message);
  end;

end.
Das sollte man eigentlich immer so machen, um derlei Probleme zu vermeiden:

Delphi-Quellcode:
procedure TFDFix.SetActive(const Value: Boolean);
begin
  if Value = FActive then
    Exit
  else
  begin
    FActive := Value;
  try
    WriteLn('Start');
    FDFix := TFDFix.Create;
    try
      (* ... *)
    finally
      WriteLn('Ende');
      FDFix.Free;
    end;
    ReadLn;
  except
    on E: Exception do
      WriteLn(E.ClassName, ': ', E.Message);
  end;
  end;
end.
(Hier im Browser editiert, daher bitte die Einrückungen dazu denken)
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
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
 
#5

AW: Eure besten Quellcode Kommentare...

  Alt 6. Mär 2019, 13:47
Delphi-Quellcode:
procedure TFDFix.SetActive(const Value: Boolean);
begin
  if Value = FActive then
    Exit
  else
  begin
    FActive := Value;
    // ...
  end;
end;
dann bitte aber so:
Delphi-Quellcode:
procedure TFDFix.SetActive(const Value: Boolean);
begin
  if Value <> FActive then
  begin
    FActive := Value;
    // ...
  end;
end;
Borland/CodeGear/Embarcadero machen das auch so:
Ein schönes Beispiel ist TMargins und TPadding:
Delphi-Quellcode:
 // Quelltext gekürzt !!!

  TMarginSize = 0..MaxInt;

  TMargins = class(TPersistent)
  private
    FLeft, FTop, FRight, FBottom: TMarginSize;
    procedure SetMargin(Index: Integer; Value: TMarginSize);
  protected
    procedure Change; virtual;
  published
    property Left: TMarginSize index 0 read FLeft write SetMargin default 3;
    property Top: TMarginSize index 1 read FTop write SetMargin default 3;
    property Right: TMarginSize index 2 read FRight write SetMargin default 3;
    property Bottom: TMarginSize index 3 read FBottom write SetMargin default 3;
  end;

  TPadding = class(TMargins)
  published
    property Left default 0;
    property Top default 0;
    property Right default 0;
    property Bottom default 0;
  end;

procedure TMargins.SetMargin(Index: Integer; Value: TMarginSize);
begin
  case Index of
    0:if Value <> FLeft then
      begin
        FLeft := Value;
        Change;
      end;
    1:if Value <> FTop then
      begin
        FTop := Value;
        Change;
      end;
    2:if Value <> FRight then
      begin
        FRight := Value;
        Change;
      end;
    3:if Value <> FBottom then
      begin
        FBottom := Value;
        Change;
      end;
  end;
end;
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)

Geändert von MaBuSE ( 6. Mär 2019 um 14:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Eure besten Quellcode Kommentare...

  Alt 2. Jul 2019, 08:25
Delphi-Quellcode:
  try
    [... code hier ...]
  except
    // ist mir sowas von egal
  end;
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.813 Beiträge
 
Delphi 12 Athens
 
#7

AW: Eure besten Quellcode Kommentare...

  Alt 2. Jul 2019, 08:31
Delphi-Quellcode:
  try
[... code zum schreiben in eine Log Datei...]
  except
    // Well, what should we do? What is best practice here?
  end;
¯\_(ツ)_/¯

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.284 Beiträge
 
Delphi 12 Athens
 
#8

AW: Eure besten Quellcode Kommentare...

  Alt 2. Jul 2019, 09:47
Jetzt nicht direkt Quelltext-Kommentar, aber dennoch einen Platz in dieser Hall of Shame wert: Microsoft
Zitat:
Wenn Sie die Audioverbesserungen deaktivieren, kann dies die Soundqualität verbessern.
Demnach müsste man ja nur ständig Bleifuß fahren, um besonders sparsam unterwegs zu sein. Geile Sache das...
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.687 Beiträge
 
Delphi 12 Athens
 
#9

AW: Eure besten Quellcode Kommentare...

  Alt 5. Mär 2019, 11:10
Delphi-Quellcode:
if (not Data.FDFix.Active) then
begin
  Data.FDFix.Active := False;
end;
Wer weiß denn schon, ob not True auch wirklich gleich False ist? Der Code ist vermutlich schon für den Einsatz auf einem Quanten-Computer vorbereitet. (Schönen Gruß von Erwin Schrödinger)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.441 Beiträge
 
Delphi 12 Athens
 
#10

AW: Eure besten Quellcode Kommentare...

  Alt 5. Mär 2019, 11:20
Zitat:
Das sollte man aber Kommentieren!!!
...ich meinte nicht das so stehen zu lassen...ich meinte "ohne Worte"
PS: FDFix war eine Query
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 22:51 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