Advertisements

3 Gründe, warum Quarkus 2.0 die Entwicklerproduktivität unter Linux verbessert

Egal wie lange Sie als Anwendungsentwickler arbeiten und welche Programmiersprache Sie auch verwenden, Sie haben wahrscheinlich immer noch Schwierigkeiten, Ihre Entwicklungsproduktivität zu steigern. Darüber hinaus haben neue Paradigmen, darunter Cloud Computing, DevOps und testgetriebene Entwicklung, den Entwicklungslebenszyklus für einzelne Entwickler und multifunktionale Teams erheblich beschleunigt.

Sie denken vielleicht, dass Open-Source-Tools zur Behebung dieses Problems beitragen könnten, aber ich würde sagen, dass viele Open-Source-Entwicklungsframeworks und Tools zum Codieren, Erstellen und Testen diese Herausforderungen verschlimmern. Außerdem ist es aufgrund von Systemabhängigkeiten und Supporteinschränkungen nicht einfach, geeignete Kubernetes-Entwicklungstools für die Installation auf Linux-Distributionen zu finden.

Glücklicherweise können Sie die Entwicklungsproduktivität unter Linux mit Quarkus, einem Kubernetes-nativen Java-Stack, steigern. Quarkus 2.0 wurde kürzlich mit nützlichen neuen Funktionen zum Testen in der Entwicklerkonsole veröffentlicht.

Interaktive Entwickler-UX/UI

Weitere Linux-Ressourcen

Wenn Sie Ihrem Java Maven-Projekt mehr als 10 Abhängigkeiten (z. B. Datenbankverbindungen, objektrelationales Mapping, JSON-Formatierung, REST-API-Spezifikationen) hinzufügen müssen, müssen Sie mehr als 60 Konfigurationen mit Schlüsseln und Werten in einer oder mehreren definieren application.properties Dateien. Mehr Konfigurationen verringern die Lesbarkeit für einzelne Entwickler und sind für Entwicklerteams schwieriger zu verwalten.

Quarkus verfügt über eine interaktive Oberfläche, um alle hinzugefügten Abhängigkeiten anzuzeigen. Es ist erhältlich bei der localhost:8080/q/dev Endpunkt, nachdem Sie den Quarkus-Entwicklungsmodus mit dem mvn quarkus:dev Befehl. Sie können Konfigurationen auch in der DEV-Benutzeroberfläche (UI) aktualisieren, wie in Abbildung 1 gezeigt, und die Änderungen werden automatisch mit der application.properties Datei.

(Hinweis: Den gesamten Quarkus-Anwendungscode für diesen Artikel finden Sie in meinem GitHub-Repository.)

quarkus-devui.png

Abbildung 1. Quarkus DEV-Benutzeroberfläche (Daniel Oh, CC BY-SA 4.0)

Bessere kontinuierliche Tests

Wenn Sie eine Anwendung entwickeln, von einem Monolithen bis hin zu Microservices, müssen Sie Ihren Code testen. Häufig ist ein dediziertes Qualitätssicherungsteam (QA) mit externen Continuous Integration (CI)-Tools für die Verifizierung von Unit-Tests verantwortlich. Das funktioniert seit Jahren und tut es immer noch, aber Quarkus ermöglicht es Programmierern, Tests in der Laufzeitumgebung durchzuführen, in der ihr Code während der Entwicklung läuft. Quarkus 2.0 bietet diese kontinuierliche Testfunktion über die Befehlszeilenschnittstelle (CLI) und die DEV-Benutzeroberfläche, wie in Abbildung 2 dargestellt.

quarktesting.png

Quarkus-Tests in der DEV-Benutzeroberfläche

Abbildung 2. Quarkus-Tests in der DEV-Benutzeroberfläche (Daniel Oh, CC BY-SA 4.0)

Kontinuierliche Tests werden nicht ausgeführt, wenn eine Quarkus-Anwendung gestartet wird. Um es zu starten, klicken Sie unten rechts in der DEV-Benutzeroberfläche auf “Tests werden nicht ausgeführt”. Sie können ein Webterminal auch öffnen, indem Sie auf der linken Seite der DEV-Benutzeroberfläche auf “Öffnen” klicken. Beide Optionen sind in Abbildung 2 hervorgehoben, und ein beispielhaftes Testergebnis ist in Abbildung 3 dargestellt.

quarkusconsole.png

Quarkus-Konsole in der DEV-Benutzeroberfläche

