From 56de7d6b01a1e8b5e49e4614e6b2ddf9373e62be Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Wed, 10 Dec 2025 05:35:47 +0100 Subject: [PATCH] Add upcoming events to seed data: Introduce new workshops on monoids, naming processes, rule design patterns, and wrap refactoring techniques, enhancing the event catalog for better user engagement and learning opportunities. --- prisma/seed.ts | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/prisma/seed.ts b/prisma/seed.ts index f74cecf..ad36b8c 100644 --- a/prisma/seed.ts +++ b/prisma/seed.ts @@ -206,6 +206,50 @@ async function main() { time: "11h-12h", maxPlaces: 25, }, + { + date: new Date("2025-12-01"), + name: "Monoids everywhere ?", + description: + "Nous manipulons tous, au quotidien, des données que nous devons combiner : additionner des montants, calculer des moyennes, regrouper des résultats, agréger des indicateurs. Pourtant, derrière ces opérations, se cachent souvent des règles implicites, des exceptions, amenant une complexité qui rend le code difficile à comprendre et à faire évoluer.\n\nLes monoids permettent d'aborder ces problématiques avec une grille de lecture claire et structurante. Ils reposent sur une idée simple : pour agréger correctement des valeurs, il faut savoir comment elles se combinent et définir ce qui représente une valeur neutre.\n\nCet atelier propose une approche progressive pour comprendre comment ce concept peut transformer la manière de modéliser et de concevoir des comportements métier. Nous découvrirons comment les monoids aident à réduire la charge cognitive et à rendre le code plus cohérent avec l'intention métier.", + type: EventType.CODE_KATA, + status: EventStatus.UPCOMING, + room: "Nautilus", + time: "11h-12h", + maxPlaces: 25, + }, + { + date: new Date("2025-11-24"), + name: "Naming as a Process", + description: + "Rech. proj. pr proj. priv. self-dem.brt. poss. S'adr.à l'hôt. MART.\n\nBien sûr, S'adr.à l'hôt. MART. et plus si affinités, c'est plus humain… mais pas forcément plus compréhensible : on a beau lire et relire le contenu de la méthode, on est quasiment sûr que son nom, il bluffe !\n\nFaut-il pour autant laisser de mauvais noms tromper 1000 fois 1000 personnes ?\n\nDans cette nouvelle session, nous appliquerons Naming as a Process, une méthode de refactoring progressive centrée sur le nommage.\n\nObjectif : faire émerger la logique métier à travers des noms clairs, précis et alignés avec l'intention réelle du code. Au fil des étapes, nous transformerons un bloc obscur en fonctions lisibles, maintenables et prêtes à danser la carioca.\n\nPrenez un chewing-gum, ouvrez votre IDE, et venez explorer un moyen simple de refactorer vers un code plus respectueux des principes S, puis O, D, I et L ...", + type: EventType.CODE_KATA, + status: EventStatus.UPCOMING, + room: "Nautilus", + time: "11h-12h", + maxPlaces: 25, + }, + { + date: new Date("2025-11-10"), + name: "The Rule Design Pattern", + description: + "Les ateliers d'Event Storming permettent de faire émerger des Policies : des règles métier qui traduisent comment le système réagit à un événement ou déclenche une action. Sur le papier, tout est clair — mais au moment de coder, ces règles se diluent souvent dans des if/else, des services surchargés ou des comportements implicites.\n\nLe design pattern Rule offre une façon concrète de ramener ces Policies au cœur du code, sous une forme explicite, modulaire et testable. Chaque règle devient un objet du domaine, capable de dire si elle s'applique et d'exécuter sa logique, en respectant les invariants du modèle.\n\nCe pattern facilite la traduction du langage métier en code exécutable : les règles deviennent lisibles, combinables et extensibles en limitant la complexité.\n\nEn explorant le Rule Pattern, nous découvrirons ainsi comment faire vivre les Policies dans notre code, au service d'un modèle plus riche, plus compréhensible, et mieux aligné avec la connaissance du métier.", + type: EventType.CODE_KATA, + status: EventStatus.UPCOMING, + room: "Nautilus", + time: "11h-12h", + maxPlaces: 25, + }, + { + date: new Date("2025-11-10"), + name: "Wrap refactoring techniques", + description: + "Lorsque le code commence à vieillir, il arrive qu'une méthode ou une classe devienne trop risquée à modifier directement : effets de bord, dépendances invisibles, tests manquants... le moindre changement entraîne des régressions.\n\nLes Wrap Techniques offrent une approche sûre et progressive : plutôt que de changer directement le code existant, on l'enveloppe dans une nouvelle abstraction ou une nouvelle méthode. On peut alors introduire de la logique ou un nouveau comportement, en changeant le contrat initial, sans casser les tests.\n\nDurant cette session nous verrons comment et quand utiliser ces techniques et nous en explorerons leurs bénéfices : isolation du risque, refactorings incrémentaux, amélioration de la testabilité.\n\nNous mettrons bien sûr en pratique sur un exemple de code pour comprendre comment ces refactorings facilitent les transitions vers un meilleur design.", + type: EventType.CODE_KATA, + status: EventStatus.UPCOMING, + room: "Nautilus", + time: "11h-12h", + maxPlaces: 25, + }, ]; const events = await Promise.all(