Antonin, Jean-Loup, Quentin, Oscar, Bruno et Julien ont assisté à 2 journées de conférences et ont choisi de nous partager quelques-uns de ces sujets :
- Choregraphy vs Orchestration in Serverless microservices
- What about logs : comment les présenter ?
- L'ergonomie des formulaires Web : bonnes pratiques et erreurs à éviter
- Playwright : Tester ses webapps
- Temporal.io : Mes workflows sont cloud ready
- Dates et heures : Fuyez ou venez découvrir les pièges
- JS et le bon HTML : (re)découvrir les éléments natifs
- DockerFile : si les meilleurs étaient ce que l'on écrit pas
Retour sur les conférences du BreizhCamp, l'événement tech rennais annuel.
Alexandre, Antonin, Olivier et Pierre nous présentent quelques sujets choisis. Des sujets techniques qu'ils souhaitent nous faire partager, ceux qui leurs donnent des idées à mettre en place et à creuser ou tout simplement des sujets qui les ont particulièrement marqués :
- Urbaniser un SI pour 10 ans
- Les bases du Service Mesh
- Arch Unit, le test unitaire de l'architecture
- Fast API, aperçu du framework python
- OAuth 2.1 : Principes et nouveautés
- Rust : Pourquoi l'envisager ?
- REX Lean : Créer un SaaS et être rentable en 6 mois
- Retour sur la Keynote Sécurité
- La théorie de la vitre brisée appliquée à nos métiers
Retour sur les conférences du BreizhCamp, l'événement tech rennais annuel.
Alexandre, Antonin, Olivier et Pierre nous présentent quelques sujets choisis. Des sujets techniques qu'ils souhaitent nous faire partager, ceux qui leurs donnent des idées à mettre en place et à creuser ou tout simplement des sujets qui les ont particulièrement marqués :
- Urbaniser un SI pour 10 ans
- Les bases du Service Mesh
- Arch Unit, le test unitaire de l'architecture
- Fast API, aperçu du framework python
- OAuth 2.1 : Principes et nouveautés
- Rust : Pourquoi l'envisager ?
- REX Lean : Créer un SaaS et être rentable en 6 mois
- Retour sur la Keynote Sécurité
- La théorie de la vitre brisée appliquée à nos métiers
tl;dr
* Le Lean Startup nous a permis d'affiner / de découvrir les problèmes des utilisateurs, et de construire un MVP après une phase de customer discovery
* Il est indispensable d'accélérer le cycle Build Measure Learn pour construire le produit
* Les patterns des Géant du Web sont puissants pour maîtriser et accélérer le build (Feature Flipping, TDD, Continuous Integration, DevOps, Monitoring, Usine de Développement, Pizza Team)
* L'obsession de la mesure implique des changements organisationnels (le backlog évolue, les DODs contiennent des validations sur les mesures, les décisions sont pilotées par les mesures)
* Les apprentissages doivent être rigoureux, en prenant attention de ne pas polluer certaines mesures par des tests sur plusieurs hypothèses simultanément
Lien vers la vidéo : http://tv.octo.com/videos/lean-startup-applique-elcurator/
(Son de mauvaise qualité)
ASFA - Organisation et Méthodologie du projet COLSAFrédéric Sagez
Suite au nouveau schéma directeur pour 2016 du comité de direction, l’Association Nationale pour la Formation Automobile (OPCA basée à Sèvres qui organisme et finance les formations pour les entreprises situées dans le secteur automobile) a demandé à son service support, l’ASFA de veiller à la mise en œuvre et à la cohérence du SI pour les prochaines opérations de collecte de taxe d’apprentissage et de formation continue.
J’interviens dans le cadre de la mise en place du projet de refonte des applicatifs du SI en y apportant de la méthodologie, de l’organisation avec comme première mission d’unifier le Back Office avec les différentes entités. (ASFA, ANFA et le GNFA)
Cette présentation à pour but de décrire la futur organisation pour le développement de nouvelles applications dans le SI tout en privilégiant le Métier.
Une base de données, pourquoi faire ? Le SQL, c’est quoi ce langage ? Un DBA, ça sert à quoi ? Cette session est là pour démystifier la base de données du point de vue des développeurs. Au programme : des bonnes pratiques, de la méthodologie, quelques tips techniques… De quoi rapprocher les développeurs et les DBA.
Le web se renouvelle tous les jours : fonctionnalités, technologies, cadre légal, standards ergonomiques et graphiques. A cela s’ajoute de profondes mutations dans les usages utilisateurs telles que la transition mobile.
Dans ce contexte, à quel moment et comment dois-je envisager la refonte de mon site web ? 10 astuces pour vous aider.
Premier "P'tits Dej Vénères" animé par Dr. Thomas Gerbaud, Julien Gadanho et Boris Petrovitch Njegosh, autour de la réglementation européenne sur la donnée privée et des nouvelles opportunités d'expérience client à développer.
Apprendre à parler humain à vos équipes, c'est simple.
L'installation d'une solution de gestion mobilise toutes les ressources d'une entreprise, une bonne compréhension entre les équipes (Système d'Information, dirigeants, collaborateurs, ...) est déterminante ! Voici un manuel de 15 pages pour que Dirigeants et DSi s'écoutent et se comprennent !
Visual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œilMicrosoft Technet France
Démonstration de transformation de développements spécifiques de solutions prépackagées Upper-Link (provisionning automatique de sites, webpart multirequêtes sur des listes et bibliothèques sharepoint...) développées sous sharepoint 2010 vers le modèle App de 2013 avec une exploitation maximale des fonctionnalités offertes par l'environnement de développement de Visual Studio 2013. Session présentée par le partenaire : Upper-Link.
Speakers : Mehdi Hendli (Upper-link), Kaïs Majbri (Upper-link)
Chaque année, une partie de l'équipe SpikeeLabs se retrouve au Dev Fest de Nantes ! C'est LA rencontre des ingénieurs immanquable 😀
Et comme chaque année, l'ensemble des équipe a un petit debrief !
Novu _ La cloche de l'intranet va enfin faire _Dring🔔SpikeeLabs
Chez SpikeeLabs, le partage d'expérience et de compétences est important.
Mohamed nous a présenté Novu qu'il a développé sur notre intranet interne fait sur-mesure!
Contenu connexe
Similaire à Retour sur les conférences du DevFest de Nantes 2022
tl;dr
* Le Lean Startup nous a permis d'affiner / de découvrir les problèmes des utilisateurs, et de construire un MVP après une phase de customer discovery
* Il est indispensable d'accélérer le cycle Build Measure Learn pour construire le produit
* Les patterns des Géant du Web sont puissants pour maîtriser et accélérer le build (Feature Flipping, TDD, Continuous Integration, DevOps, Monitoring, Usine de Développement, Pizza Team)
* L'obsession de la mesure implique des changements organisationnels (le backlog évolue, les DODs contiennent des validations sur les mesures, les décisions sont pilotées par les mesures)
* Les apprentissages doivent être rigoureux, en prenant attention de ne pas polluer certaines mesures par des tests sur plusieurs hypothèses simultanément
Lien vers la vidéo : http://tv.octo.com/videos/lean-startup-applique-elcurator/
(Son de mauvaise qualité)
ASFA - Organisation et Méthodologie du projet COLSAFrédéric Sagez
Suite au nouveau schéma directeur pour 2016 du comité de direction, l’Association Nationale pour la Formation Automobile (OPCA basée à Sèvres qui organisme et finance les formations pour les entreprises situées dans le secteur automobile) a demandé à son service support, l’ASFA de veiller à la mise en œuvre et à la cohérence du SI pour les prochaines opérations de collecte de taxe d’apprentissage et de formation continue.
J’interviens dans le cadre de la mise en place du projet de refonte des applicatifs du SI en y apportant de la méthodologie, de l’organisation avec comme première mission d’unifier le Back Office avec les différentes entités. (ASFA, ANFA et le GNFA)
Cette présentation à pour but de décrire la futur organisation pour le développement de nouvelles applications dans le SI tout en privilégiant le Métier.
Une base de données, pourquoi faire ? Le SQL, c’est quoi ce langage ? Un DBA, ça sert à quoi ? Cette session est là pour démystifier la base de données du point de vue des développeurs. Au programme : des bonnes pratiques, de la méthodologie, quelques tips techniques… De quoi rapprocher les développeurs et les DBA.
Le web se renouvelle tous les jours : fonctionnalités, technologies, cadre légal, standards ergonomiques et graphiques. A cela s’ajoute de profondes mutations dans les usages utilisateurs telles que la transition mobile.
Dans ce contexte, à quel moment et comment dois-je envisager la refonte de mon site web ? 10 astuces pour vous aider.
Premier "P'tits Dej Vénères" animé par Dr. Thomas Gerbaud, Julien Gadanho et Boris Petrovitch Njegosh, autour de la réglementation européenne sur la donnée privée et des nouvelles opportunités d'expérience client à développer.
Apprendre à parler humain à vos équipes, c'est simple.
L'installation d'une solution de gestion mobilise toutes les ressources d'une entreprise, une bonne compréhension entre les équipes (Système d'Information, dirigeants, collaborateurs, ...) est déterminante ! Voici un manuel de 15 pages pour que Dirigeants et DSi s'écoutent et se comprennent !
Visual Studio 2013 / SharePoint 2013 duo de choc de 2010 à 2013 en un clin d’œilMicrosoft Technet France
Démonstration de transformation de développements spécifiques de solutions prépackagées Upper-Link (provisionning automatique de sites, webpart multirequêtes sur des listes et bibliothèques sharepoint...) développées sous sharepoint 2010 vers le modèle App de 2013 avec une exploitation maximale des fonctionnalités offertes par l'environnement de développement de Visual Studio 2013. Session présentée par le partenaire : Upper-Link.
Speakers : Mehdi Hendli (Upper-link), Kaïs Majbri (Upper-link)
Chaque année, une partie de l'équipe SpikeeLabs se retrouve au Dev Fest de Nantes ! C'est LA rencontre des ingénieurs immanquable 😀
Et comme chaque année, l'ensemble des équipe a un petit debrief !
Novu _ La cloche de l'intranet va enfin faire _Dring🔔SpikeeLabs
Chez SpikeeLabs, le partage d'expérience et de compétences est important.
Mohamed nous a présenté Novu qu'il a développé sur notre intranet interne fait sur-mesure!
Mots de passe : Protégez-les, gérez-les, oubliez-les !SpikeeLabs
Ne laissez pas le manque d'information vous mettre en danger ! Découvrez pourquoi la sensibilisation aux mots de passe est cruciale pour votre sécurité en ligne et comment vous pouvez prendre le contrôle de votre vie numérique dès aujourd'hui.
Dans la présentation on aborde en particulier les notions suivantes :
- Quelques dangers autour du mot de passe
- Les bonnes pratiques sur les mots de passe
- Les bienfaits d’un gestionnaire de mots de passe
- Focus sur le gestionnaire de mots de passe « KeePass »
Julien Montois (CTO Adjoint SpikeeLabs) nous présente le Design-System SpikeeLabs actuellement utilisé sur l'Intranet et sur la solution de facturation Billing Labs :
- Tout d'abord les bases et les grands principes d'un Design-System
- Les objectifs et les particularités du Design-System SpikeeLabs
- Les bienfaits des composants UI Headless
- Un peu de code avec le fonctionnement d'un composant
« Le DDD est une manière de penser et de communiquer sur des problèmes et leurs solutions, entre les équipes techniques et fonctionnelles.
La conception est conduite par un modèle. Ce modèle est en partie constitué d’un langage de communication commun aux experts fonctionnels et aux équipes de développement.
Cette présentation revient sur la philosophie du Domain-Driven Design et de ses outils. Elle traite aussi du Langage Ubiquitaire au Value Object et les principaux patterns Stratégiques et Tactiques pouvant être utilisé dans le développement logiciel sont évoqués. »
Industrialisation du processus de livraison et pratiques DevOps avec Kubernet...SpikeeLabs
Du test unitaire, au linting en passant par les tests end-to-end, l’intégration continue du logiciel est devenu un standard de l’industrie.
En revanche, dans les organisations où la plateforme de déploiement est on-premises ou gérée en interne, le contrat de communication entre les développeurs et les responsables opérationnels (SRE, Sysadmin..) n’est pas toujours très clair : seuls certains développeurs sont réellement impliqués dans le déploiement du produit.
La philosophie DevOps a encore son mot à dire ! L’ensemble des développeurs doit s’impliquer dans la livraison, le déploiement et l’observation du logiciel en production. Dès lors, il faut établir un contrat de communication et mettre en place des outils et process pour réduire les frictions entre développeurs et opérateurs.
Dans cette présentation, je vous présente un retour sur expérience sur la phase d’industrialisation du déploiement et de la livraison continue grâce à #kubernetes et #kustomize, qui a été au cœur de mes missions durant mon alternance chez SpikeeLabs et en collaboration avec Unyc !
Diane, ingénieure chez SpikeeLabs, a eu l’occasion de travailler sur l’amélioration des process d’un projet important en termes d’équipes engagées.
En se basant sur ce projet, Diane nous propose ici un retour d’expérience focalisé sur la méthodologie de tests et de la qualité plus globalement.
Salesforce est un des « poids lourds » des sociétés de la tech mais n’est finalement que peu connue du grand public pour 2 raisons principales : Salesforce offre des solutions B2B et n’a « que 20 ans d’existence ».
Frédéric, architecte Salesforce au sein de SpikeeLabs, va nous dresser une présentation générale de la société et comment ils ont réussi à créer un empire.
Windows ou Linux : il faut choisir... ou pas !SpikeeLabs
Windows ou Linux ? Vieux débat opposant 2 camps avec chacun des arguments recevables mais aussi chacun venant avec son lot de mauvaise foi…
Léo, architecte transverse et responsable d’un « labs » chez SpikeeLabs, ne vient pas ici opposer les 2 systèmes mais plutôt apporter des solutions afin permettre aux personnes devant utiliser les 2 systèmes d’avoir des solutions.
C’est le cas typiquement du développeur devant rédiger une spécification Word, comprendre des schémas d’architecture PowerPoint et dont la politique de l’entreprise est de toute façon de travailler dans un environnement Windows mais qui doit prendre en considération que le système d’exploitation cible de ses développements est une distribution Linux.
Il existe plusieurs alternatives possibles que Léo nous partage au cours de cette session.
9 choses que vous ignorez sur Alice et BobSpikeeLabs
Julien, CTO deputy chez SpikeeLabs, est en charge de l'animation des Labs (entités d'innovation chez SpikeeLabs).
Julien a une longue expérience en cybersécurité et en a fait profiter ses collègues au cours de cette session d'initiation à la sécurité informatique.
Il aborde en particulier les notions suivantes :
- les principes de la sécurité
- l'histoire de la cryptographie
- le vocabulaire à employer
- le fonctionnement de TLS/SSL
- la sécurité dans le développement
- la cryptographie quantique
Lorsqu'un incident survient dans un environnement de production, il faut agir de façon rigoureuse et rapidement.
Antoine, directeur de projet chez SpikeeLabs, nous présente dans ce slideware un "kit de survie" en cas d'incident en production.
Ce kit a été créé sur 2 niveaux :
- process : peu importe le type d'application, les process permettant d'agir sereinement et efficacement en cas d'incident en production respectent toujours plus ou moins les mêmes étapes.
- outillage : les outils de développement sont de plus en plus évolués mais finalement pour nous aider à gérer les incidents en production, nous sommes très souvent amenés à utiliser des outils éprouvés, qu'Antoine nomme affectueusement les "dinosaures de l'informatique"
Bruno Le Fellic (CTO SpikeeLabs) présente l'outil Anypoint DesignCenter de MuleSoft qui permet :
- de spécifier des APIs interactivement
- de tester en ligne avec la génération automatique de mock
- d'exporter un Swagger ou RAML pour l'intégrer à son projet
La vidéo du meetup et de la démo sont disponible sur cette URL : https://bit.ly/3BYWwr7
2. PROGRAMME
Choreography vs Orchestration in Serverless Microservices
What about logs ?
UX Formulaires web
Playwright – web apps testing
Temporal.io
Dates et heures
JS et le bon HTML
BuildPack
4. Avantages :
Facile à implémenter
DIRECT SERVICE-TO-SERVICE CALLS
Inconvénients :
Fortement couplé
Chaque service est un point de défaillance unique
Chaque service a sa logique de Retry/Error/Timeout
Qui assure la transaction ?
5. Avantages :
Faiblement couplé
Modification et scalling facile
Pas de point de défaillance unique
Facile à étendre avec les Evènement
CHORÉGRAPHIE
Inconvénients :
Difficile à debugger / monitorer
La logique de Retry/Error/Timeout est difficile
Le workflow n’est pas explicite
Qui assure la transaction ?
6. Avantages :
Le workflow est explicite et versionné
Monitoring facile de chaque étape
Retry/Error/Timeout centralisé
Services sont indépendants
ORCHESTRATEUR
Inconvénients :
Nouvelle techno à apprendre
Orchestrateur est le point de défaillance unique
Qui assure la transaction ?
7. Quelle est la meilleure solution ?
Direct Calls :
• Une architecture simple avec peu de service qui change
peu
Event-Driven architecture :
• Services faiblement liés
• Pas de parallèle ou d’ordre
Central Orchestrator :
• Services fortement liés
• Exécution ordonnée
CHORÉGRAPHIE OU ORCHESTRATION ?
12. WHAT ABOUT LOGS ?
Au minimum : une date/heure et le sujet du log
Une structuration du log et éviter les problèmes d'interprétation
Les logs et les évènements sont des choses séparées
Les métadonnées ne sont pas le message, elles sont là pour aider !
La présentation est primordiale !
14. UX FORMULAIRES WEB
Se poser les bonnes questions
Utilisateurs différents profils
Clients, experts, admin
Client : Cherche l’adhésion
Clarté, simplicité
Experts : Connait son métier
Complétude, formulaires plus complexes (besoin de voir beaucoup de choses sur un seul écran)
Admin : Actions rapides
Gestion simplifiée, workflows
15. UX FORMULAIRES WEB
Autour du formulaire
Existant ?
Allez vous changer profondément les habitudes ?
Pouvez-vous éviter de les changer ?
Comment accompagner ce changement ?
Métier
Est-ce que la logique métier permet de faire cela ?
Est-ce que les données existent et peuvent être stockées ?
Ai-je suffisamment la connaissance métier ?
16. UX FORMULAIRES WEB
Univers très normé, habitudes anciennes
Ne pas inventer des nouveaux comportements
Innovations basées sur des études : comportements utilisateurs
« Si l’originalité de votre proposition graphique vient
en altérer sa compréhension, changez là »
24. Support des browser modernes
Fonctionne sur Windows, Linux,
macOS, en local ou en CI
Multi Language : TypeScript,
JavaScript, Python, .NET, Java.
Codegen
Inspector
Trace Viewer – screenshot, etc.
VsCode extension
GitHub Actions
Backer par Microsoft 🤫
KÉSAKO ET CE QU’ON NOUS PROMET
26. Génération du code en
fonction des actions
enregistrées par Playwright
Pas besoin d’aller inspecter le
code pour trouver les balises /
id (picking selectors)
CODEGEN
39. DATES ET HEURES
Il existe un 30 février en 1712 pour la Suède (à cause du passage calendrier julien vers
calendrier grégorien, la Suède a rencontré des décalages)
Le 11 mars 1917 à Paris, une annonce informe que l'horloge sera retardée de 9 minutes
Nouvel an au mois de mars en Angleterre (24 mars 1708 -> 25 mars 1709)
En Russie de 1937 jusqu'à la guerre passage en semaine de 6 jours
42. DATES ET HEURES
Récapitulatif:
Utilisation d'une librairie avec les bons types pour stocker et manipuler les dates/heures
Utilisation de la norme ISO 8601
Méfiance avec les dates <2000 et danger si <1970
Bugs qui vont arriver:
En 2028 les CD encodés avec la norme Joliet (extension de l'ISO 9660 pour le stockage de
fichiers) la data ne pourra plus être encodée et difficilement lue (stockage de la date 1900 +
128)
En 2038 gros souci sur le Unix Timestamp stocké sur des entiers sur une architecture 32bits, les
systèmes sous Unix 32 bits ne fonctionneront plus correctement (caméra, four, TV, ...).
44. JS ET LE « BON » HTML
Univers Standardisé
Axiome du Web
Principe du moindre pouvoir
HTML > CSS > JS > …
Design modulaire
Tolérance à l’erreur
HTML, SVG : pas JS
Suivre les spécifications
Ça bouge de temps en temps
45. JS ET LE « BON » HTML
Javascript pousse HTML et CSS
Pas mal de fonction JS deviennent du CSS, HTML
Hover
Smooth scroll
Positionnement
Support navigateur de plus en plus large
46. JS ET LE « BON » HTML
Élément « datalist »
Autocomplete natif
47. JS ET LE « BON » HTML
Autoremplissage
Email, password, newpassword
OneTimeCode
48. JS ET LE « BON » HTML
Formater la saisie
pattern
Validation
Pseudo-classe => :valid , :invalid , :out-of-range
Spellcheck = false
49. JS ET LE « BON » HTML
Spellcheck = false
Vérification orthographique Google
Exfiltration de données
“The company then went on to make clear that it is aware that
the data may sometimes be sensitive, so text isn’t attached
to any user identity and only stored and processed on Google’s
servers temporarily. The company further vowed to improve its
own processes to exclude passwords from being processed
proactively.”
50. JS ET LE « BON » HTML
Formulaires, nombreux attributs utiles
59. Kanye West, Maths and Signals ! How to
clone Shazam
Conception de langage : communiquer
avec la machine
D’AUTRES PRÉSENTATIONS INTÉRESSANTES
60. Rennes
35 Boulevard Solférino
35000 Rennes
Paris
350 rue de Vaugirard
75015 Paris
Nantes
Whoorks Nantes Gare
17 Boulevard de Berlin
44000 Nantes
+ 33 2 30 96 21 60
www.spikeelabs.fr
Avantages :
Facile à implémenter
Inconvénients :
Fortement couplé
Chaque service est un point de défaillance unique
Chaque service a sa logique de Retry/Error/Timeout
Qui assure la transaction ?
Avantages :
Faiblement couplé
Modification et scalling facile
Pas de point de défaillance unique
Facile à étendre avec les Evènement
Inconvénients :
Difficile a debugger / monitorer
La logique de Retry/Error/Timeout est difficile
Le workflow n’est pas explicite
Qui assure la transaction ?
Avantages :
Le workflow est explicite et versionné
Monitoring facile de chaque étape
Retry/Error/Timeout centralisé
Services sont indépendants
Inconvénients :
Nouvelle techno à apprendre
Orchestrateur est point de défaillance unique
Qui assure la transaction ?
Quelle est la meilleur solution ? It depends !
On est pas obliger de choisir, on peux faire un mix de ses solutions.
En anglais
Culture -> testing culture
Multiple everything. Test scenarios that span multiple tabs, multiple origins and multiple users.
Browser contexts. Playwright creates a browser context for each test
On peut vérifier si on est sur un desktop ou un téléphone
Fait partie de la vague « OpenSource by Microsoft »
Dans système de workflow on a les diffèrent étape métier (bleu)
Pour chacune de ces étape on a donc un micro service associé.
Et pour chacun de ces µs il y a possiblement un workflow a exécuter, avec des sous étape.
C’est la que les problèmes commence
Quand il faut que chaque µs gère
les erreurs
les retry
Les timeout,
les tous les mécanismes asynchrones
On se retrouve avec de la duplication de code partout et des gestion des erreurs non homogène
Temporal est un Framework de Workflow.
On déploie un cluster Temporal.io et une base de donnée
Et on y connecte ses micro service
Chaque µS s’enregistre au près de Temporal en décrivant les tache qu’il est capable d’exécuter.
Le client demande à temporal l’exécution d’un workflow. Et temporal orchestre l’exécution du workflow
La gestion de l’asynco est faite par Temporal
Et la gestion des erreurs, retry ,timeout et des rejeux est standardisé par Temporal
Vous avez 200 images docker en production. Une vulnérabilité est découverte dans l’image de base.
L’ops qui normalement doit agir dans ce cas, se retrouve a attendre que les programmer fix chacune des images avant de pouvoir redeployer.
Et les développeur doivent mtn mettre a jours à chaque vulnerabilité.
Les buildpack ont été inventé par Heroku, et est maintenant Soutenue par la Cloud native computing Fundation
Les buildpack permettent de construire une images docker à partir des sources et rien d’autre.
Chaque buildpack détecte la présence de déclencheur dans le code source:
Fichier .py buildpach install python
Fichier pyproject.toml install poetry
On obtiens donc une images docker sans avoir a la décrire.
Cela permet au Ops de régénérer une images docker sans changer le code.
Et au développeur de ne pas s’occuper des images docker et de leur vulnérabilité.
Shazam : comment ça fonctionne / transformée de fournier
Un mec qui fait son compilateur