Aller au contenu
BackJavaquarkusUITools

Quarkus Dev UI : L'interface ultime pour booster votre productivité en développement Java

À la découverte de l'interface Dev UI de Quarkus pour booster la productivité lors du développement

Et si Quarkus Dev UI était l'interface ultime pour booster votre productivité en développement Java ?

Dans un précédent article, nous avons exploré les bases de Quarkus. Aujourd’hui, plongeons dans l’un de ses outils phares : Dev UI.

Cette interface web intégrée simplifie le développement et le débogage d’applications Java en affichant des informations détaillées sur l’état de votre application.

Accessible en mode développement, elle devient un atout incontournable pour les développeurs.

Comment accéder à Quarkus Dev UI :

Pour accéder à Quarkus Dev UI, commencez par démarrer votre application en mode développement. Cela s’effectue via la commande suivante dans votre terminal :

./mvnw quarkus:dev

Une fois l’application lancée, ouvrez votre navigateur et rendez-vous à l’adresse suivante :

http://localhost:8080/q/dev-ui/

Écran principal de l'interface Dev UI de Quarkus

C’est ici que vous découvrirez l’interface Dev UI, prête à vous fournir des informations précieuses sur votre projet.

Gestion des extensions

Dès votre arrivée sur l’interface, vous accédez à l’écran listant les extensions activées dans votre application Quarkus.

Voici quelques exemples courants :

  • ArC : intégré par défaut pour gérer l’injection de dépendances.
  • Extensions liées aux bases de données : Datasource, Hibernate ORM, JDBC, etc.
  • RESTEasy : pour l’exposition d’APIs REST.
  • SmallRye OpenAPI : pour générer une documentation OpenAPI et exposer un SwaggerUI.

Vous pouvez consulter et modifier les configurations directement depuis cette interface. Toute nouvelle extension ajoutée apparaîtra automatiquement dans cette liste.

Certaines extensions permettent d’accéder à des informations ou d’effectuer des actions.

Nous allons ajouter trois extensions à notre application directement via l’interface en cliquant sur le bouton “+” en bas à droite et en renseignant :

  • Hibernate orm” puis cliquer sur “Add extension” pour l'extension "Hibernate ORM with Panache"
Écran permettant d'ajouter une extension "Hibernate orm" à notre projet via l'interface Dev UI. Ici, l'on peut voir que la recherche a retournée plusieurs extensions possible à installer.

Quarkus va ainsi automatiquement ajouter la dépendance “quarkus-hibernate-orm-panache” au POM Maven et redémarrer l’application.

  • postgresql” et le drive JDBC :
Écran permettant d'ajouter une extension "postgresql" à notre projet via l'interface Dev UI. Ici, l'on peut voir que la recherche a retournée plusieurs extensions possible à installer.
  • hibernate validator” :
Écran permettant d'ajouter l'extension "Hibernate validator" à notre projet via l'interface Dev UI.

Ainsi, on peut voir que l’écran des extensions a été mis à jour et affiche de nouvelles informations :

Écran permettant de voir la liste des extensions actives : par rapport aux extensions précédemment installées, l'on peut voir apparaître les extensions que l'on a installées

Après la configuration applicative des propriétés liés à la base de données, nous reviendrons sur cet écran pour voir le contenu de la base.

Configuration applicative

L’écran de configuration permet de voir l’ensemble des propriétés configurées pour votre application, et celles proposées par les extensions.

Sur cet écran, l'on peut voir l'ensemble des propriétés configurées pour notre application, et celles proposées par les extensions

Cet écran permet de rechercher des propriétés spécifiques grâce à un filtre et de les trier par colonne. Les propriétés sans cadenas dans la colonne “Phase” peuvent être modifiées à chaud, c’est-à-dire sans nécessiter de redémarrage de l’application. En revanche, pour modifier une propriété verrouillée (avec un cadenas), un redémarrage manuel sera nécessaire.

Pour revenir à notre application, nous allons ajouter les propriétés suivantes :

// Connexion à une BDD postgresSQL + utilisateur / mot de passe
quarkus.datasource.db-kind=postgresql
quarkus.datasource.username=postgresql
quarkus.datasource.password=postgresql
// Url JDBC d’accès à la BDD
quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/introQuarkus
// Indique à hibernate de créer les tables à partir des entités
quarkus.hibernate-orm.database.generation=create
// Configuration pour le profil dev (ne sera pas appliqué en production)
// Activation des devServices et des infos sur la BDD à lancer à l’exécution en mode dév de l’application via test container
%dev.quarkus.datasource.devservices.enabled=true
%dev.quarkus.datasource.devservices.port=5432
%dev.quarkus.datasource.devservices.db-name=introQuarkus
%dev.quarkus.datasource.devservices.username=postgresql
%dev.quarkus.datasource.devservices.password=postgresql

Il est possible aussi d’afficher juste les propriétés modifiées, dans la vue “Source editor” :

