shoutbox
CV
travaux
photos
contact
You have find your way to the news and contact zone of KillerApp ! Here
you can read good and fresh news about last gen technology, discover a
website I like, or contact me to get in touch and talk about a project.
web
Contact me
- dusanone@tele2.ch
- Gaël Luisier, 10802 Lajeunesse, H3L2E8, Montreal QC, Canada.
- Phone : (1) 514 679 7717
- Skype : dusanone
sites webs
Websites I like
News Section. Flux RSS de KillerApp (Click the icon to subscribe to the KillerApp RSS feed)

Le Test Driven Development (TDD) - ConFoo 2010 -
Le Test Driven Development (TDD) ou en français développement piloté par les tests est une méthode de développement de logiciels qui préconise
d'écrire les tests avant d'écrire le code source d'un logiciel. Cette méthode fait partie intégrante du concept de l'Agilité à laquelle je vous ai introduits
dans l'article précédent. Nous allons aujourd'hui essayer de mieux comprendre cette manière de faire grâce à Eric Mignot et sa conférence assez
alternative sur le sujet à laquelle KillerApp a bien entendu participé.

Je vais tout d'abord vous donner une vue d'ensemble du concept et ensuite laisser parler l'expert en mettant à votre disposition cette vidéo exclusive en
direct de la conférence.

Premièrement voici le cycle de base d'un TDD :

1) Ecrire un premier test.
2) Vérifier qu'il échoue (car le code qu'il teste n'existe pas) afin de vérifier que le test est valide.
3) Ecrire juste le code suffisant pour passer le test.
4) Vérifier que le test passe.
5) Refactoriser le code, c'est à dire l'améliorer tout en gardant les mêmes fonctionnalités.
6) Affiner le test ou en écrire d'autres.
7) Recommencer.

Parler des tests avant d'écrire le programme en soit oriente le développement vers un objectif particulier et plus précis et c'est un des principaux
avantages de cette méthode. De plus, le fait d'avoir des tests augmente la confiance en soi du programmeur. Lors de la refactorisation du code : il sait
qu'à un moment donné les tests ont réussi, il peut ainsi se permettre des changements radicaux de design en étant sûr, à la fin, d'avoir un programme
se comportant toujours de la même façon (si les tests réussissent toujours). La conception des tests suit également le modèle incrémentiel lié à
l'Agilité. Cela veut dire que les tests évoluent directement en fonction de l'avancée du programme pour s'affiner toujours plus car ils sont utilisés à très
court terme. Pour finir il est important de souligner que tout est testable, que les tests sont entièrement "customisables" et que tout est possible
quel que soit le langage utilisé.

Trêve de bavardages, voici des morceaux choisis des meilleures répliques d'Eric Mignot, ScrumMaster chez Pyxis et orateur à la ConFoo 2010.


-- Cette vidéo a été retirée sur demande des dirigeants de la ConFoo --

L'Agilité - Introduction et pratiques qui en découlent - ConFoo 2010 -
Tout au long de la ConFoo j'ai eu le plaisir de m'initier à l'Agilité grâce aux conférences et ateliers de l'entreprise Pyxis, leader dans son domaine. Leurs
orateurs passionnés surent transmettre intuitivement ce concept novateur dont nous allons voir les grandes lignes dans cet article. C'est Emmanuel
Gaillot, un des fondateurs du Coding Dojo, qui en premier aborda avec nous les principes fondamentaux de l'Agilité. Alors que se cache-t-il derrière ce mot
magique? Beaucoup plus qu'un mot, selon lui, c'est un concept profond avec une intention qui est de livrer un logiciel répondant à un besoin
fonctionnel au moment de la livraison. C'est aussi et surtout un état d'esprit qui, une fois assimilé, devient une évidence dont on ne peut plus se
passer.

Concrètement au niveau du développement, car c'est bien de cela qu'on parle, le processus classique se transforme en une itération de courte durée,
visant à fournir un premier résultat très rapidement. Ce résultat est immédiatement comparé au but recherché et l'itération s'en trouve modifiée pour
mieux coller à ce que l'on recherche. Cette manière de procéder permet de s'adapter à toute éventualité, et de ne pas s'éloigner du contexte dans lequel
on évolue.

