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
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#1

AW: Eure besten Quellcode Kommentare...

  Alt 26. Jan 2014, 12:26
FuzzFactor ? einfach genial
Das mag ja für dich ein lustiger Name sein, aber eigentlich ist das nicht nur irgendwie komisch, sondern exakt das, was gemeint ist.
[...]
Es handelt sich also um einen Faktor, der die letzten Stellen der einzelnen Datentypen 'verwischt', sodaß man zwei Werte auf 'Gleichheit' (unscharf!) prüfen kann.
[...]
Das ist mir schon klar, worum es mir aber geht, ist Folgendes: Warum geben Sie die Resolution so "genau" an, nur um dann alle(!) so definierten Werte mit dem FuzzFactor zu multiplizieren?
Was ich sagen will: Warum definieren sie die Werte (z.B. 1E-19 ) so präzise, nur um sie im gleichen Schritt wieder zu "verwischen"? Warum definieren sie die Werte nicht gleich um 1E+3 unschärfer?
Als ich das gelesen habe, hat es im ersten Augenblick auf mich gewirkt wie:
Zitat:
<Programmierer1>: Verdammt, der Vergleich funktioniert nicht. Warum???
<Programmierer 2>: [nach 15min heftigem Kopfkratzen] Ich glaube, wir haben damals(TM) die Vergleichsschwellen zu gering gesetzt... Was sollen wir nur machen...
<Programmierer 1>: Ich hab's: Wir setzen einfach die Werte rauf, dann wird's schon klappen!
<Programmierer 2>: Schon, aber wenn sich irgendwann(TM) wieder was ändert, dann müssen wir wieder alle Werte anpacken...
<Programmierer 1>: Stimmt, hhhhhhhhmmmmmmmm...
<Programmierer 3>: Dann macht's doch einfach so: Nehmt 'ne Konstante und multipliziert alle Schwellen damit. Dann könnt Ihr später einfach diese Konstante anpassen.
<Programmierer 1 + 2>: Geniale Idee, danke <Programmierer3>. Aber, wie groß sollen wir die Konstante machen? 10?
<Programmierer 3> Ach, iwo! Nehmt's doch gleich 1000.
<Programmierer 1+2> Aber ist 1000 nicht irgendwie ein bischen groß?
<Programmierer 3>Merkt doch eh' keiner und dann wird's scho' funktionieren... und hey, wenn später ein Update rauskommt, machen wir den Wert einfach kleiner und tun so, als ob wir durch unendliche Schlauheit plötzlich unseren Compiler um den Faktor 10 besser gemacht hätten.
Disclaimer: Dass es in Wahrheit anders abgelaufen ist, ist mir klar, aber dieser Gedankengang hat sich mir eben in diesem Moment aufgedrängt. Ich will den Leuten bei Emba(undVorläufern) nichts unterstellen


Also nochmal zusammenfassend: Ich finde die Bezeichnung nach wie vor genial; aber auch die Tatsache, dass ein genauerer Wert vorgegeben und gleich darauf verwischt wird, entzieht sich meiner Meinung nach nicht einer gewissen Komik.
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Eure besten Quellcode Kommentare...

  Alt 26. Jan 2014, 13:08
FuzzFactor ? einfach genial
Das mag ja für dich ein lustiger Name sein, aber eigentlich ist das nicht nur irgendwie komisch, sondern exakt das, was gemeint ist.
[...]
Es handelt sich also um einen Faktor, der die letzten Stellen der einzelnen Datentypen 'verwischt', sodaß man zwei Werte auf 'Gleichheit' (unscharf!) prüfen kann.
[...]
Das ist mir schon klar, worum es mir aber geht, ist Folgendes: Warum geben Sie die Resolution so "genau" an, nur um dann alle(!) so definierten Werte mit dem FuzzFactor zu multiplizieren?
Das nennt sich selbsterklärender Code. So ist klar, das die Genauigkeit der einzelnen Datentypen als Grundlage genommen wird. Wenn Du gleich die 10E-16 als Konstante nimmst, weiß doch keiner, wieso? Das müsstest Du dann dazuschreiben. Toll. Aber warum nicht gleich so programmieren, das man gar keine Kommentare benötigt? Das ist ein Programmierparadigma ('Clean Code').
Zitat:
<Programmierer1>: Verdammt, der Vergleich funktioniert nicht. Warum???
Wir sich als 'Programmierer' diese Frage nicht sofort selbst beantworten kann, ist keiner und gehört wieder in die Schule/Ausbildung/Bücherecke.

Der Name ist aber mal selten zutreffend, das stimmt schon.
  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
 
#3

AW: Eure besten Quellcode Kommentare...

  Alt 26. Jan 2014, 13:18
