Laden...

Kommentare in Beispielcode bitte!

Erstellt von Bubgar vor 17 Jahren Letzter Beitrag vor 17 Jahren 9.391 Views
B
Bubgar Themenstarter:in
15 Beiträge seit 2006
vor 17 Jahren
Kommentare in Beispielcode bitte!

Hallo leute,
diese Seite ist wirklich sehr gut und die Hilfsbereitschaft scheint ja auch sehr groß zu sein. Nur bitte, wenn ihr eine FAQ oder einen Artikel, oder wie immer ihr das nennt, schreibt, dann bitte kommentiert sie doch genügent. Wenigstens ein paar Hinweise, sonst blickt gerade ein Anfänger gar nicht mehr durch und gibt gleich auf.
Für euch ist das alles klar, aber lasst das Programm mal noch komplexer werden und irgendwann werdet auch ihr ohne Kommentare ziemlich lange brauch um das zu verstehen. Versteht das bitte nicht falsch. Mir ist klar, dass ihr das alles für lau macht und dass das euer Hobby ist. Aber ich will euch nur einen Tipp geben, wie eure Hilfe noch effektiver genutzt werden kann.

Gruß, Bubgar...

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Bubgar,

konkrete Beispiele bitte! So habe ich leider keine Ahnung, was du eigentlich meinst.

herbivore

B
Bubgar Themenstarter:in
15 Beiträge seit 2006
vor 17 Jahren

Naja, zb hier [FAQ] Controls von Thread aktualisieren lassen (Invoke-/TreeView-Beispiel) ist so gut wie keine, oder wenn ich das richtig sehe keine Codezeile kommentiert. Das hast du mir ja als hilfe für meine, eigentlich kleines Problem gezeigt. Aber damit komm ich leider nicht weiter, weil es einfach schon zu komplex ist und dann auch nicht kommentiert.
Aber eigentlich, ich hab mir jetzt nicht alles in der FAQ angesehen, ist fast nirgendwo nen Kommentar in den Quellcodes.

Gruß, Bubgar.. 8)

_
227 Beiträge seit 2006
vor 17 Jahren

Jede Zeile für sich ist doch selbsterklärend?

B
Bubgar Themenstarter:in
15 Beiträge seit 2006
vor 17 Jahren

Original von daniel
Jede Zeile für sich ist doch selbsterklärend?

Naja, ich weiss zwar nicht, was du mit selbsterklärend bezeichnest, aber wie wäre es zb damit??


...
htNode [strBegin] = new TreeNode (strPart);
...

Was macht die Zeile, spez. [strBegin], und wozu braucht man das?? Sowas zb meine ich.

Gruß, Bubga... 8)

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Bubgar,

Was macht die Zeile, spez. [strBegin], und wozu braucht man das??

das steht in Grundlegendes zu Hashtable/Dictionary . Und selbst wenn ich kommentiert hätte, hätte ich nie im Leben das kommentiert, genausowenig, wie ich bei einem Array-Zugriff a [0] kommentiert hätte, dass hier auf das erste Element des Array zugegeriffen wird.

aber lasst das Programm mal noch komplexer werden und irgendwann werdet auch ihr ohne Kommentare ziemlich lange brauch um das zu verstehen.

Das ist kein Argument, weil es ja hier eben gerade nicht um längere Programme geht, sondern naturgemäß um kleinere Codeausschnitte, die zudem noch durch den Text des Beitrags kommentiert werden. Es ist bei leider nicht möglich, die Kommentare so ausführlich zu machen, dass keine Frage offen bleibt.

Dort wo ich längeren Code schreibe, kommentiere ich diesen oft auch, z.B. in [Tutorial] Zeichnen in Windows-Programmen (Paint/OnPaint, PictureBox)

herbivore

B
Bubgar Themenstarter:in
15 Beiträge seit 2006
vor 17 Jahren

das steht in
>
. Und selbst wenn ich kommentiert hätte, hätte ich nie im Leben das kommentiert, genausowenig, wie ich bei einem Array-Zugriff a [0] kommentiert hätte, dass hier auf das erste Element des Array zugegeriffen wird.
.....

