Conception dApplicationsInteractives :Applications Web et JEESéance #5Jai besoin dune appli we rapidement
On a un besoin !Maintenant on fait comment ?
Développement rapide dapplications web ?Comment fait-on quand on a besoin de créer rapidementune petite application web de...
Développement rapide dapplications web ?● Réponse du freelance hipsterJava est ringard, lourd et compliqué, utilise quelqu...
Développement rapide dapplications web ?● Réponse de la ProductionDans cette boîte on travaille sur la JVM,et on a des nor...
Développement rapide dapplications web ?● Réponse du managerNos équipes ne connaissent pas la techno,les procédures ne son...
Développement rapide dapplications web ?● Réponse du marketingOn a besoin de lappli pour lundi !Cest toujours pareil, vous...
Développement rapide dapplications web ?● Et pourtant le besoin est là... Quoi faire ?On est en 2013 !Aujourdhui on peut f...
Développement webrapide ?Cest quoi ce beans ?
● Framework MVC de développement web rapide○ Full stack Framework○ Générateurs de code : models, views, controllers● Conve...
● Frameworks orientés applications dentreprise○ Grosses applications○ Cycles de développement long○ Grosses équipes de dév...
Concepts dudéveloppement webrapide ?De quoi mon framework a besoin ?
Convention plutôt que configuration● Le framework doit avoir des conventions qui définisentcomment coder○ Si on suit les c...
Si on fait du web, suivons le webWhen a web framework starts an architecture fightwith the web, the framework loses.● PHP ...
Modifiez, rechargez, cest fait !● Devoir redémarrer le serveur après une modif ?● Redéployer car on a changé un fichier ?●...
GrailsBridgekeeper: What... is your name?Sir Lancelot: My name is Sir Lancelot of Camelot.Bridgekeeper: What... is your qu...
Grails● Framework de développement web rapide○ Sur la JVM○ Avec une intégration sans faille avec Java● Inspiré par Ruby on...
Il y a quoi dans ?
● Développement en Groovy● Très expressive● Sans tuyauterie○ Rapidité et simplicité :change le code et recharge la page !●...
Groovy, baby !Langage de POO destiné à la plate-forme Java● Inspiré de Python, Ruby et Smalltalk● Syntaxe très proche de J...
Grails nest pas un jouet● Si vous faites les choses à la façon Grails○ Tout est simple, aucun boilerplate● Pour les besoin...
● Spring Tool Suite (STS)○ IDE basé sur Eclipse○ Support pour toute la suite Spring○ Support complet Grails (et Groovy, of...
● Les développeurs cools jouent avec Play FrameworkMais si je veux être encore plus hype ?
Play! FrameworkJe veux jouer !
Le projetPlay! est un framework pour● faire du développement web● avec une haute productivité● avec létat de lart des tech...
- productivité et plaisir● Conçu par des développeurs web pour desdéveloppeurs web● Gestion simple, flexible et puissante ...
non plus nest pas un jouet● Modèle de programmation HTTP asynchrone● Architecture scalable de haute performance● Modèle re...
Le web a évolué● On est au bord dune nouvelle évolution :○ Les requêtes asynchrones en temps réel○ Des énormes flux de don...
Les limites des frameworksclassiques● Chaque utilisateur connecté consomme desressources○ Mémoire, threads...● Modèles bas...
Play! utilise un modèle réactif● Inversion de contrôle○ On agit que lorsquon a quelque chose à faire● Sans perte de contrô...
● Eclipse○ Avec ScalaIDE plugin○ Support complet Play! (et Scala, of course)● IntelliJ Ultimate Edition○ Support complet P...
Le mot de la finUn principe à ne pas oublier
Loi de loutilSi le seul outil que tu as est un marteau, tu vas tattaquerà tous les problèmes comme si ils étaient des clou...
Show us something, dude !Voici une petite démo
Prochain SlideShare
Chargement dans…5
×

Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !

461 vues

Publié le

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
461
Sur SlideShare
0
Issues des intégrations
0
Intégrations
1
Actions
Partages
0
Téléchargements
22
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !

  1. 1. Conception dApplicationsInteractives :Applications Web et JEESéance #5Jai besoin dune appli we rapidement
  2. 2. On a un besoin !Maintenant on fait comment ?
  3. 3. Développement rapide dapplications web ?Comment fait-on quand on a besoin de créer rapidementune petite application web dentreprise ?● La plupart des forges logicielles dentreprise ne sont pasadaptées à ce besoin...
  4. 4. Développement rapide dapplications web ?● Réponse du freelance hipsterJava est ringard, lourd et compliqué, utilise quelquechose de moderne comme Ruby on Rails !
  5. 5. Développement rapide dapplications web ?● Réponse de la ProductionDans cette boîte on travaille sur la JVM,et on a des normes. Ton truc dhippie nerentrera pas dans mes serveurs !
  6. 6. Développement rapide dapplications web ?● Réponse du managerNos équipes ne connaissent pas la techno,les procédures ne sont pas là, le workflow nestpas prêt, et on ne sait pas chiffrer ça !Et si on se trompe, à qui la faute ?
  7. 7. Développement rapide dapplications web ?● Réponse du marketingOn a besoin de lappli pour lundi !Cest toujours pareil, vous dites toujours non !On va faire appel à une web agency etdéployer sur le cloud, au moins ça sera fait...Et moins cher !
  8. 8. Développement rapide dapplications web ?● Et pourtant le besoin est là... Quoi faire ?On est en 2013 !Aujourdhui on peut faire du développementweb rapide sur la JVM
  9. 9. Développement webrapide ?Cest quoi ce beans ?
  10. 10. ● Framework MVC de développement web rapide○ Full stack Framework○ Générateurs de code : models, views, controllers● Convention plutôt que configuration○ Élimination de la tuyauterie○ Pas de soupe au XML○ Don’t Repeat Yourself (DRY)● Orienté agilité, lappli tourne dès le premier jourRuby a changé la façon de faire dudéveloppement webUn peu dhistoire : Ruby on Rails
  11. 11. ● Frameworks orientés applications dentreprise○ Grosses applications○ Cycles de développement long○ Grosses équipes de développeurs○ Coût de setup projet élevé● Peu adaptés à petites applications ou cycles rapidesUn peu dhistoire :les outils JEE face à Rails
  12. 12. Concepts dudéveloppement webrapide ?De quoi mon framework a besoin ?
  13. 13. Convention plutôt que configuration● Le framework doit avoir des conventions qui définisentcomment coder○ Si on suit les conventions, il ny a pas de tuyauterie à faire● Le framework doit permettre de coder autrement○ Pour des besoins pas adaptées à la convention○ Dans ce cas, on doit faire la tuyauterie● Pour que ça marche, ces cas doivent rester à la marge○ Ratio 80% convention, 20% configuration maximumPrincipe Dont Repeat Yourself (DRY)
  14. 14. Si on fait du web, suivons le webWhen a web framework starts an architecture fightwith the web, the framework loses.● PHP et Ruby on Rails lont bien compris○ Si on fait du web, on sadapte au web !● Un framework de développent web rapide doit êtreadapté au web
  15. 15. Modifiez, rechargez, cest fait !● Devoir redémarrer le serveur après une modif ?● Redéployer car on a changé un fichier ?● A nouveau, regardons PHP ou Ruby on Rails○ Si on fait du web, on sadapte au web !● Avec un framework de développent web rapide il doitsuffit de recharger la page pour qu la modif est prise encompte○ Ca, cest de la productivité !
  16. 16. GrailsBridgekeeper: What... is your name?Sir Lancelot: My name is Sir Lancelot of Camelot.Bridgekeeper: What... is your quest?Sir Lancelot: To seek the Holy Grail.Bridgekeeper: What... is your favourite colour?Sir Lancelot: Blue.Bridgekeeper: Go on. Off you go.Monty Python and the Holy Grail
  17. 17. Grails● Framework de développement web rapide○ Sur la JVM○ Avec une intégration sans faille avec Java● Inspiré par Ruby on Rails, Django et autres○ Convention plutôt que configuration○ Don’t Repeat Yourself (DRY)Grails à la rescousse
  18. 18. Il y a quoi dans ?
  19. 19. ● Développement en Groovy● Très expressive● Sans tuyauterie○ Rapidité et simplicité :change le code et recharge la page !● Syntaxe familière pour développeurs Java● Intégration sans faille avec JavaIl y a quoi dautre dans ?
  20. 20. Groovy, baby !Langage de POO destiné à la plate-forme Java● Inspiré de Python, Ruby et Smalltalk● Syntaxe très proche de Java● Compilé○ soit à la volée dynamiquement○ soit classiquement vers bytecode● Typages statique et dynamique● Support natif pour listes, maps et regex● Fermetures ou clôtures (closures)● Surcharge des opérateurshttp://groovy.codehaus.org/
  21. 21. Grails nest pas un jouet● Si vous faites les choses à la façon Grails○ Tout est simple, aucun boilerplate● Pour les besoins exotiques○ Vous pouvez mettre les mains dans Spring○ Tout reste propre pour le reste de lapplicationMais il y a quoi sous le capot ?
  22. 22. ● Spring Tool Suite (STS)○ IDE basé sur Eclipse○ Support pour toute la suite Spring○ Support complet Grails (et Groovy, of course)● IntelliJ Ultimate Edition○ Support complet Grails (et Groovy, of course) via plugin○ Payant● NetBeans○ Support complet Grails (et Groovy, of course via plugin● Gedit, TextMate, Notepad++, même Emacs !Et quel IDE jutilise ?
  23. 23. ● Les développeurs cools jouent avec Play FrameworkMais si je veux être encore plus hype ?
  24. 24. Play! FrameworkJe veux jouer !
  25. 25. Le projetPlay! est un framework pour● faire du développement web● avec une haute productivité● avec létat de lart des technologies web● sur la JVM● double modèle de développement○ Java ou Scala
  26. 26. - productivité et plaisir● Conçu par des développeurs web pour desdéveloppeurs web● Gestion simple, flexible et puissante du protocole HTTP○ Framework web -> HTTP au centre○ Stateless, request-response● Facilité de démarrage○ Courbe dapprentissage douce● Rapidité et simplicité : change le code et recharge lapage !● Framework complet, full-stack
  27. 27. non plus nest pas un jouet● Modèle de programmation HTTP asynchrone● Architecture scalable de haute performance● Modèle reactive, non bloquant● Typage fort● Architecture stateless basé sur HTTP● Modifiez, rechargez, cest fait !● HTTP utilisé comme protocole, avec sa semantique
  28. 28. Le web a évolué● On est au bord dune nouvelle évolution :○ Les requêtes asynchrones en temps réel○ Des énormes flux de données○ Les BDD non relationnelles● Les frameworks classiques ont du mal à sadapter
  29. 29. Les limites des frameworksclassiques● Chaque utilisateur connecté consomme desressources○ Mémoire, threads...● Modèles basés sur lattente active○ Synchronisme entre requête et réponse○ On bloque un thread côté serveur● Les I/O sont bloquantes
  30. 30. Play! utilise un modèle réactif● Inversion de contrôle○ On agit que lorsquon a quelque chose à faire● Sans perte de contrôle○ Mais on est capable de garder le contrôle● Iteratee/Enumerator IO
  31. 31. ● Eclipse○ Avec ScalaIDE plugin○ Support complet Play! (et Scala, of course)● IntelliJ Ultimate Edition○ Support complet Play! (et Scala, of course) via plugin○ Payant● NetBeans○ Support complet Grails (et Groovy, of course via pluginEt quel IDE jutilise ?
  32. 32. Le mot de la finUn principe à ne pas oublier
  33. 33. Loi de loutilSi le seul outil que tu as est un marteau, tu vas tattaquerà tous les problèmes comme si ils étaient des clous● Grails, Play et autres sont adaptés à un type de besoin● GWT, Spring, JSF et autres sont adaptés à un autreIl faut utiliser chaque techno pour lutilisationpour laquelle il est pertinent
  34. 34. Show us something, dude !Voici une petite démo

×