Sur le terrain, l'Agilité s'articule autour de 3 pratiques fondamentales : Le développement piloté par les tests, la communauté de projet et la planification
itérative.

La première consiste à écrire des tests avant d'écrire le code de l'application, je reviendrai la dessus plus en détail dans la seconde partie de cet article
consacré à la conférence d'Eric Mignot qui traite des TDD.

En ce qui concerne la communauté de projet, elle s'efforce de créer un espace autour et surtout à l'intérieur du projet sur lequel l'équipe travaille.
Chaque personne doit en comprendre l'ensemble et s'y sentir impliquée. Tous les membres de l'équipe deviennent des acteurs de la réussite ou de
l'échec du propos et se sentent ainsi responsabilisés dans leur travail. Cela se déroule au travers de réunions très fréquentes, de démonstrations
explicites et de feedback précis et réguliers où tous les responsables de la chaîne de développement se doivent d'être présents, y compris le client.
Une bonne communication entre chaque partie est alors indispensable et l'ensemble est en général géré par un coach, ou Scrum Master, supervisant
le bon déroulement du processus tout en s'assurant que l'alchimie prenne forme.

Troisièmement, au niveau de la planification itérative, on travaille sur des périodes courtes appelées Sprint ayant toutes la même durée. Le but étant de
décortiquer le projet en micro phases égales, permettant de fournir à la fin de chaque itération un travail terminé et utilisable pour le client. On prépare
d'abord une vue d'ensemble du projet qui est approximative. On se concentre ensuite sur les objectifs à court terme pour être capable de réagir à tout
moment à n'importe quel impondérable, et également se remettre en question sans compromettre l'intégrité du projet.

La synergie de ces principes permet un développement agile de votre future "Killer Application" et vous offre un avantage concurrentiel non négligeable.
Tout d'abord une meilleure réactivité vis à vis du marché ainsi que de la mouvance technologique dans laquelle se trouve le secteur informatique.
Ensuite la possibilité de mieux répondre aux différentes attentes de vos clients dans un laps de temps très court. Et pour finir le plus important à mes
yeux, l'occasion de travailler dans une équipe soudée autour d'un même but et offrant un visage plus humain que dans la plupart des projets de
programmation.

Finalement Emmanuel Gaillot nous cita plusieurs mythes, qui eux, ne font pas partie de l'Agilité. La première fausse idée reçue est d'oublier la
documentation. Il faut la conserver mais également la simplifier en la rendant plus abordable à n'importe qui, et un mot, l'humaniser. Deuxièmement,
laisser tomber la conception pré-coding ne fait pas non plus partie d'une méthode agile, le vieux papier/crayon est toujours d'actualité pour avoir les
idées claires. Troisièmement, croire qu'il ne faut planifier qu'à court terme est aussi une contre indication puisque sans vue d'ensemble du projet, il est
facile de s'écarter de l'objectif principal.

Voilà pour cette introduction à l'Agilité qui est avant tout une méthode de management et qui sera sans doute dans les années à venir le futur standard
dont on ne pourra plus se passer.


HTML5 - Where are we now ? - ConFoo 2010 -
Choisir Marc Pilgrim (Google) et un sujet autant attendu que l'évolution des standards du Web, fut un choix judicieux pour l'ouverture de la conférence
de la part des organisateurs. De bon matin, il réussit à mettre l'ambiance avec ses blagues de Geek limite anti Microsoft tout en nous faisant un topo
clair et précis de la situation actuelle de la nouvelle norme HTML5.

Pour faire un peu d'histoire, rappelons que le HTML est le format de données conçu
pour représenter les pages Web. Depuis son invention en 1989, il évolua sous l'égide du W3C jusqu'à la version HTML4 et fut officiellement abandonné
dans les années 2000 au profit du XHTML, une version plus stricte du HTML basée sur XML et son balisage plus rigoureux.

En mars 2007, tirant les
conséquences des réticences d’une partie de l’industrie et des concepteurs de contenus Web face à XHTML 2.0, le W3C relance le développement du
HTML et crée un nouveau groupe de travail faisant revivre le HTML sous sa 5ème version. Aujourd'hui, HTML5 + ECMAScript5 (JavaScript) + CSS3.0
devient donc la nouvelle boîte à outils du Webmestre, et comme nous allons le voir tout de suite, c'est avant tout pour le meilleur.

Tout d'abord le
balisage redevient plus souple et l'ensemble s'oriente vers plus de simplicité et surtout de signification. Plusieurs nouvelles balises font leur apparition
comme <section> pour identifier le contexte d'un bloc de contenu, <nav> contenant la navigation principale du site ou le splendide <video> permettant
un support natif de la vidéo via votre seul navigateur. L'objectif est de construire des pages Web s'orientant vers une approche sémantique de leur
contenu, et permettant ainsi aux moteurs de recherche de fournir des résultats par sujets reliés plutôt que par simples listes de sites Internet. Par
exemple, on imagine très bien quels types d'informations la balise <video> apporte au moteur de recherche (ou au navigateur) et ceci permet plusieurs
choses, comme extraire de votre site cette vidéo pour la proposer de manière indépendante lors du résultat d'une recherche pour ce mot clé. Bâtir le
nouveau Web sémantique passera obligatoirement par ses pratiques, et donc, les balises HTML5.

Dans les autres nouveautés qui font parler d'elles,
c'est avant tout la révision du CSS qui bascule dans sa troisième version. Les ombres portées, l'opacité, les dégradés ou les coins arrondis deviennent
de simples options CSS permettant la création d'un design très avancé via votre feuille de style préférée, sans se torturer avec la moindre ligne de code
ou éventuel passage par Photoshop. Autre bombe, la mise en place de la balise <canvas>, permettant de dessiner n'importe quoi dans un espace
définis par le programmeur et y ajouter une large gamme d'effets, animations, transformations ou autre "drag n drop" des plus convaincant et cela sans
Flash ni aucun autre plug-in! Les formulaires font également peau neuve. Ils proposent de nouvelles options comme le fameux "range", permettant de
créer des barres de slide, ou l'indispensable "file" simulant un véritable gestionnaire de fichier pour les téléchargements. Du côté du multimédia j'ai déjà
parlé de notre chère balise <video>, qui soit dit en passant, est entièrement paramétrable via JavaScript, mais il faut aussi souligner l'apparition de sa
petite sœur la très charmante <audio>, qui fait le même travail mais pour les mp3. Dernier bonus, la mise en place d'un panel de méthodes permettant
la gestion de la géolocalisation et ainsi ouvrir de nouveaux horizons aux applications mobiles, pour faire joujou sous Iphone, Android ou sur son PC...

Du côté de l'accessibilité, on observe un regroupement et une standardisation de plusieurs pratiques jusque là utilisées de manière
disparate.Notamment l'apparition des options "tabindex='un entier'" ou autre "autofocus='un entier'" permettant, lorsqu'elles sont bien utilisées, de
compléter l'ensemble de bonnes pratiques visant à rendre navigable votre site pour les personnes handicapées, et favorisant même votre indexation par
Google qui "lit" votre site de la même manière.

Pour finir, il est important de signaler que JavaScript s'est enrichi d'une multitude de nouvelles
fonctionnalités liées à toutes ces balises lors de son passage à la norme ECMAScript5, et qu'il devient indispensable au développement et au bon
fonctionnement de vos concepts HTML5, puisqu'il permet le paramétrage de tous vos éléments.

Voilà dans les grandes lignes ou nous en sommes
aujourd'hui et tout ceci fonctionne parfaitement! Cependant, pour ne pas déroger à la règle, Microsoft reste en retard sur le sujet car Internet Explorer 8
n'implémente pas encore la plupart des fonctionnalités du HTML5 mais ça ne saurait tarder, selon Marc Pilgrim, qui estime que du mouvement aura lieu
dans les prochaines semaines à ce sujet. En revanche, les petits derniers sont bons élèves puisque Safari, Chrome, Opera et surtout Mozilla intègrent
l'ensemble des nouvelles méthodes dans leurs dernières versions. Mettre en place ces nouveaux concepts dès aujourd'hui dans vos projets c'est
contribuer au développement d'un Internet plus accessible, esthétique et intelligent, et faire partie des pionniers de la communication de demain.

A vous de choisir...

(Pour commenter ces articles rendez-vous sur la Shoutbox!)

facebook
twitter