Forum Logiciel : diffusion de connaissance et d’informations sur toutes les activités liées au développement d’applications informatiques en entreprise.
Blogs de Développeurs: Aggrégateur de Blogs d'Informatique sur .NET, Java, PHP, Ruby, Agile, Gestion de Projet
Forum Logiciel : diffusion de connaissance et d’informations sur toutes les activités liées au développement d’applications informatiques en entreprise.
Pour la 6ème année consécutive, le Club Agile Rhône Alpes organise Agile Grenoble le Jeudi 21 Novembre 2013.
Cette nouvelle Ă©dition se dĂ©roulera, comme l’annĂ©e prĂ©cĂ©dente, au World Trade Center, au centre de Grenoble, qui nous permet d’accueillir 500 personnes.
L’appel Ă orateur est d’ores et dĂ©jĂ ouvert, soumettez votre proposition de session ! Sessions in english are also welcomed!
Ca se passe par ici : http://2013.agile-grenoble.org/appel-a-orateurs
La date de clĂ´ture de cet appel Ă orateurs est le 30 juin 2013.
Les sessions seront organisées autour des thèmes suivants :
Vous avez un sujet à présenter de manière brève, ou vous souhaitez faire votre première présentation dans une conférence ? Agile Grenoble vous propose cette année des sessions courtes de 15 ou 30 minutes.
Pour toute question relative Ă l’appel Ă orateur, contactez nous sur orateur (arobase) agile-grenoble.org
Note: Agile Grenoble sera suivi le lendemain, Vendredi 22 Novembre d’un deuxième Ă©vĂ©nement, un forum ouvert (open space) dĂ©diĂ© aux sujets Agile & Lean avancĂ©s. L’inscription Ă cette seconde journĂ©e est indĂ©pendante de celle Ă Agile Grenoble.
Hadoop permet d’optimiser le temps d’exĂ©cution de traitements distribuĂ©s quand ils sont limitĂ©s par la bande passante vers les donnĂ©es. Mais, pour cette mĂŞme raison, son système de fichiers (HDFS) n’est pas conçu pour les accès alĂ©atoires. Si vous recalculez les recommandations pour vos utilisateurs chaque nuit, comment exposer alors Ă chaque utilisateur les donnĂ©es le concernant? BigData in, BigData out. Dans ce contexte, LinkedIn utilise Voldemort. Cette base de donnĂ©es clef/valeur propose en effet de construire son index en utilisant Hadoop. Nous allons voir ensemble la justification et la mise en place.
Une application Web peut se voir comme une application classique, sur laquelle on greffe une couche de communication et de présentation que sont HTTP et HTML. Ne pas tenir compte de l’aspect Web a de nombreux avantages : tests rapides, modularité accrue, etc. Comme François l’explique dans un autre de nos articles : cela permet aussi de découpler la logique métier plus facilement.
Dans cet article, je présente un motif de conception qui s’avère très utile pour connecter la logique métier avec la couche de communication. Ce motif, que je désigne ici par Form-Object, permet de convertir des données envoyées via HTTP afin de construire nos objets du domaine métier.
La semaine dernière Oracle a annoncé la sortie de Java EE 7, en nous promettant (je cite) “le support de HTML5, plus de productivité pour les développeurs et la réponse aux besoins les plus exigeants des entreprises”.
Qu’en est-il vraiment ?
Etat des lieux de Java EESi Java est aujourd’hui le principal language utilisĂ© en entreprise, Java EE n’a pas eu le mĂŞme succès, la plupart des gens n’en utilisant qu’un sous-ensemble (JSP, Servlet, JPA, etc.) et non pas l’ensemble des APIs (EJBs, JMS…).
Les premières versions de la plateforme, mal conçues, ont été rapidement concurrencées par des frameworks tels que Spring : au bout de quelques années de concurrence, J2EE est devenu Java EE et a repris les principes majeurs de Spring tels que l’injection de dépendance par annotation ou les intercepteurs (encore qu’on pourrait argumenter que les intercepteurs Java EE sont nettement moins puissants que l’AOP fourni par Spring).
Cependant, entre-temps, notre monde a bougé : la productivité ou la satisfaction des développeurs n’est plus simplement limité à avoir un framework d’injection de dépendance ! Nous voulons pouvoir développer des applications REST, HTML5, dans le cloud, avec la stack ayant le plus de buzzwords possibles. Et j’oubliais la mobilité et le Big Data, sur des architectures distribuées
Que ce soit sur Google Trends (tendances des recherches Google) ou Indeed (tendances des offres d’emploi aux US), on retrouve les mêmes courbes :
On voit bien ici que l’intérêt des développeurs pour Java EE n’a pas décollé, par rapport à des frameworks concurrents (node.js) ou des technologies NoSQL/Big Data.
C’est donc sur ces thèmes que Java EE doit se battre, en particulier contre Spring ou Node.js, qui sont des stacks ayant pris depuis longtemps le chemin des applications HTML5, REST, NoSQL, mobiles, dans le cloud, etc. Et c’est ce que nous allons donc Ă©tudier tout au long de cet article.
Le support de HTML5, 1ère partie : les WebsocketsLe support de HTML5 m’a personnellement plutôt fait sourire : quel rapport entre Java EE et le HTML5 ? Pour Oracle, dans sa “press release”, cela signifie supporter les Websockets !
Quiconque ayant déjà fait des Websockets se méfie en voyant ce type d’annonce :
Pour utiliser Atmosphere depuis pas mal de temps, un excellent framework qui résout tous ces problèmes de manière performante et élégante, je vois mal quiconque utiliser Java EE 7 directement.
La press release d’Oracle met donc en avant une avancée technique nécessaire et intéressante, mais dont l’implémentation reste simpliste.
Le support de HTML5, 2ème partie : JAX-RS 2 et JSONFaire une application HTML5 avec un framework MVC JavaScript moderne, de type backbone.js ou angular.js, c’est surtout consommer des services REST, et s’échanger des données au format JSON.
La mise à jour de l’API JAX RS est donc particulièrement bienvenue, et permet :
De même nous disposons maintenant d’une API JSON standardisée, avec JSON-P (plus de détails sur cet article). Une nouveauté intéressante est l’ajout d’une API fluente permettant de créer du JSON (personnellement je n’ai encore jamais eu ce besoin, mais cela peut toujours être utile).
Toutes ces fonctionnalités étant présentes dans les stacks concurrente (par exemple Spring MVC REST + Jackson 2), il s’agit donc là d’une mise à jour nécessaire.
Un regret cependant : cette stack ne propose pas de support pour réaliser des tests unitaires avec des mocks, comme nous en disposons dans Spring. C’est une fonctionnalité que j’apprécie particulièrement, par exemple dans Tatami (voici en exemple), et qui devrait bientôt faire l’objet d’un nouvel article sur ce blog.
Le support de HTML5, 3ème partie : JSF 2.2De manière plus discrète, Java EE 7 amène également les “passthrough attributes” dans JSF 2.2, ce qui permet enfin d’utiliser HTML5 avec JSF 2.2.
Jusqu’à présent, on ne pouvait utiliser que les tags reconnus par sa librairie de composants : or, en HTML5, vous pouvez ajouter et définir vos propres attributs, que vous utilisez ensuite en JavaScript.
Les “passthrough attributes” sont en fait assez basiques : la librairie de composant va simplement rendre ces attributs côté client. Elle fait alors juste “passe plat” entre le code JSF et le HTML généré. Mais cela change tout, car nous pouvons maintenant avoir nos propres attributs côté client !
Pas de cloud dans Java EE 7L’objectif de Java EE 7 était le cloud : comme présenté l’année dernière par Oracle (les slides sont encore ici), nous devions pouvoir développer “dans le cloud” avec Java EE 7, et plus précisément :
Au final, tout cela a été abandonné.
Pour avoir participé à la spécification JMS 2, je peux vous confirmer que cet abandon a été volontaire : aucun vendeur de serveur d’application ne souhaite voir ces fonctionnalités être intégrées dans Java EE. Cela fait plus de 10 ans que l’ajout de ces fonctionnalités “avancées” dans Java EE sont sabordées par une grande partie des acteurs du JCP, car ce sont grâce à elles que les entreprises clientes achètent des serveurs en “version entreprise” au lieu de se contenter d’un simple Tomcat.
C’est donc un grand gâchis, mais ce n’est que partie remise. Comme en son temps l’arrivée de Spring a fait bouger le JCP, l’arrivée du cloud va nécessairement faire bouger les lignes. A titre d’exemple, les ventes de serveurs d’Oracle (les anciens serveurs Sun, que Oracle a racheté) ont chuté de 27,2% ce trimestre ! Il est donc probable que le JCP, à nouveau, soit forcé de s’adapter.
Focus sur JMS 2L’un des succès de Java EE 7 est l’arrivée de JMS 2. Plus de 10 ans après la norme précédente, et toujours sans support du clustering (cf. le point précédent), JMS 2 propose une API modernisée, qui vous permettra de vous passer de la fameuse JmsTemplate de Spring.
JMS 2, heureusement, garde quand même l’un des grands bénéfices de JMS 1, qui était de pouvoir être utilisé en dehors d’un serveur d’application : en effet, les vendeurs de serveurs d’applications voulaient lier JMS 2 à CDI, de manière à obliger les utilisateurs à avoir un serveur d’application pour envoyer un message. Au final, nous restons donc sur une API proche de l’originale, mais modernisée et simplifiée.
Cette nouvelle API a été très bien décrite dans ce blog, nous en retiendrons principalement :
Lancé par IBM, l’intégration des batchs dans Java EE est enfin une réalité ! Dans la pratique, il s’agit d’une intégration du code Spring Batch dans Java EE :
D’autre part, SpringSource a fait le maximum pour que Spring Batch puisse être utilisé dans Java EE (avec CDI), mais sans que l’on soit obligé de dépendre de ses APIs.
Depuis le nombre d’années que l’on attendait une solution pour faire des batchs en Java EE, c’est donc une excellente nouvelle, d’autant plus que Spring Batch est une solution très largement reconnue.
Reste à voir quelles implémentations seront disponibles dans les différents serveurs d’applications :
Cette nouvelle devrait également permettre de faire revivre Spring Batch, qui est un projet qui ne progressait plus beaucoup ces dernières années, en particulier depuis que Accenture en avait abandonné le co-développement avec SpringSource.
En conclusionCette montée de version de Java EE, tant attendue, n’a pas tenue ses promesses. L’objectif “cloud” a été totalement raté, de même qu’un certain nombre d’API qui devaient être mises à jour (JCache en particulier).
Heureusement, un travail minimal a été réalisé sur les HTML5 et sur JMS 2, et nous avons eu la bonne surprise de voir l’intégration de Spring Batch dans la spécification. En 2013, nous n’en attendions pas moins !

