wintersale15_finalsale Hier klicken Jetzt Mitglied werden Reduzierte Hörbücher zum Valentinstag Cloud Drive Photos UHD TVs Learn More HI_PROJECT Hier klicken Fire Shop Kindle PrimeMusic Autorip WSV

Kundenrezensionen

4,5 von 5 Sternen28
4,5 von 5 Sternen
Format: TaschenbuchÄndern
Preis:33,36 €+ Kostenfreie Lieferung mit Amazon Prime
Ihre Bewertung(Löschen)Ihre Bewertung


Derzeit tritt ein Problem beim Filtern der Rezensionen auf. Bitte versuchen Sie es später noch einmal.

am 13. November 2015
Das Buch wurde mir in einer Variante zugesendet, bei der es sich nicht um ein Exemplar von Addison-Wesley handelt. Stattdessen ist es eine gedrückte e-Book Version. Die Abmaße sind viel zu groß. Dazu kommt, dass das Cover eine hochskalierte pixelige JPEG Aufnahme des Originalcovers ist. Ich bin wirklich enttäuscht, dass Amazon nicht kenntlich macht, dass sie minderwertige Nachdrucke verkaufen. Ich werde das Buch wieder zurücksenden.
0Kommentar0 von 1 Personen haben dies hilfreich gefunden.. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 19. September 2009
A "must read" for any Java developper. Suddenly you start to understand why the Java library is as it is, and how to use it, and to design your own code in a similar way. For an old Java man like me, there was still so much to learn, I am yet not through with the book.
0Kommentar0 von 1 Personen haben dies hilfreich gefunden.. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 29. Mai 2009
I have not much to say about this book. It's the best Java book I've ever read. Packed with useful information from the first to the last page. A must-have for every ambitioned Java developer.
0Kommentar0 von 1 Personen haben dies hilfreich gefunden.. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 23. November 2015
Das Buch, das ich erhalten habe, ist kein Original, sondern ein Nachdruck. Auf dem Frontcover ist ein stark vergrößertes und verschwommenes Bild dse Originals, auf dem Backcover ist aber nur ein Barcode und sonst nichts. Das Format ist viel größer, schon fast DinA4 und passt damit nicht ein mein Buchregal. Die Seiten innen sind zwar gut gedruckt, aber es ist rund um den Text ein großer leerer Rand - eine ziemliche Platzverschwendung. Der Text der Seiten wurde also nicht vergrößert. Das ist alles sehr unpraktisch. Warum also dieses große Format?

Meine schlechte bewertung bezieht sich nicht auf den Inhalt, sondern beruht vor allem auf der Tatsache, dass die Artikelbeschreibung irreführend ist. Ich konnte dort nirgends einen Hinweis auf einen Nachdruck finden. Somit bekommt man fast den Eindruck, dass hier bewusst getäuscht werden soll. Ich hatte mich schon über den verlgeichweise günstigen Preis gewundert, aber dieser erklärt sich jetzt natürlich. Ich schicke mein Exemplar zurück und werde mir woanders ein Original besorgen.
0Kommentar0 von 2 Personen haben dies hilfreich gefunden.. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 26. April 2014
In vielen Java Programmen machen die Nutzdaten nur einen Bruchteil des allokierten Heaps aus [1]. Bei kurzen Strings wie sie z.B. in Personen- oder Städteverzeichnissen vorkommen, ist der interne Header viel größer als die eigentliche Information. Dasselbe gilt bei kleinen Objekten. Der Object-Header ist typischer Weise 16-Byte. Noch übler wird es, wenn diese kleinen Objekte/Strings in Collections gespeichert werden. Eine besonders aufgeblähte Datenstruktur sind die allseits beliebten Hashmaps und Hashsets [2]. Beim Boxing einer Integer hat man 80% bürokratischen Overhead und 20% Nutzdaten. Derselbe Effekt tritt bei Enums auf. Eine Enum ist kein Integer wert, sondern eine Klasse und man schleppt damit den Klassen-Overhead mit herum. In der Regeln werden sie aber nur als symbolische Konstanten vulgo Integers verwendet.

Dieses Buch ist eine systematische Anleitung wie man im Namen von Effektiver Programmierung Daten möglichst gross aufbläst und das Programm möglich abstrakt-kompliziert macht. All die oben aufgezählten "Memory-Bloats" werden als die alleinseligmachende Art der Javaprogrammierung präsentiert. Wobei nicht klar ist, was der Autor unter "Effektiv" versteht. Mit Sicherheit nicht effizienter Kode.

Das Standardargument für diesen Ressourcenwucher ist: Was kostet schon ein Giga Memory oder gar Plattenplatz gegen einen Programmierer. Effizientes Programmieren bedeutet jedoch nicht automatisch geringere Produktivität oder mehr Bugs. Ganz im Gegenteil, es setzt vorraus, dass man das Problem gründlich versteht und dass man sein Fach von Grund auf beherrscht. Wer seine Datenstrukturen ohne viel Nachzudenken was intern geschieht in eine Java-Collection wirft, wer niemals gemessen hat, wie lange Methode A braucht und ob nicht Methode B schneller ist, wird niemals ein richtiger Programmierer werden. Wahrscheinlich wird er niemals irgendetwas richtig können, weil ihm der Sinn für die gründliche Auseinandersetzung mit einem Gegenstand fehlt.

