Articles

Affichage des articles du 2015

Qu'est qu'un bon test?

Un thème commun à l'intégration continue, à la livraison continue, au déploiement continu est le  test . Mais d'abord,  qu'est-ce qu'un bon test? Un bon test possède 3 qualités : digne de confiance  : c'est un test sans bug et qui teste ce qui doit l'être et uniquement cela. maintenable  : le modifier prend peu de temps. Des changements mineurs dans le code de production impliquent pratiquement aucune modification du test. lisible  : essayez de le donner à lire à une fonctionnel, si elle le comprend alors c'est lisible même pour un non-technique.

Demander Conseil, Pas la Permission

Demander la permission semble raisonnable  et être la bonne chose à faire. Mais dans un environnement collaboratif, c'est une mauvaise pratique très répandue dont voici les conséquences insidieuses :  Demander la permission à quelqu'un le rend responsable de votre décision. Par contre elle n'invite pas à la participation au succès éventuel de votre décision. Et si ça se passe mal alors vous l'entrainez dans votre échec. Par exemple :"J'ai demandé à l'équipe et ils ont dit que c'était bon." La personne à qui a été demandé la permission va sentir une pression et peut s'en irriter. Dans le meilleur des cas, la permission vous sera accordée mais la demande semblera irrespectueuse et prouvera votre manque de confiance en vous-même. Dans le pire des cas, elle sera refusée, ce qui ne sera non seulement vécu comme un rejet mais aussi une perte de tous les efforts déployés pour l'atteinte de votre objectif. Pire encore, si votre seul ...

Refactoring : Consolider une expression conditionnelle

Integer getDeliveryCost(){ if (orderAmount > 25 ) return 0 ; if (hasDeliveryVoucher) return 0 ; if (category == "electronic" ) return 0 ; ... } Etant données 3 conditions ayant le même résultat, combinez-les en une seule condition puis extrayez-les dans une méthode. Integer getDeliveryCost(){ if (isFree()) return 0 ; ... }

Le déploiement continu

Avant de commencer, clarifions ce qu'est l'intégration, la livraison et le déploiement continue. L'intégration continue C'est la pratique d'une équipe synchronisant leurs changements si fréquemment, plusieurs fois par jour, que c'en est presque continue. Concrètement, on met en place un serveur d'intégration continue  ( Jenkins  ou  Bamboo ) qui vérifie que le travail que l'équipe est en train de synchroniser est solide comme du béton . Ce serveur s'assure que le code source synchronisé marche pas seulement sur le poste de développeur mais aussi sur les autres machines (serveurs de staging, QA, intégration, recette ou pré-production). Le serveur écoute les changements,  commits ,  envoyés vers le contrôle de version, typiquement Git ou Subversion . Un build est lancé sur cette révision de code source et joue l'ensemble des tests. Si la compilation, les tests, ou tout autre chose échoue lors du build, alors le serveur en notifie le plus ra...