La soirĂ©e du 4 juin 2013 marque l’ouverture chez Xebia du mois du JS, sĂ©rie d’Ă©vènements destinĂ©e Ă dĂ©couvrir les principaux acteurs du marchĂ©s des frameworks MVC cotĂ© client.
Cette première soirĂ©e, consacrĂ©e Ă Ember.js, a permis Ă une vingtaine de personnes de dĂ©couvrir comment poser les premières pierres d’une application Ember.
Tu es fière d’ĂŞtre codeuse (ou codeur) ? Tant mieux, car nous avons un dĂ©fi pour toi : sauras-tu Ă©crire du code committable en moins de deux minutes ?
Intéressé ? Nous te proposerons de rejoindre ce vendredi midi des Octos aventureux pour un atelier de programmation. Tous niveaux de TDD acceptés.

Nous travaillerons par paires et en TDD sur un problème de programmation relativement simple. L’exercice consistera Ă rĂ©soudre ce problème en respectant le protocole suivant, inspirĂ© par Adrian Bolboaca :
Écrire et faire passer un testAu bout de 45 minutes, nous effacerons le code produit et dĂ©brieferons ensemble sur l’expĂ©rience.
Toujours intéressé ? Les inscriptions sont ouvertes sur eventbrite.
En venant, assure-toi d’apporter
Si tu viens en binĂ´me, vous pourrez vous contenter d’un seul ordinateur (si tu veux aussi binĂ´mer sur le repas feel free!)
N’oublie pas de t’inscrire pour venir. Besoin de plus d’informations ? L’inscription sur EventBrite ne marche pas ? Contacte-moi : fmerizen@octo.com
what : atelier coder Ă pas de chaton
when : ce vendredi 21 juin de 12h30 Ă 13h30
where : OCTO Technology, 50 avenue des champs Élysées, 75008 Paris, 5ème étage, salle André Gide
Suggestion d'articles :