Naja gut, das ist mir schon klar, dass du grundlegendes nicht kommentierst. Aber wie ich das verstanden habe, sollte die FAQ ja dazu dienen wie man am besten Threads und Controls benutzt. Und da ist es besser ein ganz einfach Beispiel zu nehmen, als gleich mit Haschtabellen an zu fangen, findest du nicht??

Gruß, Bubgar... 8)

PS: Das sollte auch keine Argument sein, nur Beispiel, damit du/ihr siehst/seht, wie es auf ein Anfänger wirkt. Wenn man so einen Quellcode sieht, der unkommentiert ist.

N
4.644 Beiträge seit 2004
vor 17 Jahren

Dieser Beitrag wurde ja auch nicht direkt für die FAQ geschrieben.

In FAQ verschoben

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Bubgar,

Hashtables sind genauso grundlegend wie ArrayLists oder sollten es zumindest sein.

Das sollte auch keine Argument sein, nur Beispiel, damit du/ihr siehst/seht, wie es auf ein Anfänger wirkt. Wenn man so einen Quellcode sieht, der unkommentiert ist.

Nochmal: der Code ist durch den erläuternden Text des Beitrags kommentiert. Gerade dein Beispiel mit dem [strBegin] zeigt, dass dir Grundlagen fehlen (was keine Kritik sein soll, sondern bei Anfänger ganz normal ist). Im konkreten FAQ-Beispiel geht es um Threads und Threadsynchronisation. Das ist kein aber Anfängerthema sondern fortgeschrittene Programmiertechnik.

herbivore

B
Bubgar Themenstarter:in
15 Beiträge seit 2006
vor 17 Jahren

Na gut, war nur nen Vorschlag....

Bubgar 🙁

6.862 Beiträge seit 2003
vor 17 Jahren

Also ich kann mitfühlen mit dir, dass nen paar Kommentare ganz nützlich sind. Aber kommentieren sollte man höchstens die Logik die hinter dem Beispiel ist. Das ist in den Beiträgen aber meist in Textform vorhanden statt direkt im Code.
Kommentare die die Sprache C# an sich, oder bestimmte Klassen erklären, nützen auch nen Anfänger nichts. Dafür gibts Quellen wie z.B. die MSDN Library.

Baka wa shinanakya naoranai.

Mein XING Profil.

B
Bubgar Themenstarter:in
15 Beiträge seit 2006
vor 17 Jahren

Dank dir talla, für dein Verständnis. 😉
Hier, so was hab ich mir vorgestellt.
[KLASSE]Primzahlen und Integers
Dieser Typ hat es sehr gut kommentiert und obwohl ich nicht so viel Ahnung in C# hab, kann ich doch nachvoll ziehen, was er macht. Damit könnte ich dann versuchen es nach zu programmieren, auch wenn ich es nicht immer sofort verstehe. Das Verständnis kommt sowieso oft erst ein bischen später. So ausführlich, obwohl es doch das beste ist um auch selbst seinen eigenen Quellcode nach Jahren schnell wieder zu verstehen, kommentiere ich meinen Quellcode dann auch nicht.

@herbivore: Sry, aber du wirst es nicht glauben, ich kenne mich mich Hashtabellen aus. Ich studiere Technische Informatik und dort haben mit unter mit Hashtabellen gearbeitet. Hauptsächlich Separate Chaining .. Kollisionsauflösungen, Doublehashing, Lin. Sondierung, ... um ein bischen zu nennen womit wir uns beschäftigt haben. Dies alles haben wir aber mit Java gemacht. Außerdem und das wird dich sicher auch wundern, haben wir uns mit Threads und deren Synchronisation beschäftigt. Wieder aber "nur" Java. In dem Zusammenhang haben wir uns auch mit Semaphoren und Monitore beschäftigt. Alles wieder nur Java. Jetzt, nach genauerem hin sehen, ist klar was dieses strBegin sein soll. Das ist der Key womit in der Hashtabelle ein Platznummer für den Wert in diesem Fall TreeNode (strPart) berechnet wird.
Naja, wie dem auch sei, ich hab in der Schule gelernt, dass man den Quellcode kommentieren sollte. In einer Klausur oder in Hausaufgaben in Info werden manchmal beschreibenden Kommentare vorrausgesetzt. Jeder kann das natürlich so halten wie er es gerne mag. Es war ein Vorschlag. Für mich ist dieses Thema damit abgeschlossen!

