AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Quellcode Kommentieren

Ein Thema von franktron · begonnen am 5. Aug 2014 · letzter Beitrag vom 16. Aug 2014
Antwort Antwort
Seite 2 von 10     12 34     Letzte » 
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Quellcode Kommentieren

  Alt 5. Aug 2014, 12:36
Die Nachteile der Zwangskommentare sind:
* Zeitverschwendung durch Einfügen und Pflegen von Kommentaren die keinen Zusatznutzen bringen
* visuelles Störfeuer - je mehr Zeichen auf dem Bildschirm sind umso mehr Kapazität benötigt das menschliche Gehirn um Wichtiges von Unwichtigem zu trennen
* die Stellen die wirklich mal einen Kommentar haben fallen gar nicht auf weil überall Kommentare stehen
* anstatt darüber nachzudenken wie man die Funktionen sprechender machen könnte verlässt man sich auf nutzlose Kommentare die im Zweifelsfall doch eh falsch sind weil sich Funktionsname und/oder Parameter geändert haben
Visuelles Störfeuer: Ich finde es sehr angenehm, wenn zwischen Proceduren ein "erkennbarer Block" steht, der zwei Proceduren voneinander trennt.
Eine Schnelle Info, wann diese Procedure angelegt wurde finde ich auch sehr gut. Benutze zwar ein Versionscontrolsystem. Aber das würde unnötige klicks benötigen.
Kommentare stehen im Procedure-Header nur, wenn es tatsächlich etwas wichtiges zu beachten gibt.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#12

AW: Quellcode Kommentieren

  Alt 5. Aug 2014, 13:20
Ich finde es sehr angenehm, wenn zwischen Proceduren ein "erkennbarer Block" steht, der zwei Proceduren voneinander trennt.
Da reicht dann aber ein '(****** ... ****)' o.ä. Wenn's denn sein muss (ich finds grauslig).

Wenn man eine Methode kommentieren muss, ist sie zu lang, hat einen falschen Namen oder beides. Nur wenn ich z.B. eine Gesetzesvorlage (oder eine Spec) explizit umsetze, oder eine mathematische Formel/Verfahren etwas komplexeren Ausmaßes, kommt ein kurzer Kommentar rein mit Quelle.

Kommentare sind böse und lügen. Einfach mal 'Clean Code' lesen, dann weiß man, was ich meine. sx2008 hat das meiste ja schon erklärt.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#13

AW: Quellcode Kommentieren

  Alt 5. Aug 2014, 13:36
Kommentar immer da wo's notwendig ist. Z.B. Uppercase,Upcase,Ansiuppercase... sollten mit einem Kommentar versehen werden, damit man die Feinheiten nicht immer nachschlagen muß.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Quellcode Kommentieren

  Alt 5. Aug 2014, 13:47
Ich finde es sehr angenehm, wenn zwischen Proceduren ein "erkennbarer Block" steht, der zwei Proceduren voneinander trennt.
Da reicht dann aber ein '(****** ... ****)' o.ä. Wenn's denn sein muss (ich finds grauslig).

Wenn man eine Methode kommentieren muss, ist sie zu lang, hat einen falschen Namen oder beides. Nur wenn ich z.B. eine Gesetzesvorlage (oder eine Spec) explizit umsetze, oder eine mathematische Formel/Verfahren etwas komplexeren Ausmaßes, kommt ein kurzer Kommentar rein mit Quelle.

Kommentare sind böse und lügen. Einfach mal 'Clean Code' lesen, dann weiß man, was ich meine. sx2008 hat das meiste ja schon erklärt.
Das ist ein sehr weit verbreiteter und sehr alter Irrtum, der einfach zu wiederlegen ist.
Du gehst davon aus, Dein Code sei korrekt und lesbar, und bedürfe darum keines Kommentars. Das sind schon zwei sehr persönliche Ansichten, die meiner Meinung nach nichts bei der Entwicklung zu suchen haben. Wen Kommentare stören, der kann sie gerne wegfalten. Aber in den Code gehören nunmal zumindest Kommentare, die erklären, was zum Teufel der Schöpfer eigentlich mit folgender Methode vor hatte - mindestens. Und wenn der Methodenname einen ganzen Satz ergibt - was nun wirklich nicht der Realität entspicht. Dennoch gehört da ein Kommentar davor, der darlegt, was man da warum tun wollte. Ich habe das gerade erst letzte Woche erlebt, daß ein simpler Zweizeiler überhaupt nicht tat, was man an der Stelle erwartet hätte. Er war schlicht falsch. Wunderschön in sich, ja, denn kein störender Kommentar weit und breit, und die Methode hatte einen ganz toll sprechenden Namen. Aber was da passierte, entsprach so gar keiner Spezifikation und führte im folgenden zu massiven Problemen. Darum: Lieber zu viel Kommentare als zu wenig. Und bitte die Kommentare aktuell halten. Dann ist ja schon die halbe Doku fertig.

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

