• DĂ©veloppement
  • Quicky
  • Standard
  • 15 min

Le hasard fait bien les tests

  • Date vendredi
  • Horaire 10h45 Ă  11h00
  • Salle Amphi E

Description

> Le hasard fait bien les choses. Si on applique cette idĂ©e aux tests unitaires ou aux tests d'intĂ©gration, on peut rendre nos tests beaucoup plus imprĂ©visibles et du coup trouver des problĂšmes que notre esprit n'aurait jamais osĂ© imaginer ! Par exemple, rĂ©cemment, j'ai dĂ©couvert dans une bibliothĂšque de gestion de configuration, [un bug](https://github.com/gestalt-config/gestalt/issues/242) qui se produit lorsque la `Locale` est configurĂ© en `AZ`. đŸ€ŠđŸŒâ€â™‚ïž Un autre exemple encore plus simple : ```java int input = generateInteger(Integer.MIN_VALUE, Integer.MAX_VALUE); int output = Math.abs(input); ``` Peut gĂ©nĂ©rer `-2147483648`... Ce qui est assez inattendu pour une valeur absolue ! 😉 Les tests alĂ©atoires peuvent dĂ©couvrir ces cas tordus... C'est ce que l'Ă©quipe elasticsearch a mis en place depuis plusieurs annĂ©es Ă  l'aide du framework [RandomizedTesting](https://labs.carrotsearch.com/randomizedtesting.html) pour tester tout le code Java. Ajoutez Ă  ça de vrais tests d'intĂ©gration Ă  l'aide de [TestContainers](https://java.testcontainers.org/modules/elasticsearch/) et vous aurez une approche complĂšte pour des tests qui Ă©chouent rĂ©guliĂšrement ! AprĂšs cette confĂ©rence, vous ne verrez plus jamais la fonction `random()` comme avant et dĂ©couvrirez comment la (mal)chance peut vous aider ! 🍀

Orateur·ices

David Pilato

David Pilato discovered Elasticsearch project in 2011. After contributed to the project and created open source plugins for it, David joined elastic the company in 2013 where he is Developer and Evangelist. He also created and still actively managing the French spoken language User Group. At elastic, he mainly worked on Elasticsearch source code, specifically on open-source plugins. In his free time, he likes talking about elasticsearch in conferences or in companies (Brown Bag Lunches AKA BBLs - https://www.elastic.co/blog/free-lunch-for-open-source-engineers). He is also author of FSCrawler (https://github.com/dadoonet/fscrawler) project which helps to index your pdf, open office, whatever documents in elasticsearch using Apache Tika behind the scene.

Actions rapides

Voir la vidéo

Les sessions futures sur le mĂȘme thĂšme

    • DĂ©veloppement
    • Quicky

    Petit guide pratique des UUID

    Les UUID sont partout, utilisĂ©s souvent machinalement comme identifiant. Revenons un instant sur leurs origines et ce qu'ils garantissent vraiment — l'unicitĂ© globale sans coordination, pratique, mais pas toujours le meilleur choix comme clĂ© d'unicitĂ©. On explore ensuite quand les employer (ou pas) dans des bases de donnĂ©es et des systĂšmes distribuĂ©s, avant de comparer les diffĂ©rents gĂ©nĂ©rateurs crĂ©ant des arbitrages concret entre confidentialitĂ© et performance.

    Vendredi 11h05 Ă  11h20 - Amphi E
    • DĂ©veloppement
    • ConfĂ©rence

    Server-Sent Events : quand l'API murmure à l’oreille de votre navigateur

    Vos utilisateurs en ont marre d’attendre... Nos applications s’essoufflent sous le poids du polling et des loaders plus ou moins maĂźtrisĂ©s . Et si les Server-Sent Events (SSE) Ă©taient la solution simple et lĂ©gĂšre que vous cherchez ? Les SSE permettent de basculer d’un modĂšle oĂč le navigateur demande Ă  un systĂšme ou le serveur murmure Ă  son oreille. Ce changement de paradigme a de nombreux impacts sur l'architecture, le code, et mĂȘme sur la conception de l’expĂ©rience utilisateur. Charline et Nicolas, Lead Tech Frontend et Backend, vous partagent leur retour d’expĂ©rience sur cette mise en place dans des cas d'usages rĂ©els. Dans des jeux multi-joueurs, ou dans des applications de gestion traditionnelles, ils vous montreront les cas d'usages concret, les gains et les piĂšges Ă  Ă©viter. Venez dĂ©couvrir comment les SSE influencent votre code, de l'intĂ©gration aux frameworks Frontend, jusqu'Ă  la sĂ©paration lecture/Ă©criture cĂŽtĂ© backend. Vous verrez aussi comment cette approche fait Ă©voluer la conception des Ă©changes Front/Back et l'expĂ©rience utilisateur, tout en offrant de nouvelles possibilitĂ©s...

    Vendredi 11h30 Ă  12h25 - Amphi B
    • DĂ©veloppement
    • ConfĂ©rence

    Rust pour le dĂ©veloppement d'applications mĂ©tier haut-niveau ! 🩀

    Rust est connu pour ĂȘtre un langage trĂšs performant, trĂšs "bas niveau", trĂšs ardu Ă  prendre en main, etc. Et si je vous disais que si tout ça est probablement vrai, ce n'est pas du tout le plus important ? Eh oui, Rust est selon moi le langage idĂ©al pour dĂ©velopper des applications, parfois de trĂšs haut niveau, car il nous donne les moyens de modĂ©liser des domaines mĂ©tiers avec prĂ©cision et simplicitĂ©. Parcourons-donc ensemble ce qui fait la richesse "applicative" de Rust ! 🩀 - Un systĂšme de types ultra-expressif, appliquĂ© Ă  des domaines mĂ©tiers complexes. Voyons comment les Structs, le Pattern Matching et les Traits de Rust le rendent totalement compatible avec des approches haut-niveau comme l'Architecture Hexagonale ou le Domain Driven Design - Un Ă©cosystĂšme de librairies applicatives solide, complet, et agrĂ©ablement documentĂ©. Venez avec moi parcourir la somptueuse documentation de librairies comme serde, actix-web, ou wiremocks, qui vont vous redonner envie d'Ă©crire de la documentation technique, pour les devs et par les devs - Une maniĂšre de tester les applications qui n'a pas son pareil, et qui complĂ©mente superbement le langage afin de vous permettre de dĂ©velopper vos applications avec le meilleur filet de sĂ©curitĂ© possible. Tests d'IntĂ©grations, Mocks, Rust a tout du langage de haut-niveau pour dĂ©livrer le maximum de valeur. C'est un tour d'horizon qui changera, j'en suis sĂ»r, votre perception de ce langage qui paraĂźt tellement "orientĂ© performance et optimisation mĂ©moire" qu'on en oublie que c'est avant tout un langage trĂšs expressif. Et mĂȘme si vous n'Ă©crirez jamais une ligne de Rust, cette confĂ©rence devrait vous donner pas mal de tuyaux sur l'Ă©criture moderne d'applications et ce qu'on est en droit d'attendre de nos Ă©cosystĂšmes de dĂ©veloppement 😉

    Vendredi 12h30 Ă  13h25 - Amphi E