FinistJUG - J’ai besoin d’une appli web rapidement

4 144 vues

Publié le

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

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

Aucune remarque pour cette diapositive

FinistJUG - J’ai besoin d’une appli web rapidement

  1. 1. J’ai besoin d’une appli web rapidement !Développement rapide dapplications web sur la JVM ?
  2. 2. Tes qui, toi ? Horacio Gonzalez Spaniard lost in Brittany, Java developer, dreamer and all-around geek● Architecte technique au Crédit Mutuel Arkea ○ Direction Technique Informatique● JUG Leader du FinistJUG http://lostinbrittany.org/ +Horacio.Gonzalez @LostInBrittany
  3. 3. On a un besoin !Maintenant on fait comment ?
  4. 4. Développement rapide dapplications web ? Comment fait-on quand on a besoin de créer rapidement une petite application web dentreprise ?● La plupart des forges logicielles dentreprise ne sont pas adaptées à ce besoin...
  5. 5. Développement rapide dapplications web ?● Réponse du freelance hipster Java est ringard, lourd et compliqué, utilise quelque chose de moderne comme Ruby on Rails !
  6. 6. Développement rapide dapplications web ?● Réponse de la Production Dans cette boîte on travaille sur la JVM, et on a des normes. Ton truc dhippie ne rentrera pas dans mes serveurs !
  7. 7. Développement rapide dapplications web ?● Réponse du manager Nos équipes ne connaissent pas la techno, les procédures ne sont pas là, le workflow nest pas prêt, et on ne sait pas chiffrer ça ! Et si on se trompe, à qui la faute ?
  8. 8. Développement rapide dapplications web ?● Réponse du marketing On a besoin de lappli pour lundi ! Cest toujours pareil, vous dites toujours non ! On va faire appel à une web agency et déployer sur le cloud, au moins ça sera fait... Et moins cher !
  9. 9. Développement rapide dapplications web ?● Et pourtant le besoin est là... Quoi faire ? On est en 2013 ! Aujourdhui on peut faire du développement web rapide sur la JVM
  10. 10. Développement web rapide ? Cest quoi ce beans ?
  11. 11. Un peu dhistoire : Ruby on Rails● 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 jour Ruby a changé la façon de faire du développement web
  12. 12. Un peu dhistoire :les outils JEE face à Rails● 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 rapides
  13. 13. Concepts du développement web rapide ?De quoi mon framework a besoin ?
  14. 14. Convention plutôt que configuration● Le framework doit avoir des conventions qui définisent comment 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 maximum Principe Dont Repeat Yourself (DRY)
  15. 15. Si on fait du web, suivons le web When a web framework starts an architecture fight with 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 être adapté au web
  16. 16. 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 doit suffit de recharger la page pour qu la modif est prise en compte ○ Ca, cest de la productivité !
  17. 17. 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
  18. 18. Grails à la rescousseGrails● 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)
  19. 19. Il y a quoi dans ?
  20. 20. Il y a quoi dautre dans ?● 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 Java
  21. 21. 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érateurs http://groovy.codehaus.org/
  22. 22. Mais il y a quoi sous le capot ? 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 lapplication
  23. 23. Et quel IDE jutilise ?● 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 !
  24. 24. Mais si je veux être encore plus hype ? ● Les développeurs cools jouent avec Play Framework
  25. 25. Play! Framework Je veux jouer !
  26. 26. 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
  27. 27. - productivité et plaisir● Conçu par des développeurs web pour des dé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 la page !● Framework complet, full-stack
  28. 28. 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
  29. 29. 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
  30. 30. Les limites des frameworksclassiques● Chaque utilisateur connecté consomme des ressources ○ 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
  31. 31. 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
  32. 32. Et quel IDE jutilise ?● 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 plugin
  33. 33. Twitter BootstrapCar nous ne sommes pas tous des graphistes
  34. 34. Cest très beau ça... mais leHTML5/CSS3/JS me fait peur !● Si on fait du web en 2013 on ne peut pas se passer du HTML5/CSS3/JS ○ Mais la plupart des développeurs Java naiment pas HTML5/CSS3/JS ○ On nest pas des graphistes !● Quoi faire ?● Solution 1: Venir à la séssion FinistJUG davril ○ JavaScript pour des développeurs Java● Solution 2 : Utiliser Twitter Bootstrap
  35. 35. Cest quoi Twitter Bootstrap● Constats chez Twitter en 2009 : ○ Les développeurs dapplications web naiment pas faire de lIHM web ○ A chaque nouvelle application, on refaisait une IHM ○ Soucis dergonomie, duniformité, desthétisme● Solution : faire un boîte à utils HTML5/CSS3/JS ○ Pour IHMs performantes, egonomiques et jolies ○ Simple à utiliser ■ Permettant à un développeur de faire des IHMs belles et efficaces ○ Lingua franca entre graphistes et développeurs
  36. 36. La panoplie Twitter Bootstrap ● Des éléments de base, des composants, des widgets complèxes... ● Modulable ● Responsive
  37. 37. Facile à intégrer,facile à personnaliser● Il suffit dembarquer les JS et CSS Bootstrap● Les composants sont des classes CSS● Pas besoin de prise de tête avec la présentation● Responsive, adaptable à tout terminal Mais je veux ma présentation à moi● Des thèmes ○ Permettant de garder la puissance Bootstrap ○ Adaptant le look à ce que je veux ○ Toujours sans prise de tête développeur
  38. 38. Lingua franca ?● Les graphistes web aiment Bootstrap ○ Ergonomie soignée ○ CSS claires et structurées ○ Simplicité dadaptation et personnalisation des thèmes● Les développeurs aiment Bootstrap● Les graphistes et développeurs comprennent Bootstrap Langage commun entre développeurs et graphistes● Le graphiste fournit des maquettes en Bootstrap● Le développeur adapte sa logique IHM à Bootstrap
  39. 39. Le mot de la finUn principe à ne pas oublier
  40. 40. Loi de loutil Si 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 autre Il faut utiliser chaque techno pour lutilisation pour laquelle il est pertinent
  41. 41. Show us something, dude ! Voici une petite démo

×