- Développement
- Quicky
- Avancé
- 15 min
Parce quâun bon Commit vaut mille lignes de commentaires
Date jeudi
Horaire 11h05 Ă 11h20
Salle Amphi E
Description
Dans le premier projet dans ma carriĂšre professionnelle en tant que dĂ©veloppeur, les membres de lâĂ©quipe ont souvent changĂ© durant la durĂ©e de vie du projet dâune douzaine d'annĂ©es. Ătant arrivĂ© vers la fin du projet, jâai pu rapidement comprendre les choix techniques du projet, et apprĂ©cier la qualitĂ© de maintenabilitĂ© de la base de code. TrĂšs peu de dettes de connaissances Ă©taient prĂ©sentes car tous les changements Ă©taient bien retranscrits en utilisant une pratique de commits atomiques au sein de lâoutil de versionning Git. Dans mon projet actuel, les dĂ©veloppeurs nâutilisent pas cette mĂȘme pratique. Les difficultĂ©s sont donc multiples. Ma prĂ©sentation a pour but de faire un retex sur les gains et la mise en place de cette pratique de commits atomiques Voici ce que vous apprendrez dans la confĂ©rence: DĂ©finir ce qu'est un commit atomique et les types de changements rencontrĂ©s Structuration du commit: Choisir une convention de nommage des commits. Utilisation de la nomenclature de commit conventionnels S'attacher au âpourquoiâ plutĂŽt qu'au âquoiâ âcommentâ dans le message de commit Réécrire son historique Git avec le rebase interactif A la fin de cette confĂ©rence, les spectateurs pourront eux mĂȘmes appliquer cette mĂ©thode et en tirer les bĂ©nĂ©fices suivants Tracer et documenter des choix techniques sans utiliser des commentaires directement dans le code RĂ©duire le temps passer Ă faire des relectures & le nombre de commentaires pour comprendre la visĂ©e de certains changements Identifier plus rapidement lâintroduction de bugs au sein du code avec lâutilisation de la commande âgit bisectâ
Orateur·ices
Alexandre Muller
Ingénieur CetrnaleSupéelec spécialisé dans l'architecture des systÚmes informatiques, j'ai participé à de nombreux projets informatiques sur des domaines métiers trÚs divers (cloud, mobilité, média, défense). Mon domaine d'expertise se situe autour du backend avec l'utilisation de frameworks Python (Django, FastApi, ...)
Actions rapides
Les sessions futures sur le mĂȘme thĂšme
- Développement
- Conférence
Jointures et agrégats en SQL : piÚges classiques et fonctionnalités méconnues
Jointures et agrĂ©gats : deux piliers du SQL qui, malgrĂ© leur symĂ©trie fonctionnelle (passer dâun enregistrement Ă plusieurs, ou inversement), cachent des mĂ©canismes et des piĂšges radicalement diffĂ©rents. Les jointures vous jouent des tours ? Doublons inattendus dans vos rĂ©sultats paginĂ©s, choix cornĂ©lien entre INNER ou LEFT JOIN⊠Et cĂŽtĂ© agrĂ©gats, les classiques SUM, MAX ou MIN ne suffisent plus ? DĂ©couvrez comment exploiter les window functions, les CUBE/ROLLUP/GROUPING SETS, et mĂȘme les agrĂ©gats avancĂ©s de PostgreSQL (JSON, XML) pour transformer vos requĂȘtes en outils ultra-puissants. Si vous utilisez SQL, cette confĂ©rence vous donnera les clĂ©s pour Ă©crire du SQL expressif et "moderne". PrĂȘt Ă passer Ă la vitesse supĂ©rieure ?
Jeudi 11h30 Ă 12h25 - Amphi E
- Développement
- Conférence
1BRC avec Node.js : Au-delĂ de l'Event Loop
Le "1 Billion Row Challenge" a poussĂ© Java dans ses derniers retranchements. Mais Node.js, souvent rĂ©duit Ă son rĂŽle "single-threaded", a-t-il les Ă©paules pour relever ce dĂ©fi ? Je vous propose un voyage au cĆur de la comprĂ©hension du runtime. Nous partirons d'une implĂ©mentation naĂŻve pour la reconstruire brique par brique. Au programme : Ă©viter le Garbage Collector, maĂźtriser le Zero-Allocation, et orchestrer Worker Threads et Shared Memory ou encore utiliser WebAssembly. Venez dĂ©couvrir comment transformer du JavaScript classique en une solution haute performance, grĂące Ă des concepts applicables bien au-delĂ de ce challenge.
Jeudi 11h30 Ă 12h25 - Amphi D
- Développement
- Conférence
Développer un moteur de rÚgle en 50 minutes, l'AST à la rescousse
Cette confĂ©rence est issue d'une histoire vraie, oĂč j'ai du Ă©crire un moteur de rĂšgles qui doit pouvoir modifier le contenu d'un document JSON en utilisant un DSL maison đ exposĂ© par une API REST đ Lors de la premiĂšre tentative, nous Ă©tions parti sur l'utilisation du langage Kotlin, Ă base de KFunction, de KParameters, d'introspection, qui s'est rĂ©vĂ©lĂ©e ĂȘtre un enfer. C'est en discutant de mes dĂ©boires avec un collĂšgue qu'il m'a dit: "mais en fait c'est un AST ton truc đĄ". L'AST, Abstract Syntax Tree est une structure de donnĂ©es permettant de reprĂ©senter un programme, exactement ce que l'on cherche Ă accomplir pour notre moteur de rĂšgles, mais ça je ne le savais pas ! Le lendemain, il m'envoyait un scratch IDEA de 40 lignes reprĂ©sentant bien mieux le coeur de notre futur moteur que mes innombrables fonctions gĂ©nĂ©riques de haut niveau et mon code impossible Ă maintenir. C'est pas clair ? Alors venez, on redĂ©veloppe from-scratch le coeur du moteur avec Kotlin en quelques lignes de code, en illustrant le concept de ce fameux AST.
Jeudi 12h30 Ă 13h25 - Amphi D