Abbildung 3. Quarkus-Konsole in der DEV-Benutzeroberfläche (Daniel Oh, CC BY-SA 4.0)

Wenn Sie den Code ändern (z. B. “Hallo” in “Hallo” im hello() -Methode) aber nicht den Testcode (unabhängig davon, ob die Funktion funktioniert), schlägt der Test fehl, wie in Abbildung 4 gezeigt. Um das Problem zu beheben, aktualisieren Sie den Testcode zusammen mit dem Logikcode.

fehlgeschlagener Test.png

Testfehler in der Quarkus DEV-Benutzeroberfläche

Abbildung 4. Testfehler in der Quarkus DEV-Benutzeroberfläche (Daniel Oh, CC BY-SA 4.0)

Sie können die im implementierten Testfälle erneut ausführen src/test/java/ Verzeichnis. Diese Funktion macht die Integration mit einem externen CI-Tool überflüssig und stellt die Funktionalität sicher, während die Geschäftslogik kontinuierlich entwickelt wird.

Nullkonfiguration mit Entwicklungsdiensten

Wenn Sie für ein bestimmtes Ziel entwickeln, ist es wichtig, dass Ihre Entwicklungsumgebung genau die Umgebung widerspiegelt, in der sie ausgeführt werden soll. Das kann die Installation einer Datenbank an einem Ort wie einer lokalen Umgebung etwas schwierig machen. Wenn Sie unter Linux entwickeln, könnten Sie die erforderliche Datenbank in einem Container ausführen, aber sie laufen in der Regel unterschiedlich, je nachdem, welche Ressourcen verfügbar sind, und Ihre lokale Umgebung verfügt wahrscheinlich nicht über dieselben Ressourcen wie die Zielproduktionsumgebung.

Quarkus 2.0 hilft bei der Lösung dieses Problems, indem es auf Testcontainern basierende Entwicklungsdienste bereitstellt. Sie können beispielsweise Anwendungen testen, wenn sie in der Produktionsdatenbank PostgreSQL und nicht in einem H2-In-Memory-Datenspeicher mit den folgenden Konfigurationen funktionieren:

quarkus.datasource.db-kind = postgresql (1)
quarkus.hibernate-orm.log.sql = true

quarkus.datasource.username=person (2)
quarkus.datasource.password=password (3)
quarkus.hibernate-orm.database.generation=drop-and-create

%prod.quarkus.datasource.db-kind = postgresql (4)
%prod.quarkus.datasource.jdbc.url = jdbc:postgresql://db:5432/person (5)
%prod.quarkus.datasource.jdbc.driver=postgresql

quarkus.datasource.devservices.image-name=postgres:latest (6)

Im obigen Code:

(1) Die Art der Datenbank, die Sie für Entwicklung und Test verbinden
(2) Datenquellen-Benutzername
(3) Datenquellen-Passwort
(4) Die Art der Datenbank, die Sie für die Produktion verbinden
(5) Datenquellen-URL
(6) Der für DevServices-Anbieter zu verwendende Container-Image-Name; wenn der Anbieter nicht containerbasiert ist (zB H2-Datenbank), hat dies keine Auswirkung

Wenn Quarkus mit der neuen Konfiguration neu startet, wird das Postgres-Container-Image erstellt und automatisch ausgeführt, wie in Abbildung 5 gezeigt.

quarkusdevservices.png

Quarkus DevServices

Abbildung 5. Quarkus DevServices (Daniel Oh, CC BY-SA 4.0)

Mit dieser Funktion können Sie den Integrationstest für den Produktionsdatenspeicher entfernen. Es erhöht auch Ihre Entwicklungsproduktivität, da Umweltunterschiede in der Entwicklungsschleife vermieden werden.

Abschluss

Quarkus 2.0 steigert die Entwicklerproduktivität durch integrierte kontinuierliche Tests, eine interaktive DEV-Benutzeroberfläche und Entwicklungsdienste. Darüber hinaus bietet es zusätzliche Funktionen zur Verbesserung der Entwicklererfahrung wie Live-Codierung, Remote-Entwicklungsmodus auf Kubernetes und einheitliche Konfigurationen, die die Entwicklungsschleife beschleunigen. Quarkus 2.0 ist da sicherlich keine Ausnahme! Probieren Sie es hier selbst aus!

3 Gründe, warum Quarkus 2.0 die Entwicklerproduktivität unter Linux verbessert

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top