Le Touilleur Express

  • Accueil
  • A propos de l’auteur
  • A propos du Touilleur Express

Git et Play! Framework

2 octobre, 2010

cocktailL’un des points forts de Play! Framework c’est sa productivité. Lorsque vous modifiez une page web ou une classe Java, il suffit de recharger la page Web pour voir votre modification. Ceci vous évite, lorsque vous êtes en mode « dev », de perdre du temps à compiler et déployer votre application. Certes, il existe des outils comme JRebel, mais qui ne savent pas cependant répondre à une autre caractéristique de Play! Framework : il n’y a pas d’état. Chaque appel des méthodes d’un controller est indépendant. Vous ne verrez jamais une méthode prendre en argument une classe User par exemple (updated) le framework ne stocke pas d’entités, il est possible de passer un objet à une méthode, c’est une astuce de Play! pour dé-sérialiser les arguments HTTP d’un appel. En règle générale, vous verrez plutôt une méthode acceptant un userId. Vous devrez implémenter le rechargement de l’entité de la base ou d’un cache. Cela peut sembler curieux, lorsque l’on est habitué aux architectures avec session HTTP. Pourtant c’est de cette façon que fonctionne les sites à fort trafic. C’est aussi l’approche de PHP par exemple. Bref d’un framework Web.

Je travaille avec Git depuis quelques semaines. En quelques mots, Git est un gestionnaire de code source distribué, extrêmement rapide. Ce logiciel open-source a été initié par Linus Torvalds, afin de remplacer SVN sur le développement du noyau Linux. Avec Mercurial ou Bazaar, il fait partie de la famille des DVCS dont le Paris JUG a parlé en mai dernier.

Le concept de DVCS est vraiment le truc que vous devez apprendre rapidement. Je vous conseille de lire le Git Community Book pour commencer. Vous pouvez très bien utiliser Git en local, même avec une équipe qui travaille avec SVN. Je n’ai pas encore testé, mais il semble que cette approche permet de travailler encore plus efficacement. Git s’attache à suivre les modifications sur le contenu du fichier, plus sur une structure en répertoire et en fichier comme SVN. Il est donc capable de comprendre que « c’est le même contenu » même lorsque vous déplacez et changez souvent vos noms de fichiers. Au delà de ce concept, il est vraiment très puissant, et pas si compliqué à apprendre. Je le conseille aux équipes distribuées, ou à ceux qui ont un rythme de commit différent du reste de l’équipe… ce qui est le cas de tout le monde.

Alors pourquoi Play! et Git me dîtes vous ?

Et bien je découvre des fonctionnalités assez magique. Un peu lorsque tu découvres le combo bas, bas-droit, droit et bouton B pour envoyer une boule de feu avec Riu par exemple.

J’ai commencé un projet appelé GeekEvent sur GitHub, afin de préparer quelque chose de sympa pour le prochain Paris JUG. Pour coder ma partie « rssFeed » dans cette application, j’ai créé une branche Git, je l’ai implémenté, et pour l’instant je ne l’ai pas encore mergé dans la branche principale. Grâce à Git, je peux passer d’une branche à l’autre et là où c’est génial, c’est que lorsque je change de branche, et que Git me remet les fichiers de chaque branche, je n’ai qu’à recharger ma page dans mon navigateur pour voir le résultat !!!
Comme je n’ai pas de session au sens « Servlet » du terme, je peux même tester des fonctions de l’application, sans devoir remplir mon petit panier avec ma réservation d’Hôtel. Et comme à cet instant précis cher lecteur, je sais que tu n’as rien compris, j’ai fait une petite vidéo.

Voir la vidéo de Play! Framework et Git en action

Rendez-vous le mardi 12 octobre pour voir encore d’autres recettes avec Play! Framework pour le Paris JUG.

Rendez-vous le lundi 18 octobre pour venir à la conférence Soft Shake à Genève, où je présenterai Play! Framework.

Articles similaires:

