Monter en compétences est désormais un pré-requis dans la vie d’un consultant. Se certifier au long cours est un bon moyen d’acquérir de nouvelles compétences. La certification Spring est l’occasion d’élargir ses connaissances sur les microservices.
Mise au point sur Spring
Spring est un framework open source qui permet de construire et définir l’infrastructure d’une application Java. Ce framework facilite le développement et les tests. Spring est un container dit « léger », appelé application context.
Il permet de configurer et utiliser des objets java, les beans, dont le cycle de vie (configuration, instanciation, injection, destruction) est géré par ce container.
On parle de container léger car il n’a pas la « lourdeur » des serveurs applicatifs JEE pour tourner. il peut « s’instancier » dans un main Java mais à une infrastructure similaire. Les objets java, devenant des beans dans ce container, n’ont pas besoin d’implémenter d’interfaces spécifiques.
Les services fournis par Spring s’articulent sur trois pivots techniques :
- L’injection de dépendance
- L’AOP la programmation orientée aspect
- Une couche d’abstraction pour les services entreprise (JNDI, JDBC, …)
Historiquement SpringSource Core a été développé par Rod Johnson à une époque où les EJB amenait, selon lui, une complexité non nécessaire. Il a donc développé un container léger avec des objets plus simples à configurer et pouvant être complétés de manière modulaire grâce à l’injection de dépendance.
La première version est sortie en 2004, la 2.0 en 2006, la 2.5 est sortie en 2007 et l’on en est actuellement à la 3.0.5 (la 3.1 est en préparation).
Spring étant un projet open source, les informations concernant son développement sont accessibles à tous via le dashboard.
De plus, il existe un certain nombre de librairies de développement également disponible :
- Spring Batch
- Spring AMQP (pour du messaging)
- Spring Roo (génération de code)
- …
Enfin, la société a été rachetée pour devenir une division à part entière de VmWare en 2009, Les deux sociétés ont communiqué sur le fait qu’elles pouvaient trouver des synergies communes concernant les problématiques de virtualisation, cloudComputing, … En effet SpringSource travaille également sur des serveurs applicatifs (spring tc, spring dm qui a été donné à la fondation Eclipse pour devenir Virgo, …)
Parcours de certification
SpringSource propose officiellement trois certifications :
- Spring core professional
- Spring Web Application Developper
- Spring Entreprise Integration Specialist
La première est la plus généraliste et les deux suivantes font des focus forts sur le développement Web et sur l’intégration des services entreprise (transaction, remoting, JMS, …)
Accès à la certification
L’accès à la certification doit être validé. Il existe deux possibilités :
- Suivre une formation Spring avec leur partenaire sur Paris (Zenika)
Ou
- Démontrer que l’on a déjà une connaissance approfondie de SpringCore par sa participation active à la communauté SpringSource (développement, présence sur le forum, rédaction d’articles ou white papers).
La deuxième option n’est plus présentée sur leur site internet mais quelques retours d’expérience sur différents forum évoque cette voie.
Je suis passé par la formation Spring 4 jours à l’issue de laquelle j’ai obtenu un ticket me permettant de réserver mon passage d’examen dans un centre PearsonVUE sur Paris. Aujourd’hui, il est également possible de passer l’examen en ligne à distance.
La formation 4 jours
La formation s’est déroulée dans une salle de Zenika. En fonction des séances, les groupes sont composés de 5-6 à 15-20 personnes, dont les profils sont assez hétérogènes. On y retrouve :
- Des développeurs, des architectes, des chefs de projets …
- Des salariés, des indépendants
- Des personnes n’ayant jamais appréhendé Spring…d’autres le pratiquant régulièrement
- Des personnes issues de différents domaines métiers, avec des niveaux d’expérience différents
Dès notre arrivée, un pc portable, un package d’apprentissage SpringSource (livret de notes, livre de cours, une clé USB avec l’environnement de développement et les projets/TP) est mis à disposition de chaque candidat.
Assez rare pour être noté, l’environnement de développement (STS, maven, sources des TP, …) s’installe bien en un click et est directement fonctionnel (pas de paramétrages nécessaires, …).
Nous avons également le choix de notre IDE de préférence (Eclipse ou IntelliJ pour la plupart) afin d’être à l’aise.
Tout comme les supports de formation, l’examen est en langue anglaise. Pour cette session, le formateur s’exprimait en français car tout le groupe était francophone mais ce n’est pas systématique.
La formation a duré 4 jours de 9h à 17h30, petit déjeuner à l’arrivée et déjeuner commun le midi dans les différents restaurants du quartier. Se déroulant dans une ambiance très conviviale, ces formations sont l’occasion d’échanger avec des personnes de la profession, de partager nos différentes visions de l’informatique, discuter de l’actualité IT, échanger sur nos expériences… au final, le parcours est enrichissant.
Les principaux points abordés :
- Spring core : introduction, présentation
- Le cycle de vie des beans, leur configuration (XML, annotation, Java)
- Les facilités de tests offertes par Spring, notions TDD, mocks et Stubs
- L’AOP (AspectJ, Spring AOP) : utilisation, différences, pièges, …
- DataAccess, JDBC, ORM, Hibernate, Transaction (JTA, JPA), propagation des transactions, politique de rollback, …
- Architectures Web, Spring MVC, architecture REST
- Spring Security
- Spring et les JMS
- Spring et les JMX
- Différents sujets liés à Spring Boot : Autoconfig, monitoring…
Chaque chapitre est suivi d’un TP effectué individuellement avec des consignes pour sa réalisation (on est à peu près sur du 60, 70% théorique et du 30, 40% pratique). Ces TP sont très bien réalisés.
Il y a également quelques points « advanced » qui peuvent être abordés si le temps le permet. Des questions peuvent aussi tomber sur ces points lors de l’examen, attention à ne pas les négliger même s’ils ne sont pas abordés pendant la formation !
C’est un programme de cours très chargé et dense. C’est un balayage large des possibilités de Spring et l’on n’a pas le temps de rentrer dans le détail pour chaque partie. Les 2 autres certifications le permettent plus.
En effet, Spring encapsule et facilite l’utilisation d’un certain nombre de points techniques JEE, il est utile de connaître un peu ces points. Pour ceux les personnes n’ayant pas appréhendé les concepts sous-jacents (les notions de persistances avec ORM, ou ce qu’est un JMX ou un MVC, …) cela peut rendre la formation un peu plus compliquée mais ce n’est pas insurmontable.
Par exemple, on voit comment Spring facilite l’utilisation d’Hibernate et nous sommes donc amenés à configurer des mots-clés qui lui sont propres, … Il est bien précisé par contre que l’examen ne comportera pas de questions sur le sujet. Mais, obtenir de nouvelles informations est toujours intéressant.
Le programme est cohérent et permet vraiment de comprendre SpringCore.
Préparation de l’examen
Suite à cette formation on reçoit par mail un ticket pour s’enregistrer sur PearsonVUE afin de passer l’examen. Il est possible que le ticket tarde à arriver. Certains attendent plusieurs mois. Il ne faut donc pas hésiter à les relancer par mail.
À partir de là, il est possible de choisir sa date de passage. Cependant, nous conseillons de ne pas trop attendre tant que les connaissances sont là. Toutefois, il est bon de se laisser entre 1 et 3 semaines pour ingérer et digérer les connaissances parcourues.
Pour les révisions, le support de cours et les TP suffisent à se préparer.
Vous pouvez également vous appuyer sur le forum de Spring : la documentation de référence et quelques livres si vous voulez allez plus loin (Spring par la pratique, …)
Le forum de Java Ranch est également rempli de conseils concernant la préparation.
L’examen (accès, contenu, déroulement)
L’examen se déroule dans un centre choisi au préalable lors de la réservation avec le ticket, ou bien en visioconférence de chez soi.
Après les formalités administratives (vérification identité, …), on nous demande de poser tous nos sacs, téléphones, … puis on nous place derrière un PC l’examen commence.
Si vous passez l’examen chez vous, vous devez vous assurer d’avoir un ordinateur avec micro et webcam actifs. L’examinateur vous parle à travers un chat textuel (en anglais), et vous demandera de passer en revue toute la pièce dans laquelle vous vous trouvez avec la webcam pour s’assurer qu’aucune triche n’est possible.
L’examen consiste en un QCM de 50 questions à passer en revue en 88 minutes chrono. Pour valider sa certification, il faut 76% de bonnes réponses. Sinon retour à la case de départ : l’achat d’un nouveau ticket !
Les questions du QCM peuvent être du type :
- Sélectionner toutes les réponses qui vous semblent bonnes
- Sélectionner la réponse juste
- Quelle est la réponse fausse : « la première », « la deuxième », « ni la 1 ni la 2 » ou « la 1 et la 2 »
Bref toutes les formes sont possibles.
Sur la composition des questions, il m’a semblé que la majeure partie reste sur core spring puis pas mal sur l’AOP et la persistence. Mais tous les chapitres vus lors de la formation sont abordés (REST, JMX, JMS, ).
Encore une fois, attention aux chapitres « advanced » pour lesquels des questions peuvent aussi être posées, en petit nombre. Mais qui peuvent faire la différence !
Ressources
Présentation : http://www.springsource.com/developer/spring
Présentation de la certification : http://www.springsource.com/training/certification/springprofessional
Forum : http://forum.springsource.org/
Documentation de référence : http://static.springsource.org/spring/docs/3.0.x/reference/index.html
Retour très complet d’une développeuse qui a passé la certification : http://www.selikoff.net/2010/08/20/jeannes-core-spring-3-certification-experiences/
Sébastien Normand, mis à jour par Gaétan Young