Bubgar

6.862 Beiträge seit 2003
vor 17 Jahren

Ehrlich gesagt ist mir dein Beispiel was du geliefert hast viel zu viel Kommentar, da sieht man ja den eigentlichen Code kaum.

  
// it's only a background thread (will be aborted if main threads end)  
thread.IsBackground = true;  
// run with lowest priority (it shall be real background)  
thread.Priority = System.Threading.ThreadPriority.Lowest;  
// start  
thread.Start();  
  

Die Kommentare sind sowas von überflüssig. Warum soll ich im Kommentar nochmal genau das gleiche schreiben wie im Code dasteht? Außerdem englische Kommentare bei teilweise deutschen Variablenbezeichnern etc. - Naja 😉

Zum Teil der eigentlich an Herbivore gerichtet war.
Das Problem das du wohl hattest war doch nen reines Syntaxproblem oder wie soll an das verstehen, wenn du meinst die Konzepte sind bekannt? Und gerade Syntaxprobleme erklärt man doch nicht mit Kommentaren.

Wie gesagt, ich begrüße auch nen paar Kommentare, aber erstens verschlechtern die die Lesbarkeit wenns zuviele werden, und außerdem kostets einfach unnötige Zeit. Und zuviel Zeit ist in professionellen Projekten verlorenes Geld, dann lieber nen paar weniger Kommentar.

Baka wa shinanakya naoranai.

Mein XING Profil.

360 Beiträge seit 2005
vor 17 Jahren

Moin,

Nunja - da kann man geteilter Meinung sein, ob Kommentare überflüssig sind oder nicht. Nicht jeder "spricht" C# fließend - oder gar muttersprachlich - um mal den vergleich zu einer "echten" Sprache zu ziehen.

Es gibt Leute, die können sich in C# gut verständigen; das notwendige Verständnis um im Alltag zu überleben ist vorhanden. Für solche Leute sind spärliche Kommentare in Verbindung mit dem Text ausreichend.

Es gibt aber auch Leute die wollen (ich benutze wieder die echte Sprache als Beispiel) ein Bier bestellen, aber es reicht aber nur für "Ich möchte diesen Teppich nicht kaufen". Für solche Leute muss jede Zeile kommentiert sein, möge sie auch für einen Nutzer der erstgenannten Gruppe als das selbstverständlichste und banalste auf der Welt erscheinen.

Es ist auch nicht jeder in der Lage C# direkt während des Quellcodelesens zu verstehen - manch einer muss den gegebenen Code erst mühsam (wie damals im Lateinunterricht) Wort für Wort und Wendung für Wendung übersetzen - auch diesen Leuten erleichtern viele Kommentare das Verständnis des Codes ungemein.

Mein letztes Argument in dieser "Pro-Kommentare-Argumentation" betrifft die Kommentare in Codebeispielen in den FAQ oder den Tutorials. Diese Beiträge werden wohl am meisten von Usern gelesen, die noch keine C#-Experten sind und die sich langsam an ein Thema herantasten.
Vielleicht erschweren viele Kommentare das Lesen des Quellcodes. Ich denke man sollte daher die Kommentare im Code an die Zielgruppe des Beitrags anpassen. Handelt es sich um eine konkrete (vielleicht komplexe) Problemstellung bei der erkennbar ist, dass der Fragende weiß wovon er spricht muss nicht mehr viel kommentiert werden. Ist aber davon auszugehen, dass eben nicht nur Experten, sondern auch "Frischlinge" den Beitrag verwenden so muss denke ich nicht mit Kommentaren gegeizt werden, hier brechen sich Experten und fortgeschrittene Programmierer keinen Zacken aus der Krone mal ein paar Kommentarzeilen zu "überlesen"...

