Eigentlich dachte ich ja, dass das Buch Java Server Faces von Andy Bosch das absolut schlechteste Java-Buch ist, das man schreiben kann. Daher war es ganz erheiternd, ein noch schlechteres zu finden. Es nennt sich "Java - Der Code" und ist im mitp Verlag erschienen.
Explizit an fortgeschrittene Programmierer gerichtet, bietet es den schlechtesten Code, den ich seit langem in Buchform gesehen habe. Normalerweise schmeiss ich sowas dann einfach in die Ecke, aber hier fand sich auf Seite 271 der Satz
So.
Hier mal eine kleine Auswahl (aus einer schier endlosen Liste)
Unkenntnis der API (FileReader unbekannt? readLine selbst nachprogrammiert)
Überall im Buch hartkodierte Pfade ins Dateisystem (C:\xyz) innerhalb der Sourcen (der Autor erkennt zwar das Problem, kann es aber nicht lösen und schwafelt ins blaue)
JAXB mit JAXP verwechselt (OK, das ist eine Kleinigkeit)
Ein StringBuffer, bei dem in der append-Methode dann ("x"+"y"+"....") mit tausen normalen + steht!
Wie üblich totale Unkenntnis beim Exception Handling (System.out.print usw.)
Unkenntniss der PreparedStatements bei JDBC, alle SQL Anfragen werden mit + erzeugt (das übliche Sicherheitsproblem SQL-Injection wird hier also mal in Buchform gegossen)
Der Autor lagert z.B. username und password bei eine SQL-Datenbank in ein Properties-File aus, schreibt aber den Treibernamen und die URL hartcodiert in den Quelltext, was für ein Genie!
Auf Seite 74 ist im eine Graphik durcheinander geraten; mit dem Effekt, dass das ganze Buch kein einziges (!) UML Use Case Seuquenz Diagramm enthält (und das, obwohl viel darüber geschwafelt wird)
Der Autor weiss zwar, dass bei SAX ein Text vom Parser möglicherweise in mehrere CharacterEvents zerlegt wird, kennt aber wohl die triviale Lösung mit einem StringBuffer nicht [dadurch wäre sein läppisches Programm nur ein paar Zeilen länger geworden] - stattdessen sagt er einfach "unsere Texte sind so kurz, also kann das nicht passieren". Und das soll gute Software sein???
Mangelhafte Computerkenntnisse im allgemeinen, mein persönliches Highlight ist "DOS jedoch verwendet UTF-8" (auf Seite 304, zusammen mit einer falschen Darstellung der Thematik CharacterEncoding/Dateisystem..)
Der Autor kann ein xml-File nicht gegen eine DTD validieren, wenn er nicht alles fest ins Dateisystem legt! Siehe die albernen "Lösungen" auf Seite 305
Ein Tipp für SQL-Anfänger: "Wenn Sie neu im Umgang mit SQL sind, nutzen Sie diese Gelegenheit, um sich in Stored Procedures einzuarbeiten" - toller Tipp
Es soll ein Vector sortiert werden: dazu schreibt sich der Autor selbst einen Shellsort, er erwähnt das Interface Comparable und das ganze Collections API mit keinem Wort.
Ich muss jetzt aufhören (könnte noch ewig so weiter machen), will aber noch ein Beispiel bringen:
In dem Buch wird wirklich hunderte von malen geschrieben
kann das wahr sein??????????????
dass jemand ein Buch für Fortgeschrittene schreibt und die allereinfachsten Dinge nicht beherrscht? Jeder Dorfdepp hätte
gemacht (je nach Anforderung). Da dieser Fundamental-Anfänger-Fehler wirklich ständig gemacht wird (die Interfaces aus dem Collections API tauchen NIE auf), ist das wohl kein Flüchtigkeitsfehler sondern Absicht. Was für ein STÜMPER, der dann auch noch ständig über "GUTE SOFTWARE" doziert, ein Hammer!!!
Wenn man noch das sinnlose Anreissen komplexer Themen auf maximal 3 Seiten dazunimmt, bleibt nur ein Urteil:
Etwas zum Lachen für erfahrenere Programmierer, für Anfänger absolut nicht zu empfehlen
Explizit an fortgeschrittene Programmierer gerichtet, bietet es den schlechtesten Code, den ich seit langem in Buchform gesehen habe. Normalerweise schmeiss ich sowas dann einfach in die Ecke, aber hier fand sich auf Seite 271 der Satz
den ich leider nicht nachvollziehen kann. Übrigens ist der Ton auch sonst recht arrogant und von läppischen "Praxis"-Beispielen durchzogen.Jetzt haben wir eine gute Software geschrieben
So.
Hier mal eine kleine Auswahl (aus einer schier endlosen Liste)
Unkenntnis der API (FileReader unbekannt? readLine selbst nachprogrammiert)
Überall im Buch hartkodierte Pfade ins Dateisystem (C:\xyz) innerhalb der Sourcen (der Autor erkennt zwar das Problem, kann es aber nicht lösen und schwafelt ins blaue)
JAXB mit JAXP verwechselt (OK, das ist eine Kleinigkeit)
Ein StringBuffer, bei dem in der append-Methode dann ("x"+"y"+"....") mit tausen normalen + steht!
Wie üblich totale Unkenntnis beim Exception Handling (System.out.print usw.)
Unkenntniss der PreparedStatements bei JDBC, alle SQL Anfragen werden mit + erzeugt (das übliche Sicherheitsproblem SQL-Injection wird hier also mal in Buchform gegossen)
Der Autor lagert z.B. username und password bei eine SQL-Datenbank in ein Properties-File aus, schreibt aber den Treibernamen und die URL hartcodiert in den Quelltext, was für ein Genie!
Auf Seite 74 ist im eine Graphik durcheinander geraten; mit dem Effekt, dass das ganze Buch kein einziges (!) UML Use Case Seuquenz Diagramm enthält (und das, obwohl viel darüber geschwafelt wird)
Der Autor weiss zwar, dass bei SAX ein Text vom Parser möglicherweise in mehrere CharacterEvents zerlegt wird, kennt aber wohl die triviale Lösung mit einem StringBuffer nicht [dadurch wäre sein läppisches Programm nur ein paar Zeilen länger geworden] - stattdessen sagt er einfach "unsere Texte sind so kurz, also kann das nicht passieren". Und das soll gute Software sein???
Mangelhafte Computerkenntnisse im allgemeinen, mein persönliches Highlight ist "DOS jedoch verwendet UTF-8" (auf Seite 304, zusammen mit einer falschen Darstellung der Thematik CharacterEncoding/Dateisystem..)
Der Autor kann ein xml-File nicht gegen eine DTD validieren, wenn er nicht alles fest ins Dateisystem legt! Siehe die albernen "Lösungen" auf Seite 305
Ein Tipp für SQL-Anfänger: "Wenn Sie neu im Umgang mit SQL sind, nutzen Sie diese Gelegenheit, um sich in Stored Procedures einzuarbeiten" - toller Tipp
Es soll ein Vector sortiert werden: dazu schreibt sich der Autor selbst einen Shellsort, er erwähnt das Interface Comparable und das ganze Collections API mit keinem Wort.
Ich muss jetzt aufhören (könnte noch ewig so weiter machen), will aber noch ein Beispiel bringen:
In dem Buch wird wirklich hunderte von malen geschrieben
Code:
ArrayList variable = new ArrayList();
// oder
public void meineFkt(ArrayList argument)
// oder
HashMap myMap = new HashMap();
// oder
private HashMap memberVariable;
dass jemand ein Buch für Fortgeschrittene schreibt und die allereinfachsten Dinge nicht beherrscht? Jeder Dorfdepp hätte
Code:
List variable = new ArrayList();
// oder
public void meineFkt(Collection argument)
Wenn man noch das sinnlose Anreissen komplexer Themen auf maximal 3 Seiten dazunimmt, bleibt nur ein Urteil:
Etwas zum Lachen für erfahrenere Programmierer, für Anfänger absolut nicht zu empfehlen