liksi logo

Miditech LIKSI : récap de l’année 2022

Ylona - Publié le 05/04/2023
Miditech LIKSI : récap de l’année 2022

Dans le secteur de la tech, travailler sa culture technique est un point essentiel. Plus que ça, en tant que développeur, il est indispensable de nourrir sa passion, mais aussi de s’améliorer continuellement pour s’adapter aux évolutions. Chez Liksi, on le revendique haut et fort : la passion et la “culture tech” sont deux notions chères à notre cœur. Voilà pourquoi nous avons mis en place les miditechs.

Miditech kesako ?


Les miditechs sont des rendez-vous internes durant lesquels un ou plusieurs collaborateurs proposent une présentation sur le temps du midi ayant pour objet un sujet technique. Un moment de partage où l’ensemble de l’équipe peut poser ses questions, nourrir sa curiosité sur des sujets techniques pertinents et cela tous les 15 jours.

On passe au récap’ des miditechs ?

On commence en douceur avec le mois de janvier. Nous avons démarré la cuvée 2022 des miditechs avec la thématique “Dojo Decorator et Proxy” présentée par Irina, Romain et Antoine B. 

Le récap techno : 

Le pattern Decorator est un design pattern qui permet d’ajouter des fonctionnalités à un objet existant sans altérer sa structure. Il utilise une fonction décoratrice pour ajouter les nouvelles fonctionnalités à l’objet cible.

Le proxy est un objet qui agit comme un substitut pour un autre objet (appelé l’objet cible) et contrôle l’accès à celui-ci. Il peut être utilisé pour ajouter des comportements supplémentaires avant ou après l’accès à l’objet cible, ou pour bloquer complètement l’accès à celui-ci.

Le second miditech de janvier portait sur un dojo sur la clusterisation d’une application Spring Boot par Corentin, Charles et Tristan.

Le récap techno :  

La clusterisation d’une application Spring Boot consiste à exécuter plusieurs instances de l’application sur différents nœuds d’un cluster, de manière à augmenter la disponibilité et la tolérance aux pannes de l’application. Cela permet également de gérer une charge élevée en répartissant la charge entre les différentes instances. Les instances peuvent communiquer entre elles pour synchroniser les données et gérer les états partagés.

Nous avons terminé le mois de janvier (qui était donc bien rempli) avec la présentation Angular startswith(“RxJS”) par la team Angular composée de Raphaël B, Stéphane, Adrien et Rémi !

Le récap techno : 

RxJS (Reactive Extensions for JavaScript) permet de gérer les flux de données réactifs dans l’application. C’est une bibliothèque qui permet de manipuler des données sous forme de flux (ou observables) plutôt que comme des valeurs simples. Cela permet de gérer des données qui peuvent changer au fil du temps de manière efficace et de gérer les événements asynchrones de manière simple.

En février, nous avons pu entretenir notre culture tech avec la présentation de Vincent et Loïc sur React hooks ou encore un miditech live coding Tests unitaires !

Le récap techno : 

Les React Hooks sont une fonctionnalité introduite dans React 16.8 qui permet d’utiliser les fonctionnalités de React, telles que la gestion de l’état et des contextes, dans des composants de fonction plutôt que dans des composants de classe. Les hooks offrent une syntaxe plus simple et plus intuitive pour gérer l’état et les effets secondaires dans les composants React, et ils permettent également de partager facilement des logiques entre les composants. Les hooks les plus couramment utilisés sont useState et useEffect.

Le récap techno : 

Côté test unitaire, on vous propose 3 bonnes pratiques pour bien les gérer  :

Gardez les tests unitaires indépendants les uns des autres : Assurez-vous que les tests unitaires ne dépendent pas les uns des autres et ne modifient pas l’état global de l’application. Cela permet de les exécuter dans n’importe quel ordre et de ne pas avoir à se soucier des effets de bord entre les tests.

Utilisez des entrées et des résultats prévisibles : utilisez des entrées et des résultats prévisibles pour vos tests, de sorte que vous sachiez exactement ce que vous attendez. Cela vous permettra de détecter facilement les erreurs et de les corriger rapidement.

