- Développement
- Conférence
- 55 min
G1, ZGC, Shenandoah... Chez Java, ils sont gentils avec tous leurs GCs mais moi je choisis lequel ?
Date jeudi
Horaire 8h30 à 9h25
Salle Amphi D
Description
On a l'impression qu'avec chaque version de Java il y a de plus en plus de Garbage Collectors (GCs) avec de plus en plus d'options. On entend des phrases cryptiques telles que "Oh trop bien ZGC est devenu générationnel alors que Shenandoah ne l'est pas" ou "T'as vu chez Netflix ils ont réduit leurs tail latencies avec ZGC". Du coup on se pose tout plein de questions: * qu'est-ce qu'ils racontent ? * ZGC c'est quoi ? * si ce ZGC est si magique, pourquoi il y a d'autres GCs dans Java, hein ? * pourquoi on ne parle toujours que des différents GCs de Java mais jamais pour Go ou JavaScript ? chez Java ils ne sont pas capables d'en choisir un ? * et en natif, on a besoin d'un GC ? Dev Java ou simples curieuses et curieux, tout le monde est bienvenu. On va repartir des bases, en commençant il y a 30 ans lors de la création de Java jusqu'à maintenant pour comprendre pourquoi on a toujours besoin d'un GC et pourquoi ce n'est pas un problème résolu (comme l'API Collection). On fera aussi un tour des GCs, de leurs évolutions, de pourquoi on en est arrivé là, de leurs forces et de leurs faiblesses. (spoiler alert: ZGC n'est pas le GC qui les remplacera tous) À l'issue de ce talk vous saurez quand utiliser quel GC afin de trouver le plus adapté à chaque projet, chaque application, chaque environnement.
Orateur·ices
Antoine Dessaigne
Antoine est développeur Java depuis une vingtaine d'années. Depuis 2012 il travaille sur un logiciel d'analytics chez Axway, un éditeur français de logiciels. Il fait ses premiers pas en tant que développeur puis devient architecte sur le projet. Depuis 6 ans le focus est mis sur l'amélioration des performances et sur la migration vers un environnement cloud.
Actions rapides
Les sessions futures sur le même thème
- Développement
- Quicky
Parce qu’un bon Commit vaut mille lignes de commentaires
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”
Jeudi 11h05 à 11h20 - Amphi E
- 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