Seit Git 2.34 kann man neben GPG-Schlüssel auch SSH-Schlüssel zum Signieren von Commits verwenden. Dafür den öffentlichen Schlüssel zum eigenen Account bei GitHub oder GitLab hochladen und die Signierung auf dem eigenen Rechner einrichten.
„Git-Commits mit SSH signieren“ weiterlesenMake unter Windows nutzen
Das Tool make
is alt, in den 1970er entstanden und doch nach wie vor aktuell. Obwohl es heute umfangreichere und bequemere Alternativen gibt, macht für mich die Einfachheit und universelle Einsetzbarkeit den Nutzen von make
aus.
Andere Tools wie Maven, Gradle oder NPM sind spezialisiert auf ihren Einsatzzweck. Sie können ein Sache und die sehr sehr gut, Projekt in Java oder JavaScript bauen und verwalten. Sie können teilweise auch andere Welten bedienen, mit Gradle lassen sich zum Beispiel auch NPM-Projekte bauen, aber das fühlt sich nicht so gut an, wie die spezialisierten Tools.
Daher nutze ich make
gerne als Abstraktion der verschiedenen Build Tools. Nicht um einen komplexen Build mit make
zu erstellen, sondern lediglich um die verschiedenen Befehle der verschiedenen Tools unter einheitlichen Kommandos auszuführen. So baue ich Java-Projekte und JavaScript-Projekte, React und Angular oder Nest.js und Go mit den selben Satz an make
Targets wie build
, clean
, check
, format
…
Custom Distribution mit Gradle
Das Gradle-Plug-in application
erzeugt eine praktikable Distribution für eine Java-Applikation, was aber wenn mehr Flexibilität gebraucht wird? Zum Beispiel ein über-JAR oder ein JAR das sich durch Doppelklick startet lässt. „Custom Distribution mit Gradle“ weiterlesen
Festplatte voll? Xcode aufräumen!
Beim der Arbeit mit Xcode verschwindet einiges an Plattenplatz. Nicht nur ist das Programmpaket selbst recht groß, auch legt Xcode einiges an zusätzlichen Informationen im Nutzerverzeichnis unter ~/Library/Developer
ab. Ein paar Sachen davon können relativ bedenkenlos gelöscht werden. „Festplatte voll? Xcode aufräumen!“ weiterlesen
Testen mit JUnit 5
Mit Version 5 von JUnit wird das Testen unter Java noch einfacher. Hier ein paar Beispiele …
Semantic Versioning für Applikationen
Semantic Versioning wird für die meisten Frameworks und Bibliotheken verwendet. Für Maven, NPM und andere Package Manager ist eine semantische Versionierung zwingend notwendig, um Abhängigkeiten korrekt auflösen zu können. Wie kann man aber Applikationen semantisch versionieren?
FTP-Server unter macOS nutzen
Mac OS X, OS X und das aktuelle macOS bringen von Haus einen FTP-Server mit. In früheren Versionen konnten man den ein den Systemeinstellungen unter Freigaben aktivieren und deaktivieren. Mittlerweile ist dafür aber das Terminal zuständig. „FTP-Server unter macOS nutzen“ weiterlesen
BDD mit Cucumber
Behavior Driven Development (BDD), auch Acceptance Test Driven Development (ATDD) genannt, bringt die testgetriebene Entwicklung näher an den Anwender.
AOP mit AspectJ
Die aspektorientierte Programmierung (AOP) bietet zusätzlich zur objektorientierten Programmierung (OOP) eine neue Möglichkeit der Modularisierung von Software. In der OOP werden Funktionalität durch Methoden, Klassen und Pakete modularisiert. Klassen fassen Methoden zu einer Einheit mit einer Verantwortlichkeit zusammen. Pakete gruppieren zusammengehörige Klassen. Diese Modularisierung fokusiert auf die Geschäftslogik von Software.
Einen leeren Branch in Git anlegen
Hin und wieder braucht man einen leeren Branch im Repository. Ein leerer Branch ist ein neuer Branch ohne bisherige Commits, der von keinem anderen Branch abgezweigt wird. Ein Beispiel dafür ist der Branch gh-pages
auf GitHub. Dieser Branch enthält eine HTML-basierte Projektseite und hat ansonsten mit dem Sourcecode nichts gemeinsam.