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 4 von 27   « Erste     234 5614     Letzte »    
Benutzerbild von Codehunter
Codehunter

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

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
 
#2

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 Uwe Raabe
Uwe Raabe

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

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.436 Beiträge
 
Delphi 12 Athens
 
#4

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
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 5. Mär 2019, 12:18
PS: FDFix war eine Query
Dann mach doch einfach folgendes draus, wenn Du dich dann besser fühlst.
Delphi-Quellcode:
...
if Data.FDFix.State in [dsInactive, dsOpening] then Data.FDFix.Close;
...
Das sieht doch gleich viel wichtiger aus.
Ist aber faktisch das selbe, da:
Delphi-Quellcode:
...
function TDataSet.GetActive: Boolean;
begin
  Result := not (State in [dsInactive, dsOpening]);
end;
...
procedure TDataSet.Close;
begin
  Active := False;
end;
...
ps: Falls es niemand gemerkt hat, dieser Beitrag ist ironisch gemeint. haentschman hat Recht. Das ist natürlich Blödsinn.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)

Geändert von MaBuSE ( 5. Mär 2019 um 12:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#6

AW: Eure besten Quellcode Kommentare...

  Alt 25. Sep 2022, 18:16
Manmal würde ich mir wünschen, wenn es überhaupt Kommentare oder wenigstens eine halbwegs verständliche Hilfe gäbe,
aber wenn man schon tagelang verzweifelt sucht und von einem Problem ins nächste stolpert,
und dann einen Artikel findet, ala "The Worst API Ever Made",
dann vergeht einem auch das letzte Bissl an Lust.

Wenn ich mal was fand und dort standen Kommentare ... dann stimmten sie garnicht.

Und der einzige gut aussehende Code, als Antwort auf eine Frage ....... der bracht mitten drin ab.



https://caseymuratori.com/blog_0025

Hatte die überschrift erst garnicht gesehn und dachte "geil", endlich mal was, das ausführlich aussieht und wirklich um das geht, was ich suche (nicht um irgendwas anderes, mit dem Wort "Trace")
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (25. Sep 2022 um 18:28 Uhr)
  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
 
#7

AW: Eure besten Quellcode Kommentare...

  Alt 26. Sep 2022, 11:27
Manmal würde ich mir wünschen, wenn es überhaupt Kommentare oder wenigstens eine halbwegs verständliche Hilfe gäbe,
Das kenne ich.

Ich habe auch schon Projekte gesehen, die mehrere Mio Zeilen Quelltext lang sind und per Definition in ca. einer Stunde entstanden sein müssen.
Na ja, bei uns gibt es eine Arbeitsanweisung, dass ca. 10% der Zeit für Dokumentation einzuplanen ist.
Und der/die Entwickler haben sich nicht mal 10 Min Zeit genommen für Doku und Kommentare.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.686 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Eure besten Quellcode Kommentare...

  Alt 26. Sep 2022, 16:12
Besser gar keine Kommentare als falsche oder sinnlose ala
Delphi-Quellcode:
// *******************
// * Prozdur bla *
// *******************
procedure bla;
var
  i: integer; // Schleifenvariable
begin
  // alle Listenelemente durchlaufen
  for i := 0 to Liste.Count -1 do begin
    // Listenelement verarbeiten
    Process(Liste[i]);
  end;
end;
letztere reduzieren die Lesbarkeit ohne irgendwas beizutragen.

Programmierer sollten sich besser auf verständlichen Code (Struktur und Namensgebung) konzentrieren als auf Teufel komm raus Kommentare zu schreiben. Kommentare sollen beschreiben, warum etwas auf eine bestimmte Weise gemacht wird, und das auch nur dann, wenn es nicht offensichtlich ist.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#9

AW: Eure besten Quellcode Kommentare...

  Alt 26. Sep 2022, 16:18
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
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Eure besten Quellcode Kommentare...

  Alt 26. Sep 2022, 16:23
Programmierer sollten sich besser auf verständlichen Code (Struktur und Namensgebung) konzentrieren als auf Teufel komm raus Kommentare zu schreiben. Kommentare sollen beschreiben, warum etwas auf eine bestimmte Weise gemacht wird, und das auch nur dann, wenn es nicht offensichtlich ist.


Zitat von Brian W Kernighan and P. J. Plaugher:
Don't comment bad code - rewrite it.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 27   « Erste     234 5614     Letzte »    

 

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 01:32 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