• Like
  • Save
FinistJUG -   J’ai besoin d’une appli web rapidement
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 3,404 views

 

Statistics

Views

Total Views
3,404
Views on SlideShare
766
Embed Views
2,638

Actions

Likes
0
Downloads
9
Comments
0

7 Embeds 2,638

http://finistjug.fr 1587
http://www.lostinbrittany.org 1029
http://abtasty.com 15
http://webcache.googleusercontent.com 4
http://ranksit.com 1
http://www.linkedin.com 1
https://www.linkedin.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • J’ai besoin d’une appli web rapidement !Développement rapide dapplications web sur la JVM ?
    • 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
    • On a un besoin !Maintenant on fait comment ?
    • 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...
    • 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 !
    • 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 !
    • 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 ?
    • 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 !
    • 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
    • Développement web rapide ? Cest quoi ce beans ?
    • 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
    • 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
    • Concepts du développement web rapide ?De quoi mon framework a besoin ?
    • 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)
    • 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
    • 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é !
    • 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
    • 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)
    • Il y a quoi dans ?
    • 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
    • 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/
    • 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
    • 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 !
    • Mais si je veux être encore plus hype ? ● Les développeurs cools jouent avec Play Framework
    • Play! Framework Je veux jouer !
    • 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
    • - 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • Twitter BootstrapCar nous ne sommes pas tous des graphistes
    • 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
    • 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
    • La panoplie Twitter Bootstrap ● Des éléments de base, des composants, des widgets complèxes... ● Modulable ● Responsive
    • 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
    • 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
    • Le mot de la finUn principe à ne pas oublier
    • 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
    • Show us something, dude ! Voici une petite démo