Auf Thema antworten

Also ich sehe hier mehrere Punkte:


a) Wie geht man an eine Entwicklungsarbeit heran?

Meine Meinung nach erfordert das immer eine intensive Recherche. Sowohl zum eigentlichen Problemgebiet (Man muss die Aufgabenstellung verstanden haben) aber auch zu den eingesetzten Hilfsmitteln. Dazu gehören Tools und Frameworks.

So muss jemand die Klassen kennen, die man nutzen will. Wer die Klasse Scanner nutzen will, der sollte die Klasse auch kennen. Und dazu gehört dann das Lesen der Dokumentation. Und die Klasse Scanner hat eine sehr große Dokumentation.

Desweiteren sollte man die implementierten Interfaces kennen. So gibt es das Closable Interface. Eine Instanz, die dies implementiert, will geschlossen werden. Da Java keine "native"/"unmanaged" Dinge kennt, ist es hier nicht so wichtig, wie in .Net das Disposable. (Es sei denn, man hat JNI im Einsatz. Dann wird es ebenso wichtig!) Etwas, das geschlossen werden will, sollte auch geschlossen werden. Dafür gibt es dann auch extra so Dinge wie try with resources.


b) Unsaubere Entwicklung ist ein Problem

Es ist einfach ein Problem, wenn jemand unsauber entwickelt. Da kommt zwar eine Exception aber ich muss ja nicht verstehen, was da abgeht. Ich frickel mir dann schon eine Lösung zusammen. Closable? Interessiert mich nicht!

So geht das nicht. Wenn Du da einen Scanner nutzt, dann ruf doch auch mal close auf oder nutz try with ressources. Und schon merkst Du, dass Dein angedachtes Konstrukt so eben nicht funktioniert.

Lies die Dokumentation der Klasse - und schon findest Du Hinweise, was bei der Exception zu beachten ist.


c) Inhalt der Dokumentation von Scanner und wo sollen diese Informationen rein?

Ein Punkt ist, in wie weit gewisse Dokumentation nicht in den "Kopf" der Doku gehört sondern in die Beschreibung der Klasse. Aber das würde bedeuten, dass bei relativ vielen Funktionen genau dieser Hinweis zu der Exception rein müsste. Aber es macht doch keinen Sinn, einen Kommentar X mal zu kopieren. Wer eine Klasse verwendet, wird doch immer die Doku der Klasse lesen.

Ein anderer Punkt ist die Frage, was alles dokumentiert gehört. Genereller Umgang mit Streams gehört da meiner Meinung nach nicht rein. Scanner ist ja kein Stream sondern nutzt den Stream nur. Wer also etwas über Streams erfahren möchte, der sollte doch bitte die Dokumentation dort lesen.

Ebenso ist evtl. die Frage zu beantworten, was an Grundlagen noch in eine Referenz wie hinein gehört.

Es gibt ja durchaus mehrere Dokumentationen und da muss man dann genau überlegen, wo was hinein gehört. So gibt es neben der Dokumentation des Frameworks ja auch noch grundlegende Dokumentation: JLS / JVMS fällt mir da so ein. Da können gewisse Grundlagen auch erläutert sein, denn es gibt ja auch Schnittstellen zu eben genau diesen Dokumenten.


Aber das sind nur so Gedanken von mir und meine Sichtweise. Ich bin niemand, der dies festlegen würde oder da irgendwie ausschlaggebend wäre. Es gibt ja auch Wege, Vorschläge und Bugreports einzubringen, so dass man so Themen auch an Verantwortliche herantragen kann. Auch wichtig: Meine Sichtweise sollte nicht wertend aufgefasst werden. Jeder soll so arbeiten, wie er möchte. Und die Anforderungen an jemanden, der Vollzeit Entwickler ist, dürfte anders sein als die Anforderung an einen Hobby-Entwickler oder Anfänger.



Oben