Bon, il est temps que je démarre mon nouveau projet : je dois développer une application pour gérer l'activité de formation de mon entreprise. Actuellement, le catalogue de formations est géré en ligne, avec une application développée en PHP avec SPIP. Cela a donné satisfaction pendant un temps, car l'objectif était surtout d'alimenter le site Web. Aujourd'hui, on se rend compte que ce mode de gestion est lourd car SPIP ne permet pas une structuration suffisante de l'information. Lorsque Google a annoncé son offre App Engine, je me suis dit que cela pourrait être intéressant : la gestion et la publication du catalogue ne sont pas des applications très gourmandes, on devrait donc rester en deçà des quotas, les données ne sont pas particulièrement confidentielle, et Java est le langage que je pratique depuis une bonne dizaine d'années. Donc, c'est parti...

Dans un premier temps, je vais devoir étudier un peu cette plate-forme GAE, et toutes les contraintes qui lui sont inhérentes. En vrac, les points que je vais devoir étudier sont :
  • Quel environnement de développement ? Ce sera probablement du Maven, avec Netbeans, sur des postes Ubuntu.
  • Quelle architecture et quels frameworks ? Je pense mettre un peu de Spring 3. Pour la couche présentation, Spring MVC tient la corde, mais sans plus. Pour la persistance, la question est encore plus ouverte car les spécificités de GAE sont importantes. Je vais d'ailleurs me pencher sur ce dernier point en priorité.
  • Quels autres librairies ? Si je mettais un peu de validation, avec Hibernate Validator ou Bean Validation ? Comment faire pour les fiches PDF ? Quels outils pour la recherche, Google ou Hibernate Search (ah non, celui-ci ne fonctionne pas sous GAE) ?
  • Comment tester ? Il va falloir que j'étudie les contraintes du framework GAE sur les tests unitaires. Pour les autres tests, on verra plus tard.
  • Comment faire la migration des données ? J'utiliserai probablement du REST pour transférer les données actuelles vers le nouveau stockage.
  • Comment gérer l'authentification ? Dois-je utiliser le système intégré ou Spring Security ?
Je crois que je dois oublier encore un ou deux points. Mais rien que pour ceux-ci, j'ai du pain sur la planche. Sachant que je vais faire ce travail dans les trous du planning, j'ai du mal à me fixer un objectif au niveau de la date. On verra bien...

Bon assez papoté , on y va...