aber auch die Tatsache, dass ein genauerer Wert vorgegeben und gleich darauf verwischt wird, entzieht sich meiner Meinung nach nicht einer gewissen Komik.
Die Zahlen 1E-19, 1E-15 und 1E-7 geben genau den Wert eines Extended, Double oder Single an, der, wenn man ihn von dem Wert 1.0 abzieht, noch ein von 1.0 unterscheidbares Ergebnis liefert. Insofern korrespondieren die Zahlen 19, 15 und 7 mit der Angabe der signifikanten Stellen für die drei Float-Typen in der Delphi Hilfe (abgesehen von dem einem Tippfehler bei Extended 32-Bit, da muss es 19-20 statt 10-20 heißen). Ich finde das schon wesentlich nachvollziehbarer als wenn man gleich die sich durch die Multiplikation ergebenden Werte hinschreiben würde.

Nebenbei wäre es auch wesentlich einfacher und auch sofort nachvollziehbar, wenn man einen anderen FuzzFactor verwenden wollte. Dann würde man nämlich genau diese Konstante ändern und nicht die für jeden einzelnen Float-Typ.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TForm1

Registriert seit: 11. Jan 2014
128 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Eure besten Quellcode Kommentare...

  Alt 23. Feb 2014, 08:46
Ist der schon bei Euch aufgetaucht?
HTML-Code:
             _.-~-.
           7''  Q..\
        _7         (_
      _7  _/    _q.  /
    _7 . ___  /VVvv-'_                                            .
   7/ / /~- \_\\      '-._     .-'                      /       //
  ./ ( /-~-/||'=.__  '::. '-~'' {             ___   /  //     ./{
 V   V-~-~| ||   __''_   ':::.   ''~-~.___.-'' _/  // / {_   /  {  /
  VV/-~-~-|/ \ .'__'. '.    '::                     _ _ _        ''.
  / /~~~~||VVV/ /  \ )  \        _ __ ___   ___ ___(_) | | __ _   .::'
 / (~-~-~\\.-' /    \'   \::::. | '_ ` _ \ / _ \_  / | | |/ _` | :::'
/..\    /..\__/      '     '::: | | | | | | (_) / /| | | | (_| | ::'
vVVv    vVVv                 ': |_| |_| |_|\___/___|_|_|_|\__,_| ''

Hi there, nice to meet you!
Habe ich gerade im HTML-Text auf der Seite von Firefox gesehen.
Der Fehler sitzt immer vor dem Computer...
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.075 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Eure besten Quellcode Kommentare...

  Alt 30. Jul 2015, 13:32
Delphi-Quellcode:
//------------------------------------------------------------------------------
{*Erzeugt analog zur Echtzeitversion für einen Tastendruck auf der
Tastatur in der DEMO-Version eine Massage an das aufrufende
Programm.
@param BoxNr  Boxennummer
@param eSensor Ereignis}

procedure DemoSensor(BoxNr,eSensor:Integer);
...
Gemeint war eine Windows-Message!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Eure besten Quellcode Kommentare...

  Alt 30. Jul 2015, 13:57
Ich halte mir dann das Tablet mal auf meinen verspannten Rücken.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.075 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Eure besten Quellcode Kommentare...

  Alt 12. Aug 2015, 13:29
XE7 - System.Threading - Zeile 3005
Delphi-Quellcode:
procedure TThreadPool.TQueueWorkerThread.ExecuteWorkItem(var Item: IThreadPoolWorkItem);
begin
  try
    try
      Item.ExecuteWork;
    finally
      Item := nil;
    end;
  except
    // ???figure out error handling and exception passing system???
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

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

AW: Eure besten Quellcode Kommentare...

  Alt 12. Aug 2015, 14:12
In XE8 ist das ja bestimmt behoben worden...kostet halt extra.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.201 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Eure besten Quellcode Kommentare...

  Alt 2. Sep 2015, 08:42
unit Soap.OPToSOAPDomConv;

Delphi-Quellcode:
begin
    { Old -D6- Header processing logic - left here simply because....}
    AbortRequest := False;
    HeaderProcessor := FindHeaderProcessor(HeaderNamespace, HeaderName, '');
    if HeaderProcessor <> nil then
      HeaderProcessor.ProcessHeader(HeaderNode, HeaderHandled, AbortRequest)
    else
    begin
      UnhandledNode(Format('%s:%s', [HeaderNamespace, HeaderName]), HeaderNode.XML);
      DefaultProcessHeader(HeaderNode, HeaderHandled, AbortRequest);
    end;
    if AbortRequest then
      raise ESOAPDomConvertError.CreateFmt(SHeaderError, [HeaderNamespace, HeaderName]);
  end;
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 21:40 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