“Many consultancies gain considerable revenue with product vendors whose products require lots of consulting support but provide little value to users.”
Github, Cloudbees, Feature Flags
Quand les enfants ne sont pas là le geek code 😉
Mettre en oeuvre un processus d’intégration continue peut se faire rapidement, avoir une suite de test unitaire couvrant de manière satisfaisante son code est une autre histoire… Particulièrement sur un “code legacy” (qui a été écrit sans test unitaire) , trop souvent les bugs sont découvert en production par les utilisateurs finaux. Il faut alors revenir en arrière, reproduire et corriger le bug dans un environnement et re-livrer plus tard, sans parler d’une éventuelle reprise des données qui auraient été corrompues. Oui il y a du vécu.
Une technique pour réduire les effets néfastes d’un bug en production est de déployer progressivement à des populations restreintes les nouveautés. Pour cela il faut séparer la livraison du code de l’activation des fonctionnalités qu’il contient.
Un simple if/else peut suffire, on parle de feature flags chez Flikr.
if (newStuffIsOn) {
doIt
} else {
doNot
}
Voici donc Feature Flags
public enum Flags implements FeatureFlags {
ONE("First Feature Flag"),
TWO("Second Feature Flag", FlagState.UP),
THREE("Third Feature Flag");
}
if (ONE.isUp()) {
doIt
} else {
doNot
}
RESTful
GET http://yourhost.net/flags/ONE pour connaitre l'état
POST http://yourhost.net/flags/ONE pour inverser l'état
PUT http://yourhost.net/flags/ONE avec UP ou DOWN en contenu pour forcer l'état d'un flag
GitHub
Cloudbees
Age d’or du développeur
Ajouter à ça le mobile (android), html 5, l’adoption des méthodes agiles, le développement vit un nouvel age d’or.
Legacy code
“Legacy code is code without unit tests”
A propos de Clearcase
“if you want the benefits of a centralised DVCS with pessimistic locking and pessimistic users, then go look at ClearCase.”
La qualité logicielle
Je viens de lire comme du petit lait le dernier livre blanc de Xebia sur la qualité logicielle. On apprécie toujours énormément lorsque d’autres expriment mieux qu’on ne saurait le faire ce que l’on pense déjà. Si vous êtes un “artisan du logiciel”, nul doute que vous vous y retrouviez aussi.
Les principes énoncés sont ceux que je m’efforce de mettre en oeuvre au quotidien, voici donc petit tour d’horizon des outils utilisés. Continue reading