Tests

Software Craftsmanship

Un test peut en cacher un autre – Tests unitaires – P1

Introduction L’article d’introduction débute en listant certaines différences entre ma vision en terme d’architecture applicative ou encore de rédaction des tests, que je peux avoir avec d’autres développeurs. À travers elles, j’évoque les difficultés qu’ils peuvent rencontrer à identifier précisément quoi tester et comment. Deux phrases extraites de l’article de Ian Cooper ont été mises en avant : “Le code issu d’un refactoring ne requiert pas de nouveaux tests” “Je vous recommande d’utiliser ports/adaptateurs et d’écrire les tests en outside-in depuis le use case” Ces…

Lire la suite
Software Craftsmanship

Un test peut en cacher un autre – Un peu de théorie

Introduction En discutant avec des développeurs, je remarque plusieurs choses : Nos approches sur l’architecture applicative du code sont différentes Les définitions que nous donnons aux catégories de tests sont différentes Les façons de rédiger les tests sont différentes Sans généraliser, je pense qu'il est parfois difficile dans ce contexte d'identifier précisément quoi tester et comment. Être au clair sur ces trois points me semble important et permet de me faciliter la vie et d'être plus confiant au quotidien, laissant beaucoup moins de place à…

Lire la suite
Data Science

Les intervalles de prédiction

Dans le cadre de l’apprentissage supervisé, un modèle de régression permet d’inférer la valeur associée à une observation à partir d’exemples. Prosaïquement, on cherche à prédire le comportement moyen d’une variable cible Y à partir des variables explicatives X décrivant les observations. C’est l'espérance de Y sachant X, notée E[Y|X]. Est-il possible d’aller chercher plus d’information que le seul comportement moyen à partir d’un modèle de prédiction ? Peut-on quantifier l’erreur de notre modèle dans ses prédictions ? Pour illustrer la réponse à ces questions…

Lire la suite
Archi & techno

Liveness et readiness probes: Mettez de l’intelligence dans vos clusters

Au cours du temps, la philosophie autour du traitement des serveurs par les administrateurs système a évolué. Au commencement, chaque serveur était choyé et chouchouté individuellement : petit nom, réparation et mise à jour individuelle en cas de dysfonctionnement. Il s’agit de l’approche Pet (animal de compagnie en anglais). Cependant, cette approche a ses limites car la charge de travail (humaine) pour gérer chaque machine en limite le nombre. Cependant, avec l’arrivée des services IaaS et du cloud, les moeurs ont changé. De plus en plus…

Lire la suite
Archi & techno

Améliorez la couche réseau dans votre app iOS avec des appels synchrones

Lors du développement d’applications iOS, en tant que développeurs, nous prêtons une attention particulière à l’interface en essayant par exemple de coller au plus près de la maquette proposée par le graphiste. Ceci au détriment d’autres parties qui sont tout aussi importantes comme par exemple la gestion des données ou les appels réseau. C’est d’autant plus curieux lorsque l’on sait qu’un problème avec ces derniers peut être plus fatal à l’application qu’un décalage d’un bouton de deux pixels. Dans cet article, je vais présenter pourquoi,…

Lire la suite
Agile

Compte-rendu du Petit-déjeuner « Secteur public : REX du site service-public.fr »

En cette fin d’année 2016, OCTO Technology a organisé un petit déjeuner au Numa pour nous expliquer comment l’agile a été mis en place au service de l’Etat. Les équipes de la DILA et d’OCTO sont ainsi venues nous présenter le succès d’un projet de taille : la refonte du site service-public.fr. Retrouvez la présentation complète du petit-déjeuner ainsi que la vidéo de la conférence. “Liberté, égalité, fraternité, agilité !”

Lire la suite
Méthode

Sortir de la non qualité

Il y a quelques mois de cela, Michel vous parlait de la culture du Software Craftsmanship. Il évoquait notamment dans son article les différents enjeux à adresser pour diffuser cette culture dans l’entreprise. J’aimerais prolonger son discours en vous proposant de revenir sur l’origine de cet océan de code “legacy” dans lequel beaucoup d’entres nous naviguent douloureusement chaque jour. Mais surtout, j’aimerais vous proposer des moyens de s’en sortir.

Lire la suite
Infrastructure et opérations

Un filet de sécurité pour se lancer dans la refonte d’un module Puppet

Le but de cet article est d'étudier la façon dont on peut se construire un filet de sécurité quasi automatiquement avant de se lancer dans la réécriture d'un obscur module Puppet. Le vieux module AKA la bête à 7 têtes Ce module, vous le connaissez, vous l'avez peut-être même écrit quand vous débutiez avec Puppet. Il n'a aucun tests, il est écrit à la va-vite, aucun commentaire, une paire d'appels à des scripts externes pas plus documentés et puppet-lint en viendrait même à se demander si c'est bien…

Lire la suite
Archi & techno

Reprise de données lors d’une refonte IT agile

Les données sont au cœur de votre business. Susceptible de reporter la mise en production de votre nouvelle application, il faut considérer la reprise de données comme une étape importante de votre processus de refonte. La reprise de données est un aspect technique particulier de la refonte qui doit être pris en charge par une équipe dédiée (il suffit d'un développeur et d'un PO pour former une équipe) dès le début du projet afin d'anticiper la complexité des règles de reprise, de vérifier le bon fonctionnement de…

Lire la suite