La vision autour de ce projet est de réduire les répétitions de blocs de codes dans les nombreuses parties d’une application en les remplaçant par de simples annotations. Le projet est disponible en téléchargement en tant que fichier JAR sur le site Web qui lui est consacré et intègre en même temps les API de développement et d’intégration à votre IDE. Si vous l’avez téléchargé et lancé l’installation, le programme vérifiera s’il existe sur votre ordinateur un IDE avec lequel il est compatible. Dans sa dernière version, la 1.18.4, le projet prend en charge la plupart des IDE du marché notamment NetBeans, Eclipse, IntelliJ IDEA, etc. L’ingénieur a indiqué que Lombok leur est d’une grande utilité dans l’utilisation des objets Java classiques communément appelés POJO, grâce aux annotations telles que @Data qui contient lui-même d’autres petites annotations.
Parmi les annotations filles de @Data, on trouve @ToString qui génère automatiquement une implémentation de la méthode toString() ou @Getter et @Setter pour la génération des méthodes getter et setter pour les attributs. Notons que ces annotations contenues dans la macro @Data peuvent être utilisées de façon séparée. De plus, une bonne partie de ces annotations sont également modifiables pour s’adapter à votre convenance.
D’autres annotations qu’offre Lombok ont été également présentées. Nous avons par exemple les annotations :
- @NonNull qui déclenche automatiquement une exception de type NullPointerException lorsqu’elle est placée sur un champ ;
- @Cleanup pour indiquer à la JVM que les ressources allouées doivent être libérées pour la variable concernée à la fin de l’exécution ;
- @FieldDefaults qui ajoute les modificateurs private et final à la variable concernée ;
- @UtilityClass qui rend une classe finale, crée un constructeur privé et rend toutes les méthodes de la classe statiques ;
- etc.
Vous pouvez avoir accès à la liste complète des annotations et autres fonctionnalités de Lombok sur son site Web. Pour Alex, ces annotations de Lombok confèrent à Java de nouvelles fonctionnalités et le rendent plus intéressant comme langage devant Kotlin et la concurrence. À la question de savoir quel est le réel impact ou l’avantage que cela leur procure dans le déroulement de leurs projets, il a expliqué que Lombok rend plus minimaliste et plus lisible que jamais leurs codes Java. « Grubhub a plus d'une centaine de services en cours d'exécution pour répondre aux besoins de l'entreprise. Nous avons pris l'un de ces services et avons exécuté la fonctionnalité “de-lombok” du plug-in Lombok IntelliJ pour voir combien de lignes de code ont été enregistrées à l'aide de Lombok. C'est 18 000 lignes de code générées automatiquement, standardisées et testées. En moyenne, chaque ligne de code Lombok enregistre 23 lignes de code Java. Avec un tel impact, il est difficile d’imaginer utiliser Java sans Lombok », illustre-t-il.
Par contre, certains voient la chose autrement. Un internaute a écrit en réponse à Alex qu’effectivement Lombok est une béquille utile si l’on écrit beaucoup de code Java au jour le jour. Cependant, étant donné la facilité d'utilisation de Kotlin aux côtés de Java, « je me demande si Lombok est la bonne solution au problème », s’est-il interrogé. Il a aussi ajouté que Kotlin a des classes de données qui génèrent automatiquement des méthodes comme 'toString' et 'hashCode', ce qui représente, selon lui, un gain de temps considérable.
Pour un autre, la programmation basée sur des annotations peut sembler cool maintenant, mais l’enthousiasme autour va diminuer dans quelques années. Selon lui, il est vrai qu’utiliser Lombok ou un autre outil d’annotation permet de ne pas écrire du code fastidieux. Cependant, imaginer que le temps passe, explique-t-il, vous ouvrez le projet pour détecter un bogue, seulement il peut ne pas avoir de flux logique pour raison de mise à jour du langage ou suppression d’une fonctionnalité donnée du langage, etc. Une approche alternative à Lombok, d’après lui, serait de réfléchir à la façon dont le projet a abouti à autant de classes de données inutiles. « Au lieu de penser à sauter immédiatement sur Lombok ou tout autre, posez-vous des questions ressemblant à : comment le projet pourrait-il être remanié pour éliminer ces lignes inutiles ? », a-t-il conclure.
Sources : GrubHub, Project Lombok
Et vous ?
Qu'en pensez-vous ?
Quelle est votre préférence entre Lombok et Kotlin ? Pourquoi ?
Voir aussi
Tutoriel sur l'utilisation de la bibliothèque Lombok
Tutoriel pour explorer la bibliothèque Lombok par la pratique en 5 minutes
Simplifier le code de vos beans Java à l'aide de Commons Lang, Guava et Lombok
Apprendre à utiliser la bibliothèque Lombok avec le langage Java pour simplifier l'écriture de vos classes, un tutoriel de François-Xavier Robin