direnv pour booster votre shell

Ecrit par Julien Wittouck, Publié le 02 Nov 2022

Je suis le genre de développeur qui travaille toujours avec un terminal ouvert sur le côté, en plus de mon IDE. Je lance souvent des commandes mvn pour m’assurer que mon projet compile et que mes tests s’exécutent correctement. C’est un vieux réflexe qui date de l’époque où les IDE n’avaient qu’un support limité de Maven. Lancer ces commandes hors-IDE m’aide souvent à valider que tout fonctionnera bien dans un environnement de CI par exemple. J’ai donc parfois besoin de changer de version de Java en fonction du projet dans lequel je me trouve. Maven utilise la variable d’environnement JAVA_HOME pour localiser l’installation de Java à utiliser. Donc être capable de charger des variables d’environnement différentes en fonction d’un projet peut s’avérer pratique. Un autre usage courant consiste à venir charger des clé d’API ou des secrets d’accès cloud comme des variables AWS_ACCESS_KEY ou autres en fonction de mes différents projets.

direnv (lien) est un outil écrit en go qui permet de charger des variables d’environnement dans la session courante du terminal, lorsqu’on change de répertoire en effectuant un cd .

arrow_forward_ios Lire la suite

Web Assembly

Ecrit par Laurent Duchaussoy, Florian Barbet, Jean Dusenne, Publié le 06 Oct 2022
Boostez vos applis web avec Web Assembly !

Web Assembly (ou WASM) est un standard du World Wide Web consistant en un bytecode exécuté côté navigateur dans un environnement dédié (sandbox) en complément du Javascript (JS).

Ce code bas niveau étant interprété côté navigateur peut être écrit dans différents langages comme le C, C++, RUST, x86 etc.

L’interprétation du Web Assembly se fait plus bas-niveau que celle du Javascript. Web Assembly utilise de manière plus efficace et directe les ressources disponibles sur la machine sur laquelle il s’exécute (CPU/Mémoire), et permet donc d’atteindre un haut niveau de performances.

Ces performances accrues permettent alors de développer des applications qui n’étaient pas envisageables en Javascript. Par exemple du traitement vidéo en temps réel, comme le floutage d’arrière plan en visio-conférence, ou encore des jeux vidéo.

Pour résumer, WASM a été créé pour tirer parti de la puissance des langages de bas niveau, couplé à la flexibilité de Javascript afin de créer des applications Web plus performantes.

arrow_forward_ios Lire la suite

Exécuter une application localement sur minikube avec skaffold

Ecrit par Julien Wittouck, Publié le 29 Jul 2022

Lors du développement d’une application pour Kubernetes, le développeur est souvent lié à une boucle de feedback assez longue:

  1. Développement
  2. Contruction de l’image Docker (quelques secondes/minutes)
  3. Push de l’image sur un registry
  4. Déploiement sur Kubernetes (quelques minutes)

Cette boucle est généralement implémentée par des pipelines de CI/CD. Ces pipelines augmentent encore le temps entre le développement et une application démarrée sur Kubernetes. Ce temps est relativement long lorsqu’on compare un cycle de développement local auquel un développeur peut être habitué.

skaffold, développé par Google, est un outil open-source en license Apache, qui permet d’implémenter cette boucle de développement sur un environnement Kubernetes local ou distant. La promesse de skaffold est de rendre le développement sur Kubernetes simple, rapide et reproductible.

la page d'accueil de skaffold

arrow_forward_ios Lire la suite

Design Pattern

Ecrit par Laurent Duchaussoy, Publié le 15 Jun 2022
L’art de savoir utiliser le bon outil au bon moment

image

Les “Design Patterns”, ou “patrons de conception”, sont un ensemble de solutions reconnues, particulièrement dans la programmation orientée objet, comme étant la meilleure réponse afin de résoudre un problème de conception récurrent.

Les exemples de patrons peuvent être faits de différentes façons: par le biais de schémas, de pseudo code, la manière d’organiser ses modules ou classes ou à l’aide d’une implémentation proposée.

arrow_forward_ios Lire la suite

Les structures algébriques

Ecrit par Florian Barbet, Publié le 18 May 2022

