permettant la publication du code source dès la conception, o soit par réorganisation des équipes de développement internes au ministère, o soit en intégrant des clauses ad-hoc dans les appels d’offre" Introduction
la prestation Code Lutin : 2 applications d'exemples "publication ready" Le Script pour identifier les couplages l Le Workflow de publication (merge request) Le Pipeline de publication vers le Mim.Libre Nous avons identifié des plaques d'adhérence pour passer à l'échelle : Notre Forge Le LCNC ouvert Pour permettre : D'instancier les projets "publication ready" De continuer la conception applicative (API first) dans ce "moule publication ready"
est donc décomposé en au moins 2 parties : • Le code métier est isolé dans un projet • Et le projet d’exposition en API REST • Nous allons présenter la chaîne (en cours de mise en place) permettant : • D’agir au plus tôt : dès la création projet • Et d’entretenir le « publication ready » Introduction Métier API REST
Nouveau Projet Dépôt Git avec projet : Code source métier prêt à être publié Une API REST HelloWorld Un squelette de tests unitaires Intégration et déploiement continus pré-configurés (y compris le workflow et le pipeline de publication) Forge interministériel Mim.libre Expose le code source métier sur Internet Introduction Projet métier Projet infra (API) Projet métier
en définissant (pour un projet Dev) : o Le langage (Java, PHP...) o Le gestionnaire de dépendances (Maven, Composer...) o Le(s) framework(s) (Spring boot, Symfony...) o Aligné avec le Cadre de Cohérence Technique (CCT) --> Merge Request "Copier" sur les évolution des templates • Maquettage en cours de finalisation Plugin MENJ App Builder Première version envisagée T1-2025
vise à être plus simple et facile à utiliser que, par exemple, GNU Make. Et appelez-le en exécutant `task hello` depuis votre terminal. Limiter le "vendor lock'in" Taskfile https://taskfile.dev/fr-fr/
: • Les concepts utiles au métier technique que l’on désire représenter (ex : Swagger/OpenAPI) • Les templates de génération plaque d’adhérence de l’intelligence collective • Pour apporter de la stabilité dans la production applicative (répétable) • En accélérant le delivery Conception industrialisée d’API
des modèles comme une base de données sur laquelle nous allons réaliser des requêtes afin de constituer des artefacts : • Documents Word • Fichiers texte (ex : classes Java) • Métriques Conception industrialisée d’API Query (Java, OCL ou AQL)
Open Source et gratuites packagés sur des standards, par exemple : o UML-Designer : http://www.umldesigner.org/download/ o BPMN-Designer : https://github.com/ObeoNetwork/BPMN-Designer/releases/tag/4.1.1 o … • Mais aussi, IS-Designer (sponsor : Ministère des Armées) pour concevoir des applications de gestion : https://www.isdesigner.org/ o Entity pour le Mapping Objet / Relationnel o DataBase pour les MLD / MPD o Requirement pour les exigences métier (et leur traçabilité) o SOA pour la couche métier (et l’éventuelle exposition) o … • Ces studios sont des paramétrages sur SIRIUS : https://eclipse.dev/sirius/ • IS-Designer est le résultat de plus de 10ans de travail pour industrialiser la conception détaillée des applis métier et est dans le SILL : https://code.gouv.fr/sill/detail?name=IS%20Designer o Génération de code personnalisée avec le langage Acceleo : https://www.eclipse.org/acceleo/ o Exemple LCNC PacMan : https://www.isdesigner.org/generateurs.html Conception industrialisée d’API
E G E N Ne pas chercher à tout modéliser : loi de « 1 …N » Le ROI augmente avec le N qui est grand (= 1 élément modélisé génère N artefacts) Rester simple et focus sur le métier : KISS La vélocité diminue quand la complexité du code augmente L’empilement de frameworks augmente cette complexité (effet boite noire)