n/a Beiträge
 
#15

AW: Quellcode Kommentieren

  Alt 5. Aug 2014, 14:04
Du gehst davon aus, Dein Code sei korrekt und lesbar, und bedürfe darum keines Kommentars.
Nein. *Wir* gehen davon aus, das Team. Man muss schon professionell vorgehen, damit 'guter' Code auch gut ist. Und dazu gehört, das man die Scheuklappen abnimmt und den Code im Team reviewt. Ich mecker auch am Code meiner Kollegen rum, wenn die das nicht KISS-technisch und für mich verständlich umgesetzt haben.

Zitat:
Aber in den Code gehören nunmal zumindest Kommentare, die erklären, was zum Teufel der Schöpfer eigentlich mit folgender Methode vor hatte - mindestens.
Wieso? Sie ist doch selbsterklärend. Ich kommentiere doch nicht das offensichtliche. Das *ist* doch gerade die Krankheit.
Zitat:
Und wenn der Methodenname einen ganzen Satz ergibt - was nun wirklich nicht der Realität entspicht.
Dann ist die Methode zu komplex, gehört refaktorisiert und dann passt das auch mit dem Namen.

NIE NIE NIEMALS versuchen, mit Kommentaren den Code einer Methode zu erklären. Entweder ein geschulter Programmierer (kein Newbie, is klar) kann das lesen, oder ich muss mich ransetzen und das lesbar machen. Entweder durch Refaktorisierung oder eben (wer versteht schon die Syderberg-Shnayderman-Transformation im Rotationsgefubbel der 7.Querdimension?) durch einen knappen Kommentar mit Quelle. So halten wir das. Und wir sind alles alte Säcke mit 10-30 Jahren VerzweiflungProgrammiererfahrung.

Wir kommentieren allerdings auch Workarounds um VCL-Bugs, ist klar.

Zitat:
Darum: Lieber zu viel Kommentare als zu wenig. Und bitte die Kommentare aktuell halten. Dann ist ja schon die halbe Doku fertig.
Also 'zuviel' ist genauso falsch wie 'zu wenig'. Gerade richtig ist die Devise. Wenn deine beiden Codezeilen auch durch Refactoring nicht lesbarer werden (ich bezweifle das, aber z.B. bei komischen Formeln ist das so), dann wird erklärt, was das ist. Ansonsten kann ich dir jeden Code so umformulieren, das er verständlich wird (sofern Du programmieren kannst, bei meiner Frau klappt das nicht).

Und 'aktuell' ist die Doku eben per se nicht. Geht nicht, nirgens (außer bei Dir zu hause vielleicht). Weil Zeitdruck. Abgabe. Termin. Feierabend. Nächster Task oder Ticket. Anruf vom Teamleiter. Meeting. Frage vom Newbie oder Oldie. Usw. Wieviel Zeit da ins Land schreitet, die ganzen blödsinnigen, redundanten Kommentare nachzupflegen...Es ist Zeitverschwendung. Sagen zumindest die, mit denen ich bisher zusammengearbeitet habe.

Ich dokumentiere meinen Code jedenfalls nicht, sondern schreibe selbsterklärenden Code. Das ist die beste Kommentierung. Klar, das es auch Blödsinn gibt:

Delphi-Quellcode:
function GibMirDieMehrwertsteuer (einBetrag : TGeld) : TGeld;
Begin
  result := einBetrag * Einkommensteuersatz;
End;
Aber immerhin beinahe instantan ersichtlich, das der Programmierer einen schlechten Tag hatte.

