Ça y est, Devoxx 2011, c’est démarré !

Devoxx est le plus grand salon européen indépendant sur les technologies Java. Cette conférence annuelle a été créée il y a 10 ans par le BeJUG (Belgium Java User Group) et se déroule à Anvers où nous sommes 3200 à en profiter.

Hier, nous avons pu assister à deux types de sessions : les “Universités” et les “Tools in Action”.

Universités

Building Next-generation Enterprise Applications in Java a.k.a. Duke’s Duct Tape Adventures

By Bert Ertman and Paul Bakker

Live coding d’une application JEE6. Au menu JSF, CDI, EJB, JPA dans leur nouvelle formule. Gestion d’une nouvelle session avec l’annotation @ConversationScoped, plannification d’une execution d’ejb avec @Schedule, gestion des évènements avec les annotations javax.enterprise.event.* et de l’@Inject dans tous les coins.
La conclusion est la suivante : Les serveurs d’applications sont maintenant légers et rapides et les nouvelles versions des api nous permettent de coder moins de lignes.
Donc les principes KISS, DRY et YAGNI doivent maintenant faire parti de notre quotidien. De plus, plus besoin de Spring ;).

Continuous Delivery

By Dave Farley

Cette université était très intéressante, Dave a partagé avec nous son expérience sur la livraison en continue au sein de LMAX.
Chez LMAX, tout est versionné : l’OS, la vm comme leurs devs. La gestion de configuration leur permet de mettre à jour tout l’environnement pour leurs différentes phases de release.
Quelques notes en vrac :

  • Si vous faites de l’intégration continue sans faire de livraison continue alors vous ne profitez pas de l’IC.
  • Il faut commiter souvent pour avoir un historique facilement compréhensible.
  • Les testeurs ne doivent pas faire de la non régression car cette dernière est “automatisable”, il faut garder les personnes sur ce quelles savent faire le mieux : des tests improbables et de vrais tests fonctionnels.
  • NE PAS FAIRE DE BRANCHE car la branche entraine un coût et un risque lors du merge. Il vaut mieux mettre sur le stream principale toutes les fonctionnalités et utiliser d’autres moyens pour activer ou non les fonctionnalités.
  • Ne builder qu’une seule fois et déployer ces binaires sur les différents environnements. Cela permet de garantir la version utilisée.

Crash Course into Scala

By Mario Fusco

A travers cette université, Mario nous a montré comment avec Scala il était facile de créer un DSL : Domain Specific Langage.
Scala est un langage puissant, certes il peut paraître plus compliqué à appréhender que d’autres langages plus répandus mais comme il permet plus de choses cela est justifié ! Afin que tout le monde puisse suivre la création du DSL, Mario a présenté quelques notions de Scala et ses différences par rapport à Java, Haskell, et Groovy.

Spring Data JPA – Repositories done right

by Oliver Gierke

Lors de cette conférence, Oliver Gierke nous a présenté quelques fonctionnalités intéressantes fournies par Spring Data Jpa.
Tout d’abord avec JpaRepository, l’accès classique services-données se trouve notablement simplifié. En effet avec la seule déclaration de JpaRepository, Spring Data se charge de l’implémentation des classes d’accès aux données.
Par exemple une méthode déclarée ‘findByCustomer’ pour une entité ‘Entity’ sera automatiquement implémentée par Spring avec la query qui va bien ‘select … from Entity where customer=…’,  ‘findByCustomerAndName’ généra l’implémentation  ‘select … from Entity where customer=… and name=..’.
Pour les requêtes plus compliquées Spring Data fourni l’interface Specifications.
Autre point abordé, le problème récurrent de pagination. Désormais avec Page et Pageable, la pagination est automatiquement gérée par Spring qui renvoie dans Page toutes les informations nécessaire (nb total d’enregistrement, page en cours, etc…)

Tools in Actions

Forge new Ground in Rapid Enterprise Java Development

By Lincoln Baxter III and Dan Allen

Forge est un shell développé par JBoss permettant de manipuler notre projet comme on pourrait le faire sur un os:
création de projet, ajout de dépendances (jpa avec choix de l’implémentation), création de classe et ajout d’attribut.
Le but est d’abstraire le code sans valeur ajoutée et de le manipuler par script.
C’était très didactique et passionant en seulement 30 minutes.

Arquillian – The Extendable Enterprise Test Platform

By Aslak Knutsen and Dan Allen

JBoss nous présente un autre de leur projet, permettant de résoudre la problématique des tests devant s’effectuer sur une instance de serveur d’application. On peut prendre comme exemple le test unitaire d’une méthode de la couche d’accès aux données. Comme la précédente session celle ci était à base de live coding avec 2 intervenants au top.

Code Review with Git and Gerrit

By Matthias Sohn

Enchainement de slides soporifiques qui n’ont passioné personne. Dommage car le sujet (intégrer la revue de code dans les étapes de développement) aurait mérité mieux.