Couvrez tous les cas d’utilisation : Assurez-vous que tous les cas d’utilisation importants sont couverts par des tests unitaires. Cela garantit que toutes les fonctionnalités clés de votre application sont testées et qu’elles fonctionnent correctement. Il est également important de tester les cas limites pour s’assurer que l’application gère correctement les entrées inattendues ou les erreurs.

En mars, nous avons eu droit à la démonstration de Bundlers JS par Mathis et Yoann, ou encore à un miditech ReactJS sur la gestion des stores !

Le récap techno : 

Les bundlers JS sont des outils qui permettent de regrouper plusieurs fichiers JavaScript en un seul fichier pour une utilisation dans un navigateur web. Les bundlers aident à résoudre les problèmes de performance liés au chargement de nombreux fichiers JavaScript indépendants et à la gestion des dépendances entre ces fichiers

Le récap techno : 

La gestion des stores dans ReactJS fait référence à l’utilisation d’un pattern de conception appelé “Flux” pour gérer l’état de l’application. Le pattern Flux est un modèle de gestion de l’état unidirectionnel qui permet de centraliser la gestion de l’état de l’application dans un ou plusieurs stores.

En avril, nous avons poursuivi avec la CoreTeam qui nous a fait une vaste présentation des bonnes pratiques projet

NodeJS et ses particularités ont également été à l’honneur durant le second miditech du mois présenté par Sterenn, Yoann D, Mathieu et Mathis !

Le récap : 

Pour les bonnes pratiques projet, voici quelques tips à retenir et à mettre en place si ce n’est pas déjà le cas : 

Utilisez un contrôle de version (comme Git) pour suivre les modifications apportées au code et faciliter la collaboration entre les développeurs.

Utilisez un système de gestion de tâches pour planifier et suivre les tâches à effectuer dans le projet.

Utilisez des conventions de nommage et une architecture de code claires pour faciliter la compréhension et la maintenance du code.

Utilisez des outils d’automatisation pour automatiser les tâches répétitives telles que la compilation, le test et le déploiement.Utilisez des tests unitaires et automatisés pour vérifier la qualité du code et détecter les erreurs rapidement.

Récap techno :
Concernant Node.js, si vous ne connaissez pas déjà (hein ? Qui  ne connaît pas ??) c’est un environnement d’exécution JavaScript côté serveur  qui utilise le moteur JavaScript V8 de Google pour exécuter le code JavaScript sur le serveur.

L’une des principales particularités de Node.js est qu’il permet de développer des applications web full-stack (c’est-à-dire des applications qui gèrent à la fois le front-end et le back-end) en utilisant un seul langage : JavaScript. Cela facilite la communication entre les différentes couches de l’application et rend le développement plus efficace.

Node.js est également connu pour sa capacité à gérer de nombreux utilisateurs simultanément grâce à son modèle d’exécution basé sur les événements. Cela le rend particulièrement adapté pour les applications en temps réel, telles que les jeux en ligne, les applications de chat ou les applications IoT.

En mai, Vincent et Stéphane se sont lancé avec la présentation côté front avec Svelte ! De plus, nous avons eu le plaisir d’accueillir notre premier intervenant externe de l’année avec Hermann ! Durant ce miditech, il a pu nous initier sur l’agilité et plus particulièrement sur la méthode SCRUM

Le récap techno : 
Svelte est un framework JavaScript pour le développement d’interfaces utilisateurs côté front. Il se distingue des autres frameworks (comme React ou Angular) car il utilise une approche différente pour la manipulation du DOM (Document Object Model), appelée “compilation à la volée”.

Avec Svelte, le code écrit par le développeur est compilé en code JavaScript standard au moment de l’exécution, plutôt que de laisser le navigateur interpréter du code JSX ou d’autres syntaxes spécifiques à un framework. Cela signifie que le code généré est plus léger et plus rapide à exécuter que les autres frameworks.

Le récap techno : 

Côté agilité et scrum, on vous remet les principes de bases : 

Équipe auto-organisée : L’équipe de développement est responsable de la planification, de l’exécution et de la livraison du produit. Elle est également responsable de la résolution des problèmes qui se posent au cours du développement.