Mir fällt dazu noch eine immer wiederkehrende Szene ein, die sich immer dann abspielt, wenn ich unerfahrenen Computernutzern (ugs. "DAU") Hilfestellungen gebe.
Ich sehe eine Windowsmeldung und klicke sofort auf "OK", weil ich aus dem Kontext erschließen kann, was da jetzt wohl stehen wird, und weiß, dass die Meldung unwichtig ist. Durch meinen Schnellklick ist die Meldung für weniger als eine Sekunde auf dem Bildschirm zu "sehen".
Sofort werde ich vom DAU ausgebremst: "Was stand da gerade? Warum hast du da so schnell auf OK geklickt? Da bin ich jetzt nicht mitgekommen!"
Das zeigt, dass man sich (gerade als erfahrener Anwender) immer wieder bremsen muss und auch scheinbar banale Dinge geduldig erklären - in unserem Fall kommentieren - sollte...

6.862 Beiträge seit 2003
vor 17 Jahren

Klar kann ich deiner Argumentation folgen, aber ich bin immer noch der Meinung das man sich auch totkommentieren kann.

Dass aber fortgeschrittene User manchmal die Probleme der Anfänger nicht mehr verstehen kann ich beipflichten. Je mehr Erfahrung man mit etwas sammelt umso selbstverständlicher wird alles. Da das hier ein Jedermannsforum ist, liegt das Optimum wohl zwischen den Extremen. Dann mal auf die Suche =)

Baka wa shinanakya naoranai.

Mein XING Profil.

N
4.644 Beiträge seit 2004
vor 17 Jahren

Original von Spontifixus
Nunja - da kann man geteilter Meinung sein, ob Kommentare überflüssig sind oder nicht.

Du verallgemeinerst!
Es ging um das gepostete Beispiel. Ich sehe diese Kommentare auch als überflüssig an.

T
512 Beiträge seit 2006
vor 17 Jahren

Original von Spontifixus
Es gibt Leute, die können sich in C# gut verständigen; das notwendige Verständnis um im Alltag zu überleben ist vorhanden. Für solche Leute sind spärliche Kommentare in Verbindung mit dem Text ausreichend.

Es kann auch nicht jedes FAQ für jeden Kentnisstand geeignet sein. Jemand der schon mit dem Syntax von C# Probleme hat auf Threads loszulassen funktioniert einfach nicht.

In nem "Hello World" Beispiel kann man ja gerne jede Zeile kommentieren und auch Syntax von C# erklären. Aber bei Themen wie Threading erreicht der Beispielcode dann so eine (Un-)Dichte, dass die eigentliche Essenz des Beispiels durch Kommentare eher verborgen als veranschaulicht wird.

e.f.q.

Aus Falschem folgt Beliebiges

4.207 Beiträge seit 2003
vor 17 Jahren

Es sollte nicht kommentiert werden, was gemacht wird (das sieht man schließlich am Code, zur Not mit bissle Nachdenken und Nachlesen), sondern es sollte kommentiert werden, warum und wie etwas gemacht wird ...

Sprich, mit welchem Ziel und warum gerade so, und nicht anders ...

Und das fehlt leider oft 😦

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

2.082 Beiträge seit 2005
vor 17 Jahren

Hallo,

jup! Stimme Golo 100%ig zu. Es ist nicht wichtig, was eine Zeile macht, da man das selbst erkennen sollte, sondern warum man diese Methodik verwendet.

Es gibt ja oft mehrere Möglichkeiten, wie man etwas verwirklicht, der Programmierer sollte aber auch wissen, was er da macht, und den anderen vor allem mitteilen, warum er das so macht.

Zu dem eigentlichen Thema: Einige FAQs/Tuts sind ja von Mitgliedern und sofern jemand nicht mit dem schreiben von solchen Dokus Geld verdient, kann er meinetwegen so wenig comments benutzen wie er will. Ist ja schließlich private Zeit die er dafür verwendet und wer 9 Std. und mehr am Tag arbeitet, weiß wie rar Freizeit ist.

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

B
Bubgar Themenstarter:in
15 Beiträge seit 2006
vor 17 Jahren

Original von Golo
Es sollte nicht kommentiert werden, was gemacht wird (das sieht man schließlich am Code, zur Not mit bissle Nachdenken und Nachlesen), sondern es sollte kommentiert werden, warum und wie etwas gemacht wird ...

Sprich, mit welchem Ziel und warum gerade so, und nicht anders ...

Und das fehlt leider oft 😦

