JAVA Craft
Cette formation vise à apprendre Java sur des bases les plus cohérentes, en particulier dans le contexte d’une transition ou reconversion à partir d’un autre langage.
Rendre les participants capables de concevoir et de déployer des services SpringBoot de haute qualité, en trouvant le juste équilibre entre la productivité offerte par le framework et la maîtrise de l'architecture logicielle. À l'issue de ce parcours, les apprenants seront en mesure de piloter le développement d'un service web robuste, du premier jet de code jusqu'à sa mise en production sécurisée.
Sur le plan de la conception, vous apprenez à structurer vos applications selon les principes de l’Architecture Hexagonale, vous permettant d'isoler la logique métier des contraintes techniques. Vous saurez appliquer les concepts du Domain-Driven Design (DDD) pour créer un code explicite et fidèle aux enjeux business, tout en gérant intelligemment la séparation entre les objets de domaine et les objets de transfert de données (DTOs).
Sur le plan technique et opérationnel, la formation permet de maîtriser les différentes stratégies d’accès aux données pour choisir l’outil de persistance le plus adapté à chaque contexte. Un accent majeur est mis sur la testabilité : les participants sauront bâtir une pyramide de tests complète, alliant tests unitaires, tests d'intégration et tests de bout en bout, pour garantir la non-régression et la fiabilité des services.
Enfin, les apprenants acquerront les compétences nécessaires pour répondre aux exigences modernes de résilience et de sécurité. Ils seront capables de concevoir des systèmes capables de supporter la défaillance de sous-systèmes externes et d'intégrer les impératifs de la Security by Design et de l'observabilité. Cela garantit non seulement la performance technique du service, mais aussi sa conformité vis à vis du Cyber Resilience Act (CRA).
Maîtriser l'écosystème Spring Boot sans perdre le contrôle Un tour de réflexion sur l'équilibre délicat entre la "magie" de l'auto-configuration de Spring Boot et la maîtrise nécessaire du code. Nous analysons les forces et les limites du scaffolding (notamment via Spring Initializr) pour comprendre comment démarrer un projet sur des bases saines. L'enjeu est ici d'aligner la rapidité de livraison promise par le framework avec les exigences de qualité du Software Craftsmanship, en transformant le gain de productivité initial en une efficacité de livraison durable, capable de réduire drastiquement le gaspillage lié à la dette technique.
Architecture Hexagonale et Domain-Driven Design Ce volet se concentre sur la conception de services centrés sur le métier plutôt que sur la technologie. Nous mettons en œuvre l'architecture hexagonale pour isoler le domaine métier des détails d'infrastructure, garantissant ainsi un faible couplage et une forte cohésion. En intégrant les principes du Domain-Driven Design (DDD), les participants apprennent à distinguer clairement les objets du domaine des DTOs (Data Transfer Objects), assurant que le code reste lisible, maintenable et fidèle aux besoins business sur le long terme.
Stratégies de Persistance et de Communication Nous explorons les différentes manières d'interagir avec les bases de données, qu'elles soient relationnelles ou orientées document. L'objectif est de savoir choisir l'outil adapté au contexte : l'abstraction puissante d'un ORM, la précision d'un DSL ou une approche plus directe sans intermédiaire. Ce module traite également de la conception des API REST avec Spring Boot et Jackson, en veillant à ce que les interfaces produites soient à la fois robustes, explicites et capables d'évoluer sans impact majeur sur le système global.
La Pyramide de Tests et le Design-for-Failure La qualité logicielle est ici abordée par le prisme de la testabilité et de la résilience. Nous détaillons comment combiner efficacement les différentes approches de tests, du test unitaire au test de bout en bout (End-to-End), en passant par les tests d'intégration spécifiques à Spring. En parallèle, nous apprenons à concevoir des services capables de résister aux défaillances des systèmes externes. Le "Design-for-failure" devient une compétence clé pour garantir la disponibilité du service et la cohérence des données, même en cas de perturbations du réseau ou des dépendances.
Sécurité, Observabilité et Conformité (CRA) Nous analysons les impératifs opérationnels et réglementaires modernes. Nous abordons la mise en œuvre de la sécurité, avec ou sans Spring Security, en adoptant une approche "Security by Design" devenue indispensable face aux exigences du Cyber Resilience Act (CRA). Enfin, nous traitons de l'observabilité pour rendre les services Spring Boot transparents en production. Les participants apprennent à monitorer leurs applications pour anticiper les vulnérabilités et répondre aux obligations de maintenance et de gestion des incidents, transformant la contrainte légale en un levier de confiance et de performance.
Cette formation s’adresse principalement aux développeuses, développeurs, architectes, et chefs ou cheffes de projets IT souhaitant maîtriser les concepts et les bonnes pratiques autour de la conception d’API pragmatiques.
Il est recommandé d’avoir une compréhension basique des API et une expérience dans le développement logiciel.
Pour chaque formation, un quizz de validation des prérequis sera transmis 2 semaines en amont et en fin de session pour valider les acquis.
Les formateurs distribueront les supports de la formation au format électronique PDF à la fin de la formation.
La formation est donnée en français ou en anglais. Les supports de formation sont en anglais. La formation alternera entre théorie et mise en pratique à travers divers exercices et études de cas pour permettre une meilleure assimilation des concepts présentés.
Pour toute personne en situation de handicap, n’hésitez pas à nous contacter au 07 63 74 20 95 ou à formation@arolla.fr.
Par ailleurs, toutes nos formations sont accessibles en distanciel.