Tatsächlich wachsen die Anforderungen mindestens genauso schnell wie die Hardware. Jedes ernsthafte Programm stößt über kurz oder lang an Performance und Ressourcen Grenzen. Z.B. haben wir einen Finance-Server gebaut. Ursprünglich für ein paar hundert verschiedene Assets und tägliche Daten. Inzwischen sind es ein paar Tausend mit High-Frequency Zeitreihen. Der Server erreichte damit in der ursprünglichen Konzeption die Grenzen des Wachstums. Ich habe mich daher in den letzten Wochen intensiv mit effizienten Java-Strukturen beschäftigt. Die neue Version ist 5-100 x so schnell und verbrät nur einen Bruchteil von Plattenplatz und Memory. Das geht natürlich nicht mit kleinen kosmetischen Veränderungen. Es musste z.B. auch die MySQL-Datenbank daran glauben. Es wurden aber auch handgeschnitzte und effektive Datenstrukturen für Zeitreihen entwickelt. Ein Element einer Zeitreihe besteht typischer Weise aus einem Zeitstempel (int oder long) und einem Wert (double). Es ist höchst uneffektiv für jedes Element ein Objekt zu erzeugen und dieses z.B. in einer ArrayList der Reihe nach zu speichern (komplexerere Container sind noch übler). Stattdessen speichert man die Zeitstempel in eine Integer- und den Wert in eine Double-Array. Nachdem man die Frequenz der Daten und den Zeitbereich kennt, kann man die Größe der Array von vornherein sehr gut abschätzen. Man benötigt keine dynamischen Strukturen. Dieses Design ist gegen alle in diesem Buch gepredigten Regeln. Es ist jedoch einfach, schnell und auch nicht fehleranfälliger wie all die Regeln der schönen neuen Programmierwelt. Es ist nur weniger allgemein. Es braucht aber auch nicht allgemeiner sein. Und falls die Datenstruktur sich einst doch als zu starr erweist, schreibt man sich halt eine neue TimeseriesExtended Klasse. Von vornherein alle möglichen und unmöglichen Erweiterungen in Datenstrukturen einzubauen gehört laut [2] zu den 12 Patterns vulgo Ursünden für aufgeblähten Kode. Man muss Kode sowieso von Zeit von Zeit wegschmeissen und gänzlich neu schreiben.

Man kann auch den in C++ geschrieben Kode von H. Press et. al.: Numerical Recipes 3rd Ed. hernehmen. Der Kode verstößt massiv gegen die Regeln der C++ "Effective-Gurus". Er löst aber auf sehr effiziente Weise das jeweilige Problem, dass er lösen soll.

Meiner Meinung nach sind Bloch, Myers et. al. Sektenprediger die dem staunenden Publikum Snake-Oil verkaufen. Man sollte stattdessen Bücher von ernsthaften Leuten die D. Knut, H. Press oder D. Comer lesen.
Auch das gute alte "Writing Efficient Programs" von J. Bentley ist es wert immer wieder einmal gelesen zu werden. Die Beispiele mögen teilweise veraltert sein, der Geist, die Einstellung, die es ausstrahlt, jedoch nicht. Es ist die Antithese zu einer allgemeinen Einstellung die vollkommen unverantwortlich mit Ressourcen - sei es nun Lebensmittel, Energie oder Memory - umgeht.

[1]: N. Mitchell, Sevitsky G.: The Causes of Bloat, The Limits of Health.
[2]: Chis A., Mitchell N., Schonberg E. et al.: Patterns of Memory Inefficiency.
44 Kommentare11 von 27 Personen haben dies hilfreich gefunden.. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 18. Januar 2009
Das Buch ist einfach der Hit.
Ich habe es für Objekt Orientierte Programierung für die Uni verwendet. Ich gebe dem Buch 5 Sterne weil es sehr gut geschrieben ist, Inhaltlich enorm viel und detailiert abdeckt und sogar spaß macht zu lesen!

(Nur als Hinweiß)
Das Buch nichts für Java Einsteiger!
Wie der Titel schon sagt ist es stark auf Java ausgelegt!
0Kommentar0 von 4 Personen haben dies hilfreich gefunden.. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 10. September 2013
Das Buch habe ich in Zeit bekommen. Alles ist ok. Das Buch ist in Ordnung. Danke schön und auf Wiedersehen.
0Kommentar0 von 4 Personen haben dies hilfreich gefunden.. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden
am 30. April 2010
This book is OK. It's neither very good nor very bad.
I can make some use of it, but as I've already read some other books on similar topics I would not recommend this one.
Some of the recommendations are not really good advice as they work around the real problem. E.g. in my opinion telescoping constructors should not be implemented at all, but the code should be refactored to avoid the problem at all.
Furthermore you have to know that it is in the style of a reference manual.
22 Kommentare5 von 22 Personen haben dies hilfreich gefunden.. War diese Rezension für Sie hilfreich?JaNeinMissbrauch melden