DANKE!!!!!!!! 👍 Genau so seh ich das auch und hab ich auch immer so gemeint.
Aber wie dem auch sei, da können mir auch die Freaks unter euch viel erzählen, Kommentare sind und bleiben einfach unentbehrlich. Das seh ich immer wieder, wenn ich alten Quellcode von mir selbst sehe. Wenn er kommentiert ist, dann komme ich schnell wieder rein und kann auch gleich weiter proggen. Ohne Kommentare hab ich schon meine Schwierigkeiten.

Bubgar

//EDIT:
zb: Wenn ich ein Array, Hashtabelle was auch immer erstelle, dann schreib ich so kurz wie möglich hin, was ich damit speichern will und wozu ich es benötige. Ich will jetzt aber nicht sehen, dass

int[] foo = new int[10];

diese Array 10 Integers speichern kann. 😉 Das ist dumm...
Nein, ein guter Kommentar wäre hier zb. hier wird die Kontonummer gespeichert. Als Beispiel. Bitte versteift euch jetzt an dem Beispiel. Wenn man foo in Kontnr umbenennen würde, wäre dieser Kommentar sicher hinfällig. Es sollte aber auch ein zeige, was ich meine.

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Bubgar,

Für mich ist dieses Thema damit abgeschlossen!

tja, so ganz dann scheinbar doch noch nicht.

Aber wie dem auch sei, da können mir auch die Freaks unter euch viel erzählen, Kommentare sind und bleiben einfach unentbehrlich.

Keiner der Freaks hier hat etwas anders behauptet, oder? Es ging nur darum, ob in einem FAQ Beitrag die Kommentare im Quellcode stehen müssen oder im Text stehen dürfen und darum, dass es unmöglich ist, die Kommentare so zu schreiben, dass jeder einzelne Leser genau die richtige Menge und genau die für ihn richtigen Kommentare hat. Der Schreiber muss entscheiden, welche Kommentare er gibt und welche nicht. Das werden dann für den einen Leser zu wenig und für den anderen Leser zu viele Kommentare sein. Wenn du viele Kommentare von mir lesen willst, dann schau dir den Code in Multilevel-Undo/-Redo mit dem Command-Muster an. Also ich gehöre sicher nicht zu den Leuten, die sagen, dass Kommentare überflüssig sind. Ich vertrete aber weiterhin die Meinung, dass Kommentare im Text eines FAQ normalerweise besser aufgehoben sind als im Quelltext und dass man in der FAQ nicht zu viel kommentieren darf, um den eigentlichen Punkt nicht aus dem Auge zu verlieren.

herbivore

B
Bubgar Themenstarter:in
15 Beiträge seit 2006
vor 17 Jahren

Original von herbivore

Für mich ist dieses Thema damit abgeschlossen!
tja, so ganz dann scheinbar doch noch nicht.

Yo, war nur froh, dass mich einer verstanden hat. 😉
Ich wollte ihm dann gleich zustimmen und hab dann gleich nen Beispiel mit gepostet. Ich bin halt keiner, der ruhig da sitzen und nur zu hören/lesen kann. Vielleicht kann ich das irgendwann, aber jetzt noch nicht. 😁

Um es aber noch mal zu sagen: Mir ist klar, dass die leute, die die FAQ, Tuts.... schreiben, das für lau machen. Ich will hier weiss Gott auch keinem was vorschreiben. Meine Intention war, den leute zu sagen, wie wir Anfänger das noch besser verstehen. Wenn diese Info Gurus so etwas schreiben, aber es kein Anfänger versteht oder nur mit Schwierigkeiten, dann hilft das wirklich nicht sehr viel weiter und die Zeit könnten sie dann auch anders nutzen. Nun will ich nicht sagen, wenn ich es nicht verstehe, dann versteht es auch kein anderer Anfänger. Ich weiss aber, dass gute Kommentare mir sehr viel weiterhelfen und ich kann mir vorstellen, dass das anderen DAU's auch so geht. 🙂
Naja, ich glaub, das reicht jetzt wirklich.. Soll es jeder so machen, wie es ihm gefällt. Ich hoffe mal, ich bin bälde nicht mehr auf die Tuts/FAQs angewiesen. 🙂

Bubgar