Professionelle Entwicklung mit Java

In Zusammenhang mit der Neugestaltung der Programmier-Module des Informatik-Studienganges im 1. und 2. Semester (OOP und AD) war es ein zentrales Ziel, den Studierenden deutlich früher die Möglichkeit zu geben, mit professionellen Mitteln und Methoden zu arbeiten. Lesen Sie hier, wie wir das im Bereich der Programmierung erreicht haben. Weiterlesen

Java und Zufall

Dass es für Computer schwierig (oder besser: unmöglich) ist, wirklich gute Zufallszahlen zu erzeugen, dürfte hinlänglich bekannt sein. Dass ein Random-Generator bei jedem Neustart mit einem neuen Initialwert gestartet werden sollte (ansonsten wiederholen sich die Folgen) auch. Und auch die Praxis, dass man dafür meistens einen Zeitwert nimmt ebenso. Aber schlagen wir all diese Regeln mal in den Wind und schauen uns an, was das folgende Programm anstellt.

Weiterlesen

Information Hiding und Datenkapselung

Kürzlich habe ich auf einer Folie mit dem Titel “Information Hiding” gelesen, dass um diese zu erreichen der Zugriffsmodifizierer private eines der wichtigsten Hilfsmittel sei. Für mich ein weiterer Beleg, dass die Mächtigkeit und der Gewinn der beiden Konzepte ‘Information Hiding’ und ‘Encapsulation’ häufig zu wenig verstanden und differenziert wird. Viele Entwickler verwenden die Begriffe sogar synonym. Tatsächlich sind sie eng miteinander verwandt, lassen sich aber dennoch wunderbar differenzieren. Und letzteres nicht etwa aus Spitzfindigkeit, sondern mit ganz konkretem Nutzen für das konkrete Design. Wer also der Meinung ist, indem er/sie ein Attribut einer Klasse mit private markiere hätte er/sie dem Information Hiding (und der Encapsulation) genüge getan, sollte unbedingt weiterlesen!

Weiterlesen

equals- und hashCode-Contract

Wer bei diesem Titel mit einem grossen Gähnen denkt “Ach, nicht schon wieder diese alten Kamellen” verpasst etwas! Ich gebe es ja offen zu: Obschon ich zu den grossen Verfechtern von Test-First, TDD und generell Unit-Testing gehöre – spätestens wenn es bei Java um das Testen von equals() und hashCode() ging, habe auch ich häufig die Flügel gestreckt. Nun gibt es aber eine beeindruckende Wunderwaffe, mit der auch das gelingt! Weiterlesen

Verzeichnisstruktur von Java-Projekten

Je nachdem welche Entwicklungsumgebung ich verwende, oder auf welche Art und für welchen exakten Projekttyp ich darin ein neues Java-Projekt anlege, erhalte ich teilweise sehr unterschiedliche Verzeichnisstrukturen. Das ist ähnlich wie die etwas zu “aufwändige” Unittest-Generierung in NetBeans eigentlich ziemlich ärgerlich. Vor allem Programmieranfänger, welche auf möglichst einfache Art ein neues Java-Projekt erstellen möchten, verstehen dann überhaupt nicht mehr, was nun wohin gehören soll. Weiterlesen

Vier Bücher für die einsame Insel

Die folgende Liste ist meine persönliche Reduktion auf das absolute Minimum. Und bis vor kurzem umfasste sie nur drei Bücher. Nun sind es vier geworden. Vier Bücher – natürlich aus dem Bereich Informatik – welche ich auch auf die einsame Insel mitnehmen würde (sofern ich dort überhaupt etwas mit Informatik zu tun haben möchte, was ich natürlich sehr bezweifle :-)). Sie gehören als Paperback in die Handbibliothek in unmittelbarer Griffnähe vom Arbeitsplatz, wie auch in die E-Book Sammlung die ich auf allen meinen Geräten verteile. Also stehts im Zugriff.
Weiterlesen

Unit-Tests mit NetBeans

Schon viele Jahre hat das wohl bekannteste Unit-Test-Framework JUnit nun schon auf dem Buckel. Die Art wie wir damit heute Tests schreiben hat sich in dieser Zeit sehr stark verändert. Leider haben sich noch nicht alle IDE’s an diese Veränderung angepasst. Schauen wir uns mal an was NetBeans 8.0.1 für die Methode
public long addition(final int summand1, final int summand2)
für ein Codeskelett erzeugt:
Weiterlesen

Hello world!

Das ist doch geradezu der perfekte Titel für den ersten Post in diesem Blog, oder nicht?
Es muss bereits eine Unmenge von sogenannten “Hello world!“-Beispielen auf dieser Welt geben. In verschiedenen Jahren entstanden, für verschiedene Programmiersprachen adaptiert und bestimmt auch unzählige Male immer wieder kopiert. Aber wie sieht denn ein vernünftiges “Hello world!“-Beispiel für Java im Jahr 2014 aus? Weiterlesen