Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Jul 07, 2025 22:13

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: Source Code Dokumentation
BeitragVerfasst: Fr Nov 13, 2009 15:37 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
D.h. aber, dass du es ausschließt, dass jemand anderes mal eine Änderung an deinem Video-Kodier-Projekt vornimmt. :roll:

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Source Code Dokumentation
BeitragVerfasst: Fr Nov 13, 2009 15:40 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Ziz hat geschrieben:
D.h. aber, dass du es ausschließt, dass jemand anderes mal eine Änderung an deinem Video-Kodier-Projekt vornimmt. :roll:


a) Nein. Denn wie schon gesagt, bisher hatten alle leute die meinen code in die finger bekommen haben nie groß probleme gehabt ihn zu verstehen und ggf. zu ändern.

b) Ja. Denn immerhin verdiene ich dann Geld mit Wartungsarbeiten ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Source Code Dokumentation
BeitragVerfasst: Mo Nov 16, 2009 09:40 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Ich halte es für einen ziemlichen Trugschluss, wenn man annimmt, dass der eigene Code verständlich ist, nur weil man selbst ihn versteht und ein paar andere Leute ihn sich angesehen und verstanden haben.
Es zeugt ja nicht von schlechtem Programmierstil, wenn der Code sich nicht so leichtverständlich wie ein Buch liest, es ist meiner Meinung nach hingegen schlechter Programmierstil, wenn man nicht eine zum Code korresponierende Dokumentation hat, die sich wie ein Buch liest. Ich habe früher oft Projekte in Abteilungen geschrieben, in denen extrem spärlich dokumentiert wurde, und keiner hatte ein Problem damit, weil jeder wusste, worum es geht und jeder alles verstanden hat. Und dann kommt ein neuer hinein und der ist wochenlang mit der Einarbeitung beschäftigt, weil er nur im Quellcode rumspringt und gerade dieser einen Person eine Spardokumentation nicht ausreicht. Und wenn es nur eine Person gibt, die den Quellcode nicht einfach so durchlesen kann, ist der Code nicht selbsterklärend.

In diesem Sinne hat Phobeus wohl Recht, dass nur Funktionen ala
Code:
  1. sayHelloWorld()
selbsterklärend sind...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Source Code Dokumentation
BeitragVerfasst: Mo Nov 16, 2009 10:49 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Shaddow hat geschrieben:
In diesem Sinne hat Phobeus wohl Recht, dass nur Funktionen ala
Code:
  1. sayHelloWorld()
selbsterklärend sind...

Nicht mal zwingend!
Wohin wird "Hello World" denn ausgeben? Ein OpenGL Kontext? StdOut? direkt in eine Datei? Textdatei, Dokument oder Bild?
Und wie sind die Parameter bei den Ausgaben? Textarbe? Größe? Schriftart?
Viele Projekte nutzen ja parallel eine GUI und das Terminal, um Fehler oder Informationen auszugeben. ;-)
Und was für Vorraussetzungen müssen erfüllt sein, damit ich sayHelloWorld(); ausführen kann? Vielleicht will ich Code ja nicht nur grob verstehen oder Kleinigkeiten ändern, sondern was komplett eigenes machen, was aber Teile des alten Codes nutzt. Wo ist sayHelloWorld denn definiert? Was gibt es für Vorraussetzungen an das Projekt? Welche Funktionen müssen vorher (z.B. für das Initilisieren) aufgerufen werden? Und was muss das System leisten für "sayHelloWorld"? Brauch es bestimmt Bibliotheken? Fragen über Fragen...

LG Ziz

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Source Code Dokumentation
BeitragVerfasst: Mo Nov 16, 2009 11:03 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Ziz hat geschrieben:
Shaddow hat geschrieben:
In diesem Sinne hat Phobeus wohl Recht, dass nur Funktionen ala
Code:
  1. sayHelloWorld()
selbsterklärend sind...

Nicht mal zwingend!
Wohin wird "Hello World" denn ausgeben? Ein OpenGL Kontext? StdOut? direkt in eine Datei? Textdatei, Dokument oder Bild?
Und wie sind die Parameter bei den Ausgaben? Textarbe? Größe? Schriftart?
Viele Projekte nutzen ja parallel eine GUI und das Terminal, um Fehler oder Informationen auszugeben. ;-)
Und was für Vorraussetzungen müssen erfüllt sein, damit ich sayHelloWorld(); ausführen kann? Vielleicht will ich Code ja nicht nur grob verstehen oder Kleinigkeiten ändern, sondern was komplett eigenes machen, was aber Teile des alten Codes nutzt. Wo ist sayHelloWorld denn definiert? Was gibt es für Vorraussetzungen an das Projekt? Welche Funktionen müssen vorher (z.B. für das Initilisieren) aufgerufen werden? Und was muss das System leisten für "sayHelloWorld"? Brauch es bestimmt Bibliotheken? Fragen über Fragen...

LG Ziz