Sprint : Les tâches sont organisées en sprints, qui sont des périodes de temps (généralement de 2 à 4 semaines) durant lesquelles l’équipe travaille pour atteindre un objectif spécifique. A la fin de chaque sprint, un produit fonctionnel est livré.

Rétrospective : A la fin de chaque sprint, l’équipe se réunit pour discuter de ce qui s’est bien passé et de ce qui a mal tourné au cours du sprint. Les améliorations sont planifiées pour le sprint suivant.

Product Backlog : Il s’agit d’une liste de toutes les tâches à effectuer pour livrer le produit final. Elle est gérée par le propriétaire du produit (Product Owner) et est priorisée en fonction des besoins métier.

Sprint Backlog : Il s’agit de la liste des tâches qui seront réalisées au cours du sprint en cours. Elle est gérée par l’équipe de développement.

Daily Scrum : Il s’agit d’une réunion quotidienne de l’équipe de développement pour synchroniser les travaux et planifier la journée.

Durant le mois d’avril, la team a pu assister à la présentation de Mathieu P et Maxime O sur le Mob programming, une méthode de développement de logiciels où une équipe de développeurs travaille ensemble sur un même ordinateur pour écrire du code en temps réel. Un exercice ludique où tout le monde est impliqué dans le process de développement. Le but est de maximiser la collaboration, la communication et la compréhension mutuelle entre les développeurs pour améliorer la qualité du code produit, mais aussi la vitesse de développement.

Pour le mois de juin, Fabien s’est prêté au jeu à l’occasion de sa soutenance de stage en tant que développeur fullstack à LIKSI !

En juillet, c’était au tour de Fabrice de nous présenter son REX de sa mission en tant que prestataire au sein de l’entreprise Hellowork !

Pour la rentrée de septembre, nous retrouvons Thomas qui s’est lancé dans un retour d’expérience de la mise en place de l’agilité dans son ancien projet. Enfin, un dojo TDD a été réalisé par la team Craftmanship !

Le récap techno :

Un dojo TDD ? Késako ? 

Un “dojo TDD” (Test-Driven Development) est un type d’atelier ou de session de formation qui vise à enseigner aux développeurs les principes et les pratiques de la méthode de développement dirigé par les tests (TDD). Il se concentre sur l’utilisation de tests pour écrire du code de manière itérative et incrémentale.

Un dojo TDD se déroule généralement en plusieurs étapes :

Présentation des concepts clés du TDD, tels que les tests unitaires, la couverture de code, les assertions, etc.

Pratique de l’écriture de tests avant d’écrire le code, de manière à se concentrer sur les spécifications et les exigences du code.

Écriture de tests unitaires pour des cas d’utilisation spécifiques et développement de code pour les faire passer.

Répétition de l’étape 2 et 3 jusqu’à ce que le code soit complet et satisfaisant.

Discussion des résultats, des difficultés rencontrées et des leçons apprises.

En novembre, c’était au tour de la team Java Kotlin de présenter leur miditech “Loom ou la Pool” avec une démonstration personnalisée ! Pour conclure ce mois, les membres de l’équipe ont pu participer lors du miditech Suzanne et Gaston (spéciale dédicace aux parents #teamlunii)  découvrent les microservices !

Le récap techno :

La gestion des threads en Java est un problème récurrent quand on développe des serveurs applicatifs. Jusqu’à maintenant, l’utilisation de pools de threads était la manière “standard” pour gérer des requêtes concurrentes ou des tâches asynchrones. L’arrivée du projet Loom dans Java 19 permet de s’abstraire des threads physiques grâce aux threads “virtuels” et, ainsi, de simplifier le code.


On arrive au mois de décembre ! 

Pour conclure cette année sous le signe de la culture technique en entreprise, c’est la Core team qui s’est lancée avec le suivi des projets interne à LIKSI. Comment le suivi est-il réalisé ? Quels sont les outils mis en place ? Etc.

En 2023, ce sont encore de nombreux miditechs qui nous attendent, avec de nouveaux sujets bien sûr, mais aussi des formats inédits !

Derniers articles