Architecture Logicielle
Concevez des applications qui répondent aux uses cases métiers
Présentation du cours
Ce cours s’adresse aux développeurs seniors qui souhaitent évoluer vers un poste d’architecte logiciel.
Au travers de ce cours vous apprendrez ce que sont les différents rôles d’architecte en entreprise et nous nous intéresserons en particulier au rôle d’architecte applicatif.
Vous apprendrez en partant du besoin de vos métiers et utilisateurs comment concevoir une application qui répond aux différents cas d’usage en prenant en compte le contexte dans lequel vous évoluez.
Objectifs pédagogiques
- Comprendre le rôle d’architecte
- Concevoir une architecture durable et évolutive
- Avoir une vision claire des outils et méthodologies d’un architecte
Public cible
- Développeur.se.s expérimenté.e.s souhaitant monter en compétence sur l’architecture logicielle.
Prérequis
- Avoir une expérience significative dans le développement logiciel
- Maîtriser un langage de programmation et un framework majeur (Java pour les exemples)
- Avoir une culture générale du développement (langages, middleware, BDD, CI/CD)
Programme
Module 1 : Introduction
- Les différents architectes en entreprise (SI)
- Pourquoi une Arch applicative est un plus (convaincre de l’utilité)
- Définir et comprendre le rôle de l’architecte applicatif en contexte agile
- Du développeur à l’architecte
Ateliers:
- Présentation du case study de la journée (entreprise fictive, contexte, difficultés, mission)
Module 2 : Qu’est ce que l’architecture
- Comprendre le besoin de l’application
- Concevoir une solution qui répond au besoin en fonction du contexte
- Définir la responsabilité de son application
- Introduction au DDD (domaines et vocabulaire)
- Anticiper le futur
- Formaliser une architecture
Ateliers:
- Etude de l’application existante
- Formalisation de la refonte de l’application:
Module 3 : Règles de conception
- Solid
- Design Patterns
- Clean Code
- Persistance
- Performance
- Observabilité
Ateliers:
- Projet BadProject à améliorer sur Sonar ou en Mob.
Module 4 : Usine logicielle
- Versions (cohabitation de versions et stratégie branching)
- Déploiement (AB, canary)
- Gestion des configurations et secrets
- CI/CD
- Environnements (dev jusqu’à prod)
Ateliers:
- Etude d’une usine logicielle standard
Module 5 : Qualité logicielle
- Stratégie de tests (TDD, BDD)
- TU/TI/E2E (Pyramide de test)
- Revue de code
- Documentation de l’application
- Archunit : conservation du découpage sur long terme
Ateliers:
- Optionnel : archunit
Module 6 : Sécurité
- RGPD
- Authentification (basic, oauth, openID)
- Rate limiting
- RBAC : Limitation des accès
Ateliers:
- Quizz RGPD
Module 7 : Documentation / process
- Rituels et bonnes pratiques d’équipe (agilité, amélioration continue)
- Architecture Decision Record (ADR)
- Partage de connaissances / communication (docAsCode, Jira, canaux de communication)
Ateliers:
- Atelier DocAsCode Antora.
Nos sessions de formations
Ce cours vous intéresse ?
Demandez un devis
personnalisée ? Contactez-nous