Cet écran montre l'affichage en mode source des propriétés modifiées dans notre application

Nous allons ensuite ajouter une classe entité nommée “Personne” avec le code suivant sous le package “sfeir.dev.model” :

package sfeir.dev.model;

import io.quarkus.hibernate.orm.panache.PanacheEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;

@Entity
public class Personne extends PanacheEntity {

 @NotNull
 @Size(min = 3, max = 30)
 @Column(unique = true, nullable = false)
 public String nom;


 public static Personne findByNom(String nom) {
   return find("nom", nom).firstResult();
 }
 
}

Ainsi, lorsque nous retournons sur l’écran “Extension”, et que nous cliquons sur “Database view” (dans Agroal Database connection pool), nous pouvons voir le contenu de la base de données et la table “Personne”  :

Écran montrant la configuration de l'extension 'Agroal Database connection pool'

Écran workspace

L’écran workspace permet tout simplement de consulter et modifier les fichiers de notre application directement via l’interface Dev UI :

Écran workspace qui permet de consulter et modifier les fichiers de notre application

Affichage d’informations sur les endpoints

Écran Endpoints qui affiche une vuse d'ensemble des points de terminaison exposés

L’écran “Endpoints” fournit une vue d’ensemble des points de terminaison exposés par votre application. Vous y trouverez des détails tels que les chemins d’accès, les méthodes HTTP associées et les paramètres requis, ce qui facilite le débogage et la validation des APIs.

Écran continuous testing

L’écran “Continuous Testing” est dédié à l’exécution et au suivi des tests automatisés. Il affiche les résultats par scénario, incluant le statut (succès ou échec) et le temps d’exécution. Cette fonctionnalité est idéale pour identifier rapidement les problèmes et garantir la stabilité de votre application tout au long du développement.

Écran "Continous Testing" qui permet de lancer et de voir les résultats liés aux tests automatisés

À noter, qu’en bas de l’interface, l’icône d’un fil à raccorder à une prise électrique permet d’ouvrir le terminal de l’application et de voir les logs de celle-ci.

Icône d'un fil à raccorder à une prise électrique permettant d'ouvrir le terminal de l'application

Dans celle-ci, il est possible de choisir les colonnes à afficher et le niveau des logs par package.

Terminal de l'application

Écran dev service

L’écran “Dev Services” simplifie la gestion des services de développement automatiquement configurés par Quarkus en mode développement.

Dans notre application, on utilise une base de données, Quarkus en provisionne ainsi une via Testcontainers.

Il est possible de récupérer les informations de connexion pour les utiliser dans des outils externes comme DBeaver.

Écran Dev services affichant les services de développement utilisés par notre application

Écran build metrics

L’écran “Build Metrics” offre une vue détaillée des performances de vos builds Quarkus.

Vous y trouverez des données essentielles telles que :

  • Le temps de build : identifiez les étapes les plus longues pour optimiser vos processus.
  • La taille des artefacts générés : surveillez et réduisez la taille de vos fichiers pour améliorer les performances en production.
  • Les statistiques de compilation : évaluez l’efficacité globale de votre pipeline de développement.

Ces informations sont particulièrement utiles pour détecter les goulets d’étranglement dans vos builds, réduire les temps de déploiement, et garantir une meilleure expérience utilisateur. 

Par exemple, si vous constatez une augmentation significative du temps de build après l’ajout d’une extension, l’écran “Build Metrics” vous permet d’identifier rapidement la source du problème.

En combinant ces données avec d’autres outils comme le Continuous Testing, vous pouvez affiner votre workflow et assurer une livraison rapide et fiable de vos applications Java.

Écran build metrics affichant une vue détaillée des performances de notre application

Écran Readme

Cet écran affiche tout simplement le contenu du fichier README qui se trouve à la racine de votre application :

Écran affichant le README de notre application

Écran Dependencies

Cet écran permet de voir avec un diagramme les différents liens entre les dépendances :

Écran affichant un diagramme avec les différents liens entre les dépendances de l'application

Il est ainsi possible par exemple, en cas de souci d’incompatibilité entre deux librairies, de voir sous forme visuelle les librairies portées par une librairie importée.

Conclusion

En résumé, le fait que Quarkus propose une interface Dev UI peut devenir un allié incontournable pour les développeurs Java.

Son interface intuitive centralise la gestion des extensions, la configuration des propriétés, et le suivi des métriques, tout en intégrant des outils avancés comme le Continuous Testing.

En optimisant chaque étape du flux de travail, cet outil améliore la productivité et garantit des applications de haute qualité.

Prêt à explorer tout le potentiel de Quarkus Dev UI ? Rendez-vous sur la documentation officielle pour en savoir plus : https://quarkus.io/guides/dev-ui.


Source :

Quarkus : définition
Mais au fait, c’est quoi Quarkus, ce petit nouveau dans l’écosystème java qui fait concurrence à Spring ? La réponse dans ce Késako !

Dernier