Intégration continue performante (Part #2)

Dans la première partie de ce billet, je mentionnais divers solutions (bonnes pratiques, outils) pour optimiser les performances du serveur d’intégration continue et faire face au nombre croissant de projets gérés par ce serveur.
Dans cette seconde partie, j’aborde un sujet récurrent lorsque l’on fait de l’intégration continue : les erreurs (compilation, tests, packaging) sur le serveur. Effectivement, mieux vaut découvrir ces erreurs en continue sur le serveur plutôt que la veille de la livraison. Mais, ne serait-ce pas mieux si on pouvait simplement les éviter ?

(Lire la suite…)

Retour d’expérience BPMN

Si j’avais à évaluer BPMN et à lui donner une note sur 10, je lui donnerai 7/10.
Avant de vous donner les raisons qui me poussent à donner 7 et les raisons pour lesquelles j’aurai mis 10, je vous propose un tutorial qui vous permettra de découvrir BPMN.

(Lire la suite…)

Mozilla Add-ons Workshop

Samedi 20/09, je suis allé au Mozilla Add-Ons Workshop. Il s’agit d’un évènement organisé par Mozilla et l’association XULFR, qui a eu lieu à La Cantine. Je vous livre ici mes réactions suite à l’évènement, ainsi qu’un zoom sur ma sélection personnelle des présentations qui m’ont le plus marqué.

(Lire la suite…)

Tours JUG – Apache Maven, mise en œuvre en entreprise

Maven Avec Benoit Lafontaine, responsable de notre centre de compétences Java à OCTO Technology, je présenterai une nouvelle session sur Apache Maven au Tours JUG le Mercredi 08 octobre 2008. Durant cette présentation, nous présenterons les bénéfices que l’on peut attendre de cet outil multifonctions, mais aussi, les pièges à éviter lors de sa mise en oeuvre et de nombreux conseils issus de nos expériences.

Tours JUGRetrouvez toutes les informations sur cette session sur le site du Tours JUG et n’oubliez surtout pas de vous inscrire.

La présentation se tiendra à partir de 19h dans les locaux de SUPINFO, 15 place Michelet 37000 Tours.

BarCamp Java à Paris ce Mardi 30 Septembre

Java Bar CampBonjour à tous,

Un Bar Camp Java est organisé mardi soir prochain dans nos locaux d’OCTO Technology (50 av des Champs Elysées, 75008 Paris).

(Lire la suite…)

REST en JAVA avec la JSR-311

La JSR 311 JAX-RS [JavaTM API for RESTful Web Services] est le pendant REST de la JSR 224 JAX-WS [JavaTM API for XML-Based Web Service]. Elle marque la volonté de la part de la communauté Java de cadrer, tout comme pour la stack WS-*, le développement des applications JAVA orientées ressources. Bien qu’étant sur le point d’être finalisée (dernier stade : Final Approval Ballot), elle est déjà implémentée par la plupart des frameworks REST du moment (Jersey, RESTeasy, CXF, une extension Restlet…).

La suite de ce billet présente les annotations de la JSR en regard des principes REST qu’elles mettent en œuvre.

(Lire la suite…)

Libérez la touche F1 sous Internet Explorer

Aaaah, cette fabuleuse « feature » de Internet Explorer : lorsqu’on presse F1, la fenêtre d’aide d’IE s’ouvre… sauf que lorsque l’on a besoin d’utiliser F1 comme raccourci dans une application web métier, on constate vite la gestion de F1 est enfouie profondément dans le code IE et qu’il est difficile de reprendre la main sur cet événement. Voici donc le hack en 5 étapes qui permet de récupérer la main sur F1 – comme c’est un classique du développement Javascript, je vous fais la version « implémentation avec GWT » pour changer un peu.

(Lire la suite…)

Intégration continue performante (Part #1)

Alors que l’intégration continue fait son bonhomme de chemin dans les développements en entreprise, plusieurs constats peuvent être fait.

La généralisation de cette pratique n’est pas égale chez tout le monde :

  • Chez certains, des usines de développement (plus communément appelées Software Factory) fleurissent par ci par là sous l’impulsion de développeurs chevronnés ou d’expert techniques mais se cantonnent la plupart du temps au développement d’un projet. Résultat : pas d’uniformisation (utilisation d’outils redondants, de méthodologies variées…) mais les équipes sont contentes de leurs usines car elles rendent le service attendu.
  • Chez d’autres, une seule usine d’entreprise existe (ou est censé exister). Résultat : l’usine croule sous le nombre de projets (configurés plus ou moins anarchiquement), la durée des builds augmente et les équipes finissent par remonter une petite usine dans leur coin pour pallier à la lenteur du serveur.
  • Au milieu de ça, il y a ceux qui sont dans le premier cas et qui veulent industrialiser. La plupart du temps, ils n’ont pas les moyens nécessaires (support aux équipes, serveur suffisamment puissant) et surtout ils manquent cruellement d’appui des supérieurs et/ou de la production. Résultat : l’usine est peu ou pas utilisée, les projets ne sachant parfois même pas qu’il en existe une centralisée.
  • Et enfin à l’extrême, il y ceux qui n’en ont pas du tout. Résultat : ils se passent d’une pratique, qui, si elle est mise en œuvre correctement, apporte énormément tant sur la productivité que sur la qualité des applications.

L’industrialisation de cette pratique amène donc les limitations suivantes (pas vraiment nouvelles [1]) :

  • Le serveur d’intégration ne tient pas la charge lorsque de nombreuses applications y sont construites.
  • Malgré tous les apports de l’intégration continue, il arrive encore trop régulièrement de casser le build si un développeur peu rigoureux omet de publier un fichier, en ajoute un qui ne compile pas ou qui ne passe pas les tests… bref l’intégration se fait encore trop tardivement !
  • L’intégration continue ne fait pas partie intégrante du cycle développement / production d’applications, en tout cas pas suffisamment pour être exploité au mieux par toutes les équipes projets.

Ce billet (1er d’une série de 3) traitera des performances des serveurs d’intégration continue.

(Lire la suite…)

RIA vs RDA en Java : quoi de neuf en 2008?

« Rich Internet Application » (en deux mots : architecture en client web) versus « Rich Desktop application » (en deux mots : architecture à base de client lourd 3-tiers) : un bon vieux débat classique de l’architecture applicative Java ! Lorsque l’on choisit un framework d’IHM, c’est souvent un passage obligé. Mais aujourd’hui en 2008, avec l’explosion d’innovations sur les solutions RIA qui ne faiblit pas après plusieurs années, on peut être tentés de se demander si cette question se pose encore, ou du moins si elle se pose encore en ces termes.

(Lire la suite…)

GWT 1.5 est sorti !

GWT 1.5 utilise le Java5…et alors? tout le monde est déjà au courant…
(Lire la suite…)