Wenn du die fragen alle zu jeder Funktion in einem Hilfe-kommentar erklärst hast du aber am ende nen ordentlich dickes buch vollgeschrieben.. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Source Code Dokumentation
BeitragVerfasst: Mo Nov 16, 2009 13:59 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Naja, wenn man ein Buch gut strukturierst, ergibt es sich von selbst, aber vorallem hat man einen Komplettüberblick und muss nicht im Code rumraten.

Man schreibt ja auch nicht bei JEDER SDL-Funktion, dass man doch bitte SDL_INIT(); vorher aufrufe, aber es wird in der Dokumentation erwähnt, dass dies stets der erste Schritt ist.

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Source Code Dokumentation
BeitragVerfasst: Mo Nov 16, 2009 14:12 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Ziz hat geschrieben:
Naja, wenn man ein Buch gut strukturierst, ergibt es sich von selbst, aber vorallem hat man einen Komplettüberblick und muss nicht im Code rumraten.

Man schreibt ja auch nicht bei JEDER SDL-Funktion, dass man doch bitte SDL_INIT(); vorher aufrufe, aber es wird in der Dokumentation erwähnt, dass dies stets der erste Schritt ist.


Aber solche dinge sind auch was eine sache unübersichtlich macht etc.. auf dinge "Wenn ich das will, muß ich erst das machen" verzichte ich in der Regel immer.. das ist ja auch der sinn von OOP, alles sollte eigenständig funktionieren.

Ich kann jede klasse meiner lib einzeln verwenden ohne den rest anzufassen... will ich ein OBJ laden, nehme ich meine normale CIMesh klasse dafür und kann damit alles tun was ich will.. denn die funktioniert auch ohne das OpenGL oder sonstwas initialisiert wurde. Es gibt auch nicht die gefahr das man ausversehen etwas aufruft was OpenGL vorraussetzt, denn mit OpenGL kommt nur der Renderer in berührung, und der initialisiert alles was er braucht im constructor etc.

Bei mir greifen halt alle dinge ineinander, sind aber trotzdem alle einzeln völlig frei und unlimitiert benutzbar.

Dementsprechend fällt alles an doku á la "Erst das, dann das, dann das" weg.
Und ich weiß wirklich nicht - um beim beispiel zu bleiben - was es bei einer Mesh klasse nicht zu verstehe gibt...

Sie hat ne funktion "loadFromStream/File", und dinge wie get/set Vertex, Normal, Color, Attribute etc.. alles durch die funktions namen selbst erklärend.

Und so handhabe ich es halt bei all meinen klassen etc.

Aya


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Source Code Dokumentation
BeitragVerfasst: Mo Nov 16, 2009 20:28 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Zitat:
Bei mir greifen halt alle dinge ineinander, sind aber trotzdem alle einzeln völlig frei und unlimitiert benutzbar.

Ernsthaft, ich habe einen solchen Code noch nie live gesehen ;) Gerade die Grundbedingungen, die erfüllt sein müssen, damit bestimmte Klassen verfügbar sind ist einer der Herausforderungen bei größeren Projekten... und zwar in einer Größenordnung, dass man ganze Bücher damit gefüllt hat um Konstrukte zu schaffen, die überhaupt erst diese Problematik halbwegs überschaubar machen. Eine Bibliothek, die ihre Schnittstellen nicht nach außen dokumentiert sind schlichtweg für Dritte unbrauchbar. Eine fehlende interne Dokumentation behindert die Weiterentwicklung arg. Ich würde ja gerne mal Code von Dir sehen, weil ich bisher keinen solchen Code gesehen habe. ;)

Genau die Frage: Was kann jemand an dem Code nicht verstehen. Ist ja gerade essentiell für eine solide Dokumentation. Und jede konkret implementierte Klasse wird Fragen aufwerfen... und sei es eben nur, ob Parameter Pflicht oder optional sind und wie sich dadurch der Ablauf verändert. Gerade bei OSS-Projekten gibt es auch genug Negativbeispiele. Ein Kommentar a la "Die Methode sayHello gibt Hello aus" kann man sich schenken, da man auch den Code durchlesen kann. Ziz hat bereits gezeigt, warum eine solche für den Entwickler unmissverständliche Funktion, bei jemand anderen weitere Fragen aufwerfen kann. Zum Thema: Andere Entwickler verstehen den Code ... bei einem komplexen Projekt wird hoffentlich eben nicht jeder verdonnert sämtlichen Code zu lesen. Gerade dort wird man eine gute Dokumentation zu schätzen wissen, wenn es einem eigentlich nur um Schnittstellen geht.

Meiner Erfahrung nach hilft es auch nicht darüber zu diskutieren. Wer die Notwendigkeit nicht sieht, bekommt hoffentlich mal ein Projekt bei dem er/sie dem Entwickler die Pest an den Hals schicken, weil wieder mal ein Verhalten nicht dokumentiert wurde... und niemand schreibt größere Projekte komplett von Grund auf an neu... ;)

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 15 Queries | GZIP : On ]