La formation FunAr présente l’architecture fonctionnelle (Functional Architecture) comme alternative à l’architecture orientée-objets classique. Elle a pour objectif de permettre aux participant·e·s de passer de l’utilisation de la programmation fonctionnelle à la conception d’architectures d’applications et de systèmes répartis complexes basés sur ses principes.
Même si vous n’utilisez pas de langages fonctionnels purs fortement typés (Scala, OCaml, Haskell), cette formation vous offrira de nouveaux outils et concepts pour enrichir votre pratique de l’architecture, de la conception et de la réalisation de programmes complexes.
Les architectures fonctionnelles présentent l’avantage d’être moins complexes et plus robustes que les architectures orientées-objets car elles promeuvent la stricte séparation des calculs et des interactions avec le monde extérieur, la gestion explicite de l’état du système et de ses transformation, la capacité d’abstraire et de généraliser tous les composants du systèmes.
FunAr propose un contenu riche articulant les pratiques issues du Domain Driven Design - séparation des contextes, langages ubiquitaires, primat du domaine métier sur l’infrastructure technique ; de l’eXtreme Programming - conception incrémentale, architecture hexagonale, développement dirigé par les tests ; de la programmation fonctionnelle pure strictement typée - types algébriques de données, classes de types, foncteurs et monades libres, effets algébriques.
Ce contenu est soutenu par une approche pédagogique dynamique basée sur la développement complet d’une application métier réelle suivant le domaine proposé par les participants, de travaux en sous-groupes accompagnés suivis de discussions interactives des concepts introduits et d’un approfondissement des notions au travers d’exemples de code réel, le tout présenté sous la forme de code en langage Haskell.
Cette formation s’addresse aux ingénieur·e·s logiciels, architectes, développeurs et développeuses maîtrisant déjà les outils « standards » du développement logiciel et souhaitant élargir leurs compétences et connaissances sur des techniques émergentes.
La connaissance des langages fonctionnels est un plus mais n’est pas indispensable : si les exemples présentés seront en Haskell, les participants pourront utiliser le langage de leur choix pour les travaux pratiques.
Pour ceux qui souhaitent toutefois pratiquer le langage Haskell, une journée uniquement dédiée à l’apprentissage du langage est proposée en option avant le démarrage de la formation.
Les sessions suivantes sont programmées ou en préparation. Le tarif journalier inclut le déjeuner.
Les dates indiquées ne comprennent pas la journée optionnelle de formation au langage Haskell. Cette journée sera programmée le jour précédent le démarrage de la formation principale.
| Ville | Dates | Tarif H.T./j | Détails | |
|---|---|---|---|---|
| Nantes | du 10 au 12 juin 2020 | 590 € | En partenariat avec ![]() |
S’inscrire |
| Grenoble | Septembre 2020 | 590 € | En partenariat avec ChangIT | S’inscrire |
| Paris | 4ème trimestre 2020 | TBD | Session en préparation, en partenariat avec ![]() |
Je suis intéressé·e |
| Lyon | 4ème trimestre 2020 | TBD | Session en préparation, en partenariat avec ![]() |
Je suis intéressé·e |
Objectif : Utiliser les outils de la FP pour modéliser un domaine métier
Objectif : Construire une application « ligne de commande » autour d’un modèle métier
Objectif : Déployer un service REST-like fonctionnel
Deux jours riches et interactifs. Arnaud et Frederic abordent tous les sujets qui permettent de sauter le pas du fonctionnel en PROD au quotidien. Ils ont su adapter le contenu de la formation aux demandes des participants et répondre à chacune des questions. Excellent !
D’excellents conseils pour enfin démarrer concrètement une pratique professionnelle de la programmation Haskell. Au delà d’Haskell, une exploration poussée des principes essentiels de l’architecture logicielle moderne.
Un excellent moment à coder tous ensemble, de l’architecture les mains dans le cambouis, guidés par deux experts, particulièrement pédagogues et sympathiques, qui maîtrisent parfaitement leur sujet.
Avec cette formation, j’ai pu me perfectionner dans l’utilisation d’un langage fonctionnel, dépasser le cadre de l’utilisation théorique pour voir comment il était possible de penser une application en langage fonctionnel, et qu’est-ce que ce paradigme implique dans la conception et le design logiciel, notamment dans le cas d’une architecture en event-sourcing.
Une initiative particulièrement bienvenue pour tenter de raccrocher les wagons du DDD et de la programmation fonctionnelle !
J’ai trouvé dans le déroulé de cette formation ce qui manque souvent aux contenus sur le sujet : une application des concepts progressive dans un contexte proche des problèmes que l’on rencontre au quotidien.
J’ai participé à la formation FunAR avec une certaine appréhension, sans expérience probante en programmation fonctionnelle et n’ayant donc a priori pas tous les pré-requis pour un contenu qui s’annonçait plutôt pointu.
La formation est effectivement de haute volée, mais Arnaud et Frédéric maîtrisent parfaitement leur sujet, ce qui leur permet de s’adapter au public présent en temps réel. Ils ont su dissiper mes doutes sur la légitimité de ma présence : il “suffit” d’une bonne expérience de développeur et d’avoir les chakras ouverts...
Un jeu de va et vient entre du code très concret (Haskell made simple !) et l’explicitation des concepts et patterns sous-jacents rend la formation directement exploitable, en apportant un regard nouveau sur les tests (QuickCheck et le PBT), les types, ou en dédramatisant l’event sourcing. Je recommande sans réserve :-)
Cette formation est l’adaptation française de la formation FUNAR développée par Michael Sperber et Nicole Rauch en allemand et proposée par l’ISAQB
Les formateurs sont :
Arnaud développe professionnellement depuis 1994 et a soutenu une thèse de Doctorat en Informatique en 2005 sur le « Test et validation de composants logiciels ».
Il a travaillé en ESN, comme coach Agile et XP, formateur et enseignant, chercheur, consultant, tech lead, architecte, CTO de start-ups.
Il code en Haskell, Idris, Java, Javascript, Clojure, C et plein d’autres langages.
Il est intéressé par tout ce qui touche de près ou de loin au code : langages de programmation - particuliérement fonctionnels, conception et architecture, processus de développement et qualité logicielle, agilité - particulièrement dans sa forme XP et « Craft », programmation systèmes, DevOps et automatisation dans le cloud, théorie et pratique des systèmes répartis, organisation et pensée systémique…
Frederic s’intéresse au code, aux individus qui le produisent, à leurs interactions pendant cette production, et à la tension entre le code dispositif technique et le code genre littéraire ; comment s’organiser pour écrire un code utile aujourd’hui, et qui donne les clefs à l’équipe de demain pour le comprendre et le modifier.
Il développe professionnellement depuis 2003.
Il a été core contributeur au compilateur SmartEiffel, a enseigné à l’université, travaillé en ESN, dispensé du coaching agile, leadé des équipes techniques, et écrit du code, beaucoup.
Parmi ses langages favoris : Clojure, Rust, Haskell, mais il a codé aussi en Python, TypeScript et bien d’autres langages - et il espère allonger la liste.