All posts by Micha Kops

Analyse einer Java-Anwendung mit Java Mission Control und Flight Recorder

Treten in einer Java-basierten Anwendung qualitative Mängel im Hinblick auf Performance-Faktoren wie das Laufzeit- oder das Verbrauchsverhalten zutage, ist es für das Entwicklungsteam wichtig, mögliche Problembereiche effektiv einkreisen zu können. Der Java Flight Recorder bildet zusammen mit der Java Mission Control eine Tool-Kette, um kontinuierlich detaillierte Laufzeitinformationen einer Java-Anwendung zu sammeln und auszuwerten.

Architekturregeln mit Java und ArchUnit sicherstellen

Eine Herausforderung in Software-Projekten besteht oft darin, spezifische Architekturregeln sicherzustellen. ArchUnit ist eine relativ junge Bibliothek, die es Entwicklern erlaubt, Architekturregeln in Form ausführbarer Tests zu definieren und mit gängigen Werkzeugen und Test-Frameworks wie Gradle, Maven, JUnit, Surefire & Co. auszuführen. In einem Kurzbeispiel wollen wir einen Architekturtest mit ArchUnit erstellen; als Build-Werkzeug kommt Gradle zur Anwendung.

Stash in der Praxis – Branches schützen leicht gemacht

Bei der Arbeit in einem Git-basierten Software-Projekt ergeben sich einige Risiken, die den Entwicklungsprozess, die Software-Qualität und die Stabilität gegebenenfalls bestehender Abläufe behindern können. Auf der anderen Seite möchte man den Entwicklungsprozess auch nicht durch zu restriktive Modelle ausbremsen. Gut, dass Stash, das Git-Repository-Managementsystem von Atlassian, ein granulares, fein justierbares Sicherheitskonzept mitbringt. Hier sind ein paar pragmatische Schritte, wie sich Git-Branches in Stash schützen lassen.

Git in der Praxis: Mit Fixup und Autosquash die Historie sauber halten

Im Arbeitsalltag eines Entwicklers geschieht es auch in Git-verwalteten Projekten häufig, dass sich die Commit-Historie in einem Branch mit Korrektur-Commits füllt, die mit Etiketten wie „Typo korrigiert“, „Kommentar entfernt“ usw. versehen sind. Um diese Historie nun sauber halten zu können, bietet uns Git (wie so oft) unterschiedliche Möglichkeiten an, von denen ich hier eine spezielle Kombination vorstellen möchte: git commit –fixup und git rebase -i –autosquash.

Behaviour Driven Development und Bamboo: Visualisierung von Cucumber-Szenarien

Verhaltensgetriebene Entwicklung (Behaviour Driven Development, BDD) setzt sich zum Ziel, in Software-Projekten die beteiligten Akteure von Stakeholdern bis zum Entwickler zusammenzubringen und funktionale Anforderungen in einer einfachen, verständlichen und normierten Sprache zu dokumentieren. Ein häufig verwendetes Tool, das als Bindeglied zwischen textueller Anforderungsbeschreibung und konkretem Software-Test dient, ist Cucumber. In diesem Tutorial demonstrieren wie, wie Cucumber-Szenarien auf einem Bamboo-Server ausgeführt und wie Testergebnisse visualisiert werden können.

Continuous Delivery in der Praxis: Deployment auf Knopfdruck und Release-Verwaltung mit Bamboo

Continuous Delivery macht es sich zum Ziel, durch hochgradige Automatisierung Entwicklungskosten zu senken, Deployment-Vorgänge zu beschleunigen, die Qualität der Prozesse zur erhöhen und so auch flexibler und frühzeitiger auf Kundenanforderungen eingehen zu können. Wie sich dies in der Praxis gestaltet, ist Gegenstand dieses Artikels: Wir werden Atlassians CI-Server Bamboo konfigurieren, um eine einfache Java-Web-Anwendung auf einem Tomcat-Anwendungsserver per Knopfdruck zu installieren.

Code-Reviews mit Stash und SonarQube

Code-Reviews bilden ein wichtiges Werkzeug im Prozess der Software-Entwicklung, um eine bestmögliche Code-Qualität sicherzustellen. Sie fördern den Austausch im Team über die Code-Struktur, den Stil und die Architektur, und natürlich dienen sie dazu, sowohl Optimierungspotentiale als auch Schwachstellen aufzudecken. In diesem Artikel zeigen wir, wie Atlassians Git-Repository-Manager Stash in Kombination mit SonarQube, einem ausgereiften Tool zur statischen Code-Analyse, und dem Sonar-Plugin für Stash Code-Reviews und damit den Entwicklungsprozess effektiv unterstützen kann.

Code-Qualität optimieren mit SonarQube und Bamboo

Automatisierte statische Code-Analysen des Quelltextes eines Software-Projekts helfen, bestimmte Arten von Fehlern frühzeitig systematisch aufzudecken. Ein etabliertes und hilfreiches Tool für diesen Anwendungsfall ist SonarQube (früher schlicht Sonar). Im folgenden kurzen Tutorial zeigen wird, wie SonarQube in wenigen Minuten eingerichtet und in einen Build eines Bamboo-Integration-Server integriert werden kann.

Tutorial: Firmeneigenes Repository mit Sonatype Nexus aufsetzen

Sonatype Nexus verwaltet Software-Bibliotheken oder -Abhängigkeiten und erlaubt deren bequeme Verteilung und Integration in Software-Projekte. Benötigt ein Entwickler eine bestimmte Bibliothek in seinem Projekt, so kann er sie über gängige Build-Tools wie Maven, Gradle, Ivy, Sbt oder andere dann vom Nexus-Server beziehen und eigene weiterentwickelte Bibliotheken diesem wiederum zur Verfügung stellen. Wie ein solches internes Repository in wenigen Schritten aufgesetzt wird, zeigt dieses Tutorial.