Ein neues (altes) Projekt veröffentlicht

Nach mehreren Jahren Arbeit (nebenbei immer wieder ein bißchen) und einer langen familiär bedingten Pause, ist mein LoGD-Server Miharu Wars nun bereit, der Öffentlichkeit übergeben zu werden. Neuigkeiten gibt es immer wieder im dazugehörigen Blog.

Viel Spaß beim Spielen in einer für LoGD recht ungewöhnlichen Welt …

Reading-Liste für Java — oder: worüber ich eigentlich noch bloggen will …

Michael Sharhag hat einen schönen zusammenfassenden Artikel über die Nutzung der Java 8 java.time API geschrieben. Den will ich euch nicht vorenthalten.

Qualifier sind bei Dependency Injection sehr wichtig. Daher ist auch der von Pivotal veröffentlichte Blogbeitrag sehr interessant.

Seit Java 7 gibt es das ServiceLoader-Interface. Eine sehr interessante Sache. Kann man eigentlich öfter verwenden, als man denkt …

Dependency Injection – Konstruktor oder Property?

Dependency Injection hat sich durchgesetzt. Das muss also nicht mehr diskutiert werden. Es gibt zwar noch alte Projekte, die anders arbeiten (davon gibt es massig, denn auch in der Vergangenheit waren wir Programmierer ja nicht faul sondern haben Software geschrieben) – aber neuere Entwicklungen kommen selten ohne aus.

Leider gibt es noch oft Diskussionen, ob die DI via Property (also Setter-Methoden) oder den Konstruktor gehen soll. In den meisten Softwareprojekten sieht man ausschließlich Property-Injection (also einen Default-Konstruktor sowie ganz viele Setter). Dabei wird leider eine aus meiner Sicht grundlegende Regel vergessen: nach dem Konstruktor soll das Objekt minimal lauffähig sein. Dass heißt, dass alle verpflichtenden Informationen vorhanden sein müssen.

Oder anders ausgedrückt: in den seltensten Fällen ist ein Default-Konstrutor ausreichend für ein funktionierendes Objekt. Demnach spricht vieles für eine konstruktorbasierte DI.

Aber auch hier greift es zu kurz: der Konstruktor sollte ein minimal lauffähiges Objekt erzeugen. Und einige DI-Dependencies werden hier nicht benötigt. Diese Abhängigkeiten sollen also nicht in den Konstruktor. Und da spricht ja auch nichts dagegen: die absolut notwendigen Abhängigkeiten kommen in den Konstruktor, die optionalen Abhängigkeiten in Properties.

Oft wird angeführt, dass das weit verbreitete (und oft auch von mir genutzte) Spring-Framework keine Konstruktor-DI unterstützen würde oder die Entwickler von Konstruktor-DI abraten würden, aber wie der Blogeintrag http://spring.io/blog/2007/07/11/setter-injection-versus-constructor-injection-and-the-use-of-required/ schon 2007 beschrieb, sehen das unsere  Kollegen von Pivotal auch so wie hier beschrieben.

Voilà, das Problem ist sauber gelöst. Ohne Religionskrieg.

Eine zentrale Meldestelle für staatliche Willkür

Nach den sich immer wiederholenden Berichten rund um Polizeiwillkür (bedauerliche Einzelfälle), die oft sehr fragwürdigen Methoden der ARGEN und natürlich den großen Themen Voratsdatenspeicherung, Totalüberwachung, Geheimdienste, kam mir eine Idee: wenn der Staat zentrale Datenbestände hat, in denen er „Verdächtige“ speichert, warum sollen nicht auch Bürger einen zentralen Datenbestand anlegen, in denen sie Übergriffe sammeln. Ich werde hier ein paar Gedanken veröffentlichen, um weitere Mitstreiter zu finden, die hier unterstützen können.
Weiterlesen

Die Eigelbinjektionsmaschine

Heute morgen beim Frühstücken wollte Alex wieder mal Mama und Papa testen und fragte: „Wie kommt eigentlich das Eigelb in das Ei?“

Nici überlegte kurz und meinte nur: „Frag Papa.“

Also fing ich an: „Das macht die Eigelbinjektionsmaschine. Weißt Du, Alex: Wenn die Eier noch ganz frisch sind, ist die Schale ganz weich und formbar. Da kann man mit einer kleinen ganz dünnen Nadel durch die Schale stechen und das Eigelb einspritzen. Wenn man die Nadel rauszieht, dann schließt sich die weiche Schale wieder.“

Alex schaute recht verwirrt zwischen mir, Nici und Doris hin- und her.

„Glaubst Du mir nicht?“

„Aber die Eier kommen doch aus Hühnern.“

„Wenn Du es weißt, warum fragst Du dann?“

Das Leben ist Veränderung

Seit dem letzten Update hat sich bei uns einiges geändert.
Telefónica hat den Standort Verl geschlossen und wollte mich mit nach München nehmen. Allerdings habe ich mich entschlossen, stattdessen eine neue Stelle anzunehmen. Nach über 10 Jahren war dies wohl auch notwendig geworden.
Also arbeite ich jetzt als Externer Consultant für Volkswagen. Damit ergibt es sich, daß ich in Wolfsburg arbeite und der Arbeitsweg Bielefeld-Wolfsburg wäre doch etwas weit.
Weiterlesen