Default ThumbnailPlay! Framework : Uploader une image Default ThumbnailRevue du livre Play Framework Cookbook d’Alexander Reelsen Default ThumbnailPing, une conférence dédiée à Play! Framework Default ThumbnailFramework Play! à découvrir le jeudi 17 décembre
  • zepouet 2 octobre 2010 at 20 h 17 min

    Merci Nicolas,

    Tu m’as convaincu de tester Play 🙂 maintenant c’est GIT. A cause de toi, j’avance pas sur mes autres projets 🙁

    Merci tout de même !

  • Sebastien Douche 2 octobre 2010 at 20 h 38 min

    – Linus Torvalds pas Torvald.

    – Use alias Luke! Tu tapes encore checkout ? 🙂

  • Valentin 2 octobre 2010 at 21 h 39 min

    Et moi qui n’ai toujours pas pu me mettre à Play! je suis encore plus impatient, merci pour cet article!

    > initié par Linus Torvald, afin de remplacer SVN sur le développement du noyau Linux

    petite précision pour dire qu’avant git l’équipe du noyau linux utilisait déjà un DVCS, en l’occurence BitKeeper. Je le sais parce que j’ai fait quelques recherches dernièrement pour mon dernier billet 🙂

    > C’est aussi l’approche de PHP par exemple.

    Pas certain que ce soit vraiment l’approche de PHP. L’approche de certaines applications utilisant PHP oui mais du développement PHP utilisant les sessions c’est vachement courant…

  • Valentin 2 octobre 2010 at 21 h 44 min

    Et puis je me réjouis de la présentation de Play! à Soft-Shake! J’espère juste que la session n’entrera pas en conflit avec d’autres sessions qui m’intéressent.

  • pascal 3 octobre 2010 at 14 h 18 min

    Je ne suis pas encore convaincu pas play! (A vrai dire je n’ai vraiment pas regardé), mais il est sûr que git apporte une énorme souplaisse à la gestion des sources.

  • Emmanuel 3 octobre 2010 at 17 h 41 min

    « Vous ne verrez jamais une méthode prendre en argument une classe User par exemple ». A la lecture de la doc, c’est maintenant possible (cela l’a toujours été ?).
    public static void create(Client client ) { client.save(); show(client); }

  • Nicolas Martignole 4 octobre 2010 at 9 h 09 min

    @Emmanuel : en effet je me suis mal exprimé. Je confirme ce que j’ai dis : il n’est pas possible de faire passer un objet complet à une méthode.

    Le cas particulier est celui que vous avez dans une méthode de création d’une entité. Dans le code que vous donnez, la méthode create serait l’action appelée d’un formulaire pour créer un Client. Play! est alors capable de désérialiser les parametres HTTP et de vous reconstituer une instance de Client, qu’il ne vous reste plus qu’à sauvegarder. Comprenez donc qu’ici il ne s’agit que d’un objet local créé à partir de la requête HTTP. La page web associée aurait l’ensemble des attributs de Client sous la forme de paramètres HTTP classique. Une astuce de binding/unmarshalling donc.

  • Fabszn 4 octobre 2010 at 9 h 19 min

    Hello Nicolas,

    Article intéressant, merci.

    Dans cette phrase : Git s’attache à suivre les modifications sur le contenu du fichier, plus sur une structure en répertoire et en fichier comme SVN

    Il ne manquerait pas un mot, qui aurait son importance :

    Git s’attache à suivre les modifications sur le contenu du fichier, plus QUE sur une structure en répertoire et en fichier comme SVN.

    @++

  • Bertrand Dechoux 4 octobre 2010 at 9 h 30 min

    A priori, personne n’a cliqué sur le lien pour ‘Play! Framework’. Sans le http:// devant le nom de domaine, les navigateurs (ou en tout cas, firefox) pensent qu’il s’agit d’un lien relatif….

    Git & Play sont les deux choses que je veux absolument voir.. mais pour l’instant je n’en ai pas trouvé le temps.

    Git, alors effectivement, DVCS cela dit tout, une fois que l’on comprends la signification et les avantages.

    Et pour Play même si je suis jamais plus loin que la documentation j’ai lu qu’il y avait un support pour Scala et qu’il utilise groovy. Le fait de voir un framework qui combine des langages JVM est intéressant.

  • Emmanuel 4 octobre 2010 at 11 h 02 min

    @Nicolas: on est bien d’accord qu’il s’agit d’une « aide » qui évite de devoir faire explicitement le binding. Et pour être précis cela fonctionne pour une création, mais aussi pour une mise à jour etc… à partir du moment où un id est fourni parmi les paramètres HTTP. (doc Play!, section JPA object binding)

  • Nicolas Martignole 4 octobre 2010 at 13 h 28 min

    @Bertrand : coquille corrigée, merci.

  • Nicolas Martignole 4 octobre 2010 at 13 h 31 min

    Note : il est possible que la vidéo ne marche pas car j’ai explosé mon quota ScreenCast. Je n’ai droit qu’à 2gb par jour. Essayez dans ce cas de revenir le lendemain pour la visualiser. Promis dès que j’ai un peu plus de sous, je prends un abonnement.

Derniers articles

  • Vis ma vie de Staff/Principal Engineer

    Suite de l’article précédent sur le Staff Engineer. Aujourd’hui, voyons un peu

    20 juillet, 2022
  • Inari

    Devenir Staff Engineer : comment et pourquoi ?

    Après une dizaine d’années en tant que développeur, vous serez un jour

    17 juillet, 2022
  • WeAreDevelopers 2022, conférence à Berlin – jour 1

    Il est 8h40, 19 degrés, vous êtes à Berlin. La queue dehors

    24 juin, 2022

Tweets @nmartignole

  • Je découvre qu’ils apprennent le SQL en Terminal, très intéressant https://t.co/MrfcHve9wo

    13 hours ago
  • RT  @AmelieBenoit33 : Je m’essaye à de nouveaux formats ! Un premier sketch qui me trottait en tête depuis le sketchnote précédent; la techn…

    21 hours ago
  • RT  @ShirleyAlmCh : Je recrute un profil de Solution Architect (H/F) pour le compte de la Casden. J'ai adoré discuté avec eux, super ambiance…

    2 days ago

Mots clés

Apple (32) Architecture (13) Big Data (5) Conference (8) Devoxx (55) Dev Web (37) Doctolib (2) geekevent (1) groovy (2) Innoteria (11) Java (517) Linux (10) Non classé (14) Perso (266) Recrutement (3) Scala (30) scrum (43) Société (3) Startup (20) Web 2.0 (67)

Le Touilleur Express

Blog par Nicolas Martignole

Contactez-moi : nicolas@touilleur-express.fr

Suivez-moi sur Twitter : @nmartignole

Copyright© 2008 - 2020 Nicolas Martignole | Tous droits réservés
  • A propos de l’auteur
  • A propos du Touilleur Express
  • Log In
  • My Account
  • My Profile
  • Reset Password

Le Touilleur Express