Einzige Ausnahme unserer Regel (Redundanten Kommentar vermeiden): Die API. Auch wenn die Methode heißt 'ConvertRawBytesToHexString', muss eben darüber stehen: 'Converts raw bytes to a hex string'. Und dann klappts auch mit der Doku (weil die dann nämlich leer wäre und da fragt man sich auch? Wieso ist die Doku an dieser Stelle leer? Diese Schlampen!)
Delphi-Quellcode:
// Converts raw bytes to a hex String
// Parameter: inBytes - an Array of bytes to convert
// returns the hex string
function TFoobar.ConvertRawBytesToHexString(inBytes : TByteArray)
Der redundantischste Kommentar der Welt (getoppt nur durch  inc(i); // increase i ), aber (weil API Funktion) notwendig. Sonst nicht. Bei C# bekomme ich dadurch auch gleich meinen Live-Kommentar, wenn ich die Code-Completion anwerfe.


Da es Glaubenssache ist, einigen wir uns darauf, das Du Recht hast und ich auch und jeder sein Zeugs so macht, wie er es für richtig findet. Aber ich hoffe, wir sind uns darin einig, das selbsterklärender Code besser ist als ein Kommentar, der versucht, die durch Meth gestörten Gehirnwindungen des Programmierers zu erklären.

Geändert von Dejan Vu ( 5. Aug 2014 um 14:13 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#16

AW: Quellcode Kommentieren

  Alt 5. Aug 2014, 14:15
Kommentare sind böse und lügen. Einfach mal 'Clean Code' lesen, dann weiß man, was ich meine.
Clean Code (bzw. Robert C Martin) sagt ja nicht, dass alle Kommentare schlecht sind, er nennt auch einige Fälle 'Guter' Kommentare. Auch ich würde keine API / Bibliothek / Komponente schreiben, in der "High-Level" Kommentare zu den öffentlichen Klassen und Methoden fehlen.
Michael Justin
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#17

AW: Quellcode Kommentieren

  Alt 5. Aug 2014, 14:23
Das war sehr plakativ von mir. Ausnahmen (wie erwähnt) bestätigen die Regel.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Quellcode Kommentieren

  Alt 5. Aug 2014, 14:43
Und 'aktuell' ist die Doku eben per se nicht. Geht nicht, nirgens ...
Drum dokumentiere ich auch meinen Code aufgrund der Tatsache, daß der Code die Dokumentierung ist, werden dort eben auch die Interfaces sortiert/gruppiert.

Bei der Implementation hab ich die Sortierung ja aufgegeben, außer da, wo mehrere Funktionen versionsabhängig via Compilerschalter deaktiviert werden, welche dort in einem {$IF} landen, bzw. bei einem älteren größeren Projekt, wo ich die Implementation, der Übersicht wegen, in mehreren Regionen zusammengefasst hatte.


Aber ja, zuviele und vorallem "nutzlose" oder gar verwirrende Kommentare machen nichts besser ... eher das Gegenteil.


Und ich würde versuchen alle Funktionsbeschreibungen ins DocInsight zu legen, welches sich relativ problemlos um neue Felder erweitern lässt, damit man diese Kommentare auch in eine externe Dokumentation übernehmen kann, und vorallm damit sie im HelpInsight verfügbar sind.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 5. Aug 2014 um 14:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Quellcode Kommentieren

  Alt 5. Aug 2014, 15:12
Da es Glaubenssache ist, einigen wir uns darauf, das Du Recht hast und ich auch und jeder sein Zeugs so macht, wie er es für richtig findet. Aber ich hoffe, wir sind uns darin einig, das selbsterklärender Code besser ist als ein Kommentar, der versucht, die durch Meth gestörten Gehirnwindungen des Programmierers zu erklären.
Akzeptiert

Das mit dem Meth muss ich mal bei Gelegenheit ausprobieren (lassen).

Was die aktualität der Doku angeht: Wir müssen unter anderem gemäß ISO 13485 entwickeln, da gibt es kein SW-Release ohne Doku.

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

n/a Beiträge
 
#20

AW: Quellcode Kommentieren

  Alt 5. Aug 2014, 15:53
Das mit dem Meth muss ich mal bei Gelegenheit ausprobieren (lassen).
Drogen und Programmieren passt irgendwie nicht. Entweder es wird viel zu kreativ und bunt, komplett verworren oder absolut krank. Hmm.

Zitat:
ISO 13485 entwickeln, da gibt es kein SW-Release ohne Doku.
Das betrifft doch nur die Doku und keine Quellcode-Kommentare, oder irre ich mich?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz