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. |
|
![]() |
Contact me - dusanone@tele2.ch - Gaël Luisier, 10802 Lajeunesse, H3L2E8, Montreal QC, Canada. - Phone : (1) 514 679 7717 - Skype : dusanone |
![]() |
Websites I like |
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. |
|
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!) |
|