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

Template für Java-Projekte, Version 2.5.0

Pünktlich zum Semesterbeginn steht eine aktualisierte Version des Projekt-Templates für Java-Projekte zur Verfügung. Dieses Template wird im Module VSK von den Studierenden für ihre Projekte genutzt, kommt aber auch in den Modulprojekten (Projekte zur Verwaltung von Quellcode aus Folien, Beispielen, Übungen etc.) von PRG1 und PRG2 zum Einsatz.

Das Projekt wird seit mehreren Jahren von mir kontinuierlich weiterentwickelt und gewartet und auf HSLU-Template auf GitLab-Enterpriselab gehostet. Kommentare, Feedback etc. bitte über GitLab oder per Mail an mich.

Java und Let’s Encrypt Zertifikate

Mit der Migration von GitLab auf dem Enterprise Lab der HSLU auf die Version 8.4.2 wurde gleichzeitig auch das SLL-Zertifikat ausgetauscht: Neu wird ein Let’s Encrypt-Zertifikat verwendet. Im Gegensatz zu den vorher eingesetzten StartCom-Zertifikaten sind diese wesentlich populärer und somit auch in den Keystores der meisten aktuellen Browser vorhanden. Somit haben wir nun endlich “vertrauensvolle” SSL-Verbindungen. Leider zeigt sich aber Oracle weiterhin sehr zurückhaltend: Auch in der derzeit aktuellsten Java-Version 1.8.0u72 sind die notwendigen Zertifikate von Let’s Encrypt leider nicht enthalten.

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

Template für Java-Projekte, Version 2.4.1

Pünktlich zum Semesterbeginn steht eine aktualisierte Version des Projekttemplates für Java-Projekte zur Verfügung. Dieses Template wird in den Modulen VSK und APPE von den Studierenden für ihre Projekte genutzt, kommt aber auch in den Modulprojekten (Projekte zur Verwaltung von Quellcode aus Folien, Beispielen, Übungen etc.) von PRG1 und PRG2 zum Einsatz.

Das Projekt wird seit mehreren Jahren von mir kontinuierlich weiterentwickelt und gewartet und auf HSLU-Template auf GitLab-Enterpriselab gehostet. Kommentare, Feedback etc. bitte über GitLab oder per Mail an mich.

Update:
Auf Version 2.4.1 (Erweiterung mit Apache Ivy und Bugfix von PMD).

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

Java, SSL und HSLU EnterpriseLab

Das EnterpriseLab der HSLU verwendet für die Sicherung und Authenifizierung Ihrer Sites Zertifikate, welche auf einem 4kB-Rootzertifikat basieren. Das hat für den Zugriff mit Software welche auf Java basiert ein paar unerwartete Konsequenzen: Die Verwendung von 4kB grossen Zertifikaten unterliegt noch immer US-Amerikanischen Exportbeschränkungen. Das bedeutet, dass mit dem “normalen” JDK- bzw. JRE-Download weder die entsprechenden JAR-Dateien, noch die notwendigen Root-Zertifikate mitgeliefert werden. Es ist somit eine manuelle Nachinstallation notwendig. Das macht insofern keinen Spass, als dass diese Nachinstallation für jede vorhandene JRE (davon können sich auf einem System schon mal ein paar verschiedene Versionen ansammeln!) vollzogen werden muss. Weiterlesen