La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia.
Vous avez peut-être déjà travaillé avec la classe UICollectionView, mais savez-vous comment personnaliser entièrement la mise en page et les transitions de vos données ? De même, avez-vous déjà eu à mettre en œuvre un UICollectionViewLayout personnalisé ?
Si la rĂ©ponse est "non", alors une lecture de cette article s’impose.
Salut Ă tous !
Comment allez-vous ? Alors tout d’abord, je tiens Ă remercier mes lecteurs qui sont venus me voir et discuter avec moi. Je ne sais pas si vous vous rendez compte du plaisir que je prends Ă me faire alpaguer comme ça au dĂ©tour d’un couloir pour me faire un coucou. C’est un peu basique mais c’est vraiment gĂ©nial
Avec Camille Havas, ma camarade de prise de notes, on a assurĂ© sur la première journĂ©e, c’Ă©tait gĂ©nial. 14 confĂ©rences, du niveau, du très haut-niveau. Bon, les confs en anglais, c’est pas toujours simple mais on s’en sort bien.
Vous pouvez retrouver nos premières prises de notes sur Unishared http://www.unishared.com/web5-2013/. Ce sont des documents Google Docs collaboratifs. Je vous les remettrai à plat prochainement sur ce blog.
Lyle Troxell de chez 4D/Wakanda a fait un paquet de photos avec ses Google Glass, elles sont partagĂ©es ici : https://plus.google.com/photos/101982392616981120013/albums/5889494889025208913. On est plusieurs Ă les avoir tester, c’est assez cool
C’est reparti pour une deuxième journĂ©e, je vous tiens au jus !
Que vous soyez ingĂ©nieurs Java, DEV ou OPS, venez dĂ©couvrir l’outil ElasticSearch avec David Pilato et Lire la suite de cet article …
Un ami m’a dit un jour que le Scrum Master Ă©tait, au-delĂ du gardien de la mĂ©thode, le garant de la vĂ©locitĂ© de l’Ă©quipe. Depuis, je me suis appropriĂ© cette formule que je trouve excellente. Pour garantir la vĂ©locitĂ©, il faut la connaĂ®tre et qu’elle soit fiable. Bien souvent, pour des Ă©quipes Scrum dĂ©butantes, il est possible d’ĂŞtre confrontĂ© Ă une vĂ©locitĂ© qui fait le yoyo d’un sprint Ă l’autre. Ou encore, rĂ©cemment, je me suis trouvĂ© dans cette situation : le Scrum Master et le Product Owner d’une Ă©quipe pensaient qu’ils ne connaissaient pas la vĂ©locitĂ© de leur Ă©quipe. Etonnant non ? Et pourtant, dans quelques cas la vĂ©locitĂ© a du mal Ă Ă©merger. Je vous propose quelques bons rĂ©flexes Ă avoir pour stabiliser la vĂ©locitĂ© de votre Ă©quipe et l’accompagner sur le chemin du rythme soutenable.
Plus d’une heure et demi de vidĂ©o sur ElasticSearch, encore un IppEvent d’une grande qualitĂ© technique avec David Pilato, qui nous prĂ©sente le moteur de recherche Open Source le plus avancĂ© du moment.
Je profite de ce billet pour vous annoncer deux nouvelles en relation avec l’Ă©vènement :
Elasticsearch – Le moteur de recherche Ă©lastique pour tous, pour David Pilato from Ippon Technologies on Vimeo.
DroidCon, la conférence exclusivement réservée à Android, prendra place cette année à Paris les 17 et 18 juin 2013.
Après une Lire la suite de cet article …
Le dĂ©ploiement automatique des applications est l’un des piliers essentiels du "Continuous Delivery".Â
Deployit est une solution transverse qui offre Ă l’ensemble des acteurs (Dev & Ops) une solution unifiĂ©e pour dĂ©ployer et configurer leurs applications sur l’ensemble de leurs environnements.
Dans ce workshop de 3 heures, nous verrons comment coupler Deployit Ă un moteur d’intĂ©gration continue (Jenkins) afin d’inclure l’activitĂ© "dĂ©ploiement et Lire la suite de cet article …