Singletons auf die faule Art

Wir hatten heute eine kurze Diskussion über Singletons und die Art und Weise ihrer Erzeugung, speziell wenn man sie faul (lazy) erzeugen möchte. Die Wikipedia hat dazu diesen schönen Eintrag – On Demand Holder Idiom:

In software engineering, the Initialization on Demand Holder idiom (design pattern) is a lazy-loaded singleton. The idiom can be implemented in both single-threaded/serial and concurrent environments, but care must be taken to correctly implement the idiom under concurrent conditions.

Ganz besondern wichtig ist die Erklärung, warum Lazy in diesem Fall so und nicht anders funktioniert:

The implementation relies on the well-specified initialization phase of execution within the Java Virtual Machine (JVM); see section 12.4 of Java Language Specification (JLS) for details.

When the class Something is loaded by the JVM, the class goes through initialization. Since the class does not have any static variables to initialize, the initialization completes trivially. The static class definition LazyHolder within it is not initialized until the JVM determines that LazyHolder must be executed. The static class LazyHolder is only executed when the static method getInstance is invoked on the class Something, and the first time this happens the JVM will load and initialize the LazyHolder class.

Buchtip: Don’t make me think!

Mit dem Untertiel Web Usability: Das intuitive Web auf Deutsch erschienen, fügt Steve Krug in seiner absichtlich knapp gehaltenen Usability Fibel den alltäglichen Diskussionen um Details beim Webdesign ein Körnchen gesunden Menschenverstand hinzu.

Wie soll die Seite strukturiert sein? Wo gehoert die Suchfunktion hin? Oder letztendlich: was muss getan werden, um dem Besucher die Nutzung nicht nur gerade zu ermöglichen sondern sogar ein positives Erlebnis entstehen zu lassen? Das Buch steckt voller Beobachtungen die der Autor in Usability Tests gewonnen hat und daraus werden eindeutige Schlußfolgerungen gezogen, die man ohne weiteres übernehmen kann.

Ein Beispiel dazu ist das Kapitel zu Goodwill als begrenzter Resource: ein Besucher wird sich nicht endlos der Suche nach versteckten Informationen oder dem Kampf mit sinnlos überfrachteten Formularen ausliefern – irgendwann wird er einfach woanders sein Glück versuchen. Dazu erhält der Leser eine Liste von verbreiteten Fehlern, die alle diese kostbare Resource aufbrauchen – auch wie man genannte Fehler vermeidet wird deutlich. Ein Buch das ich schon deshalb als sehr gut geschrieben bezeichnen möchte, weil es nicht technisch orientiert ist – es hilft Einsteigern wie Profis und ist nebenbei erstaunlich zeitlos.

Don’t Make Me Think: A Common Sense Approach to Web Usability
Deutsch: Don’t make me think! Web Usability: Das intuitive Web

Die richtigen Leute für den Job?

Wenn man in einer Webseite diesen Text findet und weiss, dass eine angeblich professionelle Webagentur/Webdesign-Firma ihre Hände im Spiel hatte, dann sollte man sich fragen, ob es die richtigen Leute für den Job sind… oder nicht?

Abbrechnen – Wenn Worte zu ähnlich sind

Wenn Worte zu ähnlich sindHeute habe ich sichtlich verwirrt geschaut und gesucht, wie ich mir beim Spiegel eine Online-Ausgabe kaufen kann, denn im Bestellprozess steht plötzlich Abrechnen auf einem Button.

Abrechnen habe ich noch nie gelesen. Meist steht nur Weiter, Kaufen oder Bestellen drauf. Das Problem ist, dass man auf den ersten Blick nämlich Abbrechen liest.

Da fällt mir das schöne Kunstwort Abbrechnen ein…

Orginaldateien?

Eben den Begriff Originaldatei gehört. Irgendwie ein Widerspruch in sich. Ok, der Laie möchte damit betonen, dass es sich dabei um die erste angelegte Datei handelt. Lächerlich wird es aber, wenn man sagt:

“Hast Du die Originaldatei gemailt?”

Das ist ein Ding der Unmöglichkeit ;)