Les premiers algorithmes ont été réalisés bien avant que le premier ordinateur ne soit conceptualisé.
Le tout premier algorithme connu a été écrit en -300 avant notre ère par Euclide (PGCD).
Aujourd’hui les mathématiques font rêver, font peur et semblent parfois inaccessibles. Une chose est sûre, elles sont partout.
Comptables, développeurs, boulangers ou même politiques, tous utilisent les mathématiques : le langage suit un ensemble de règles mathématiques.
Les structures du langage sont réalisées par l’application d’un arbre de la syntaxe abstraite.

Les structures algébriques font partie des bases des mathématiques. C’est un socle sur lequel de nombreuses règles sont construites.
En particulier, pour réaliser des applications robustes, performantes et maintenables. Elles peuvent apporter une aide précieuse.

arrow_forward_ios Lire la suite

Micro Front End

Ecrit par Yohann Gueguin, Florian Barbet, Laurent Duchaussoy, Publié le 02 Mar 2022

Inspiré par les architectures microservices Back-End, le principe du micro-front end se résume en une agrégation de composants web « isolées ».
Voyez la page finale comme un puzzle où chaque morceau serait un composant MFE. Ces composants peuvent être une barre de navigation, un bouton ou tout simplement un texte. Cette découpe apporte en quelque sorte de la “liberté”.
Ce type d’architecture permet de choisir son framework Front, d’être autonome sur sa livraison et de séparer les projets par équipes au lieu de travailler sur un monolith commun. Le but du MFE est de simplifier la gestion, la maintenabilité, la conception et le découpage des interfaces utilisateurs.
Garantir le bon fonctionnement de la page Web finale demandera de la rigueur et un travail commun.
Il existe une multitude de façon de faire du micro-front end notamment en utilisant des technologies HTML (Iframe) ou un agrégateur en Back End (type Node Js, Java etc..)…

arrow_forward_ios Lire la suite

Eco Conception

Ecrit par Pauline Vandame, Romain Vermeeren, Mehdi Kheir, Publié le 02 Feb 2022

image

L’éco-design, l’éco-conception, le green it ou dernièrement la conception responsable de service numérique sont des termes qui représentent, avant tout, le fait de réfléchir à l’impact environnemental de son projet informatique et aux solutions pour le limiter ou le réduire.

“Approche méthodique qui prend en considération les aspects environnementaux du processus de conception et développement dans le but de réduire les impacts environnementaux négatifs tout au long du cycle de vie d’un produit” (Norme ISO14006 v2020)

arrow_forward_ios Lire la suite

Mutation testing

Ecrit par Yoann Bouquet, Publié le 27 Oct 2021

Le mutation testing a été inventé en 1971 par Richard Lipton. Sa réflexion est venue suite à des expériences de projets où les programmeurs devaient consacrer le moins de temps possible aux tests. Le programmeur devait se contenter de tester intelligemment à moindre coût. Pour lui, l’avantage des programmeurs est qu’ils créent des programmes qui sont presque corrects. Les erreurs sont principalement dues à des actions inappropriées ou manquantes dans les spécifications. Ces erreurs devraient être détectables comme des déviations du programme prévu d’où le mutation testing.

Cette technique a pour but d’évaluer l’efficacité des tests unitaires des applications.

Son expansion a, en grande partie, été restreinte à cause de la lourdeur du processus, mais l’augmentation de la puissance des machines permet de rendre le “mutation testing” plus accessible.

arrow_forward_ios Lire la suite

PWA : Innovation ou solution de consolation ?

Ecrit par Romain Vermeeren, Yohann Gueguin, Laurent Duchaussoy, Publié le 29 Sep 2021

image

Le terme PWA est entré depuis quelques années dans le long répertoire des acronymes liés au numérique. Mais qu’est ce qu’une Progressive Web App ?

Pour certains c’est la promesse d’une expérience mobile responsive boostée par les fonctionnalités de votre téléphone. Elle serait facile à mettre en place, de faible coût et elle n’aurait plus rien à envier aux applications natives.

Afin de vous éclairer sur le sujet et de vous permettre de vous faire votre propre avis, vous trouverez ici les informations qui nous paraissent pertinentes pour une première approche fonctionnelle du sujet.

arrow_forward_ios Lire la suite