Sylvain, Ingénieur au sein d’Audensiel nous partage son expertise sur le framework Spring Batch et le langage Kotlin. À travers cet article, il nous expose une présentation de ce framework et de ce langage ainsi que leurs usages.
En effet, qui en tant que développeur n’a jamais rêvé de traiter des données de manière efficace ?
Avec Spring Batch, un Framework de l’écosystème Spring, il devient aisé de concevoir et développer de manière simple et efficace des programmes Java traitant un grand nombre de données.
Allié à Kotlin, nouveau langage en vogue ces dernières années, créer un batch devient alors un jeu d’enfant.
Ces technologies apportent simplicité et robustesse et globalement, tout se résume à une configuration Spring efficace.
Initiation à Kotlin, le futur de Java
Kotlin est un langage de programmation orienté objet développé par JetBrains, possédant un typage statique et qui permet de compiler pour la JVM (Java Virtual Machine). En effet,il possède une interopérabilité complète avec Java.
Il est aisé d’écrire du code plus concis et plus lisible avec ce langage ce qui va faciliter la maintenance, la détection des erreurs et contribuer à la qualité globale du code.
Pour donner un exemple d’amélioration, Kotlin résout la gestion des NullPointerException en intégrant la nullité directement dans son système de types. Ainsi les développeurs doivent déclarer explicitement si un objet peut être null.
Kotlin peut utiliser l’ensemble des librairies Java ce qui est un avantage énorme étant donné l’énorme écosystème que Java a accumulé au fil des années.
Ainsi il est possible de migrer progressivement un projet Java en Kotlin sans forcément avoir à réécrire l’ensemble de l’application.
Il faut généralement moins de temps pour développer une application sous Kotlin que sous Java. Ainsi les projets obtiennent un meilleur rendement et les coûts sont réduits.
Google a permis l’avancée de Kotlin en officialisant ce langage.
À ce jour, Java reste néanmoins devant avec une communauté plus importante et une documentation plus riche mais on ne pas nier son utilisation croissante.
Kotlin est classé 33éme langage le plus utilisé en 2023 et 17éme en 2024.
Java reste largement en tête avec une 3éme place en 2023 et 4éme place en 2024.
Bref, vous l’avez compris, essayer Kotlin c’est l’adopter. La majorité des développeurs que je connais ont du mal à revenir en arrière après avoir goûté à Kotlin.
Spring Batch, puissant outil de traitement de données
Spring Batch va donc permettre de créer des batchs de manière simple dans une architecture utilisant le Framework Spring. Le code est divisé de manière intelligente afin d’améliorer la maintenabilité et la logique du batch. Ainsi, Spring Batch va permettre de traiter de gros volumes de données par lots et de manière optimale.
Voici le schéma représentant les objets les plus importants dans Spring Batch ainsi que les relations entre eux :
Le Job va encapsuler l’ensemble du batch. Il est composé de plusieurs Step.
Chaque Step est composé de 3 objets :
- L’ItemReader pour lire des données via une base de données, un fichier CSV, une API etc … et les envoyer à l’ItemProcessor
- L’ItemProcessor pour transformer les données récupérées et les envoyer à l’ItemWriter.
- L’ItemWriter pour écrire les données traitées directement dans une base de données, un fichier CSV, une API etc …
Le JobLauncher va permettre l’exécution du batch et le JobRepository va collecter les informations des 3 instances (JobLauncher, Job, Step) tout au long du traitement.
Pour ma part, Spring Batch est devenu un outil indispensable lors du traitement de gros volumes de données. Il propose une structure très logique et permettant donc de bien découper chaque traitement. Il est même possible d’étendre ses fonctionnalités lorsque la librairie ne prévoit pas notre cas de façon native. Evidemment cela demande de se plonger davantage dans le fonctionnement de la librairie qui peut paraître complexe.
Pour plus d’infos, voici quelques liens de références :
- https://spring.io/projects/spring-batch Lien de la documentation sur Spring Batch
- https://github.com/sylvain230/batch-exemple-kotlin Lien du projet squelette disponible sur le Git de Sylvain présenté lors de l’événement Twitch effectuée fin avril 2024
Audensiel accompagne ses clients sur l’ensemble de la chaîne de valeur du traitement de la Data.
Vous souhaitez en savoir plus ?
コメント