JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails star there – Fernando Redondo Ramírez

1,640 views
1,549 views

Published on

During this demonstration a practical example of a web app will be developed. Its nature will be ludic (based on Sesame Street characters) but complex enough to put into spot the different features of Grails likewise as Domain Classes, Validators, GORM, Controllers, Services, Testing, etc. It will cover all the commands necessary from the beginning of the project to its end. The whole point will underline what Grails specific traits are over the other rapid development models in use at the moment. Attendants will have a wide glance of involved technologies capacities and roles and of the style of working together with GGTS 3.4 and Grails 2.3, All necessary program code to develop the application will be supplied in advance.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,640
On SlideShare
0
From Embeds
0
Number of Embeds
1,372
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails star there – Fernando Redondo Ramírez

  1. 1. Can You tell me how to get to Sesame Street? I wanna be a Grails rookie star there! Fernando Redondo RamírezFernando Redondo Ramírez @@pronoide_ferpronoide_fer
  2. 2. RoadmapRoadmap • About me • A brief introduction… • Hands on!• Hands on!
  3. 3. AboutAbout MeMe • Entrepreneur and Business Manager at Pronoide since 2003 • Java & Friends Trainer (JEE, Spring, Groovy, Maven, Jenkins, Sonar, Weblogic, Jboss, Websphere, Disco dancing and so ) • Doing things with Java from 1999 on • Computer Engineer • Happily married and proud father of two children who• Happily married and proud father of two children who love all Sesame Street stuff
  4. 4. AA briefbrief introductionintroduction - Just another Grails speech (jags)? - Yes indeed!, but: • We’ll build it all from scratch • We’ll leverage Grails 2.3 • We’re going to do a lot of tests • We’ll deal with the whole app• We’ll deal with the whole app code • We won’t use Scaffolding ;) • No plugins are necessary
  5. 5. AA briefbrief introductionintroduction - But, What is Grails? - Grails isn’t only another web development framework, but it’s a full web development platform: • Embedded Servlet Container (Tomcat) • Database Manager (H2 database) • Scaffolding • Dependency management through Gant• Dependency management through Gant (and Maven) • Application packaging (war) • Test runner (unit, integration, functional) (Junit, Spock) • Uses Groovy language • Extensible with plugins • And much more!
  6. 6. AA briefbrief introductionintroduction - Grails App Architecture - Grails paradigms (more buzz words) • NIH (Not Invented Here) • CoC (Convention over Configuration) • DRY (Don’t Repeat Yourself)
  7. 7. HandsHands onon ((LaterLater at home)!at home)! Before start, you have to… 1. Install Git in your computer http://git-scm.com/book/en/Getting-Started-Installing-Git 2. Download Groovy/Grails Tool Suite 3.5 https://spring.io/tools/ggts/all 3. Start Groovy/Grails Tool Suite 3.5 (GGTS) and choose or create a workspace (remember run it with a JDK)or create a workspace (remember run it with a JDK) 4. Download http://pronoide.com/downloads/javacro2014-grails2- sesamestreet.zip and unzip it into workspace folder. 5. Pace yourself! It’s all quite straightforward…
  8. 8. Stage I: Create web application i. Create webapp (create-app sesame-street) note: it’s not necessary if you choose the Git way. (see appendix at the end of this)
  9. 9. Stage II: Create domain ii. Create the domain classes (create-domain-class sesamestreet.Muppet)
  10. 10. Stage II: Create domain iii. Define properties, constants, constraints and mappings
  11. 11. Stage II: Create domain iv. Let’s complete the unit test (Spock’s way)
  12. 12. Stage II: Create domain v. Run unit tests (test-app)
  13. 13. Stage II: Create domain vi. Create an integration test (create-integration-test ), and run it (test-app integration:)
  14. 14. Stage II: Create domain vii. Let’s change database config and run again (test-app integration:)
  15. 15. Stage III: Create business layer viii.We have to create the service skeleton (create-service sesamestret.MuppetDiscovery)
  16. 16. Stage III: Create business layer ix. First, let’s write the unit test and run it (test-app -unit sesamestreet.MuppetDiscoveryServiceUnitTests)
  17. 17. Stage III: Create business layer x. Implement this service and its logging
  18. 18. Stage III: Create business layer xi. Create an integration test and run all tests (test-app)
  19. 19. Stage IV: Create web layer xii. Create our controller and its code (create-controller sesamestreet.MuppetDiscovery)
  20. 20. Stage IV: Create web layer xiii.First of all, let’s write down a unit test for the controller
  21. 21. Stage IV: Create web layer xiv. Create integration test for controller too!
  22. 22. Stage IV: Create web layer xv. Let’s write down the initial GSP page of searches
  23. 23. Stage IV: Create web layer xvi. GSP page for the best matched muppet
  24. 24. Stage IV: Create web layer xvii. GSP page for no matched muppets
  25. 25. Stage IV: Create web layer xviii. Presentation fine tuning (main.gsp/main.css)
  26. 26. Stage V: Run Webapp xix. Start the web application (run-app)
  27. 27. Stage V: Run Webapp xx. Load initial data and map default controller
  28. 28. Stage V: Run Webapp xxi. Play with the database
  29. 29. Stage V: Run Webapp xxii. Play with the webapp
  30. 30. We'reWe're done!done! I wish I had had this app 4 years ago for entertaining the kids… But at the present time, a new period begins at home: Superheroes and fairies, but that remains for my next year JavaCro talk…year JavaCro talk…
  31. 31. ThanksThanks!! @pronoide_fer https://github.com/fredondo/ fredondo@pronoide.com http://pronoide.com
  32. 32. ApendixApendix:: HandsHands onon ((LaterLater at home)!at home)! Navigate along the proyect code with git presenter 1. Install jruby or ruby http://jruby.org/getting-started https://www.ruby-lang.org/en/installation/ 2. Install git presenter (gem install git_presenter) 3. When the code is ready use the "git-presenter init" command to initialize 4. Once it is initialized you can start the presentation with "git- presenter start"presenter start" 5. Then use the following commands to navigate the presentation • next/n: move to the next slide (commit) • back/b: move to the back slide (commit) • end/e: move to the end of presentation • start/s: move to the start of presentation • list/l : list slides in presentation • help/h: display this message
  33. 33. ApendixApendix:: Stage I: Create web application i. Import webapp (File/Import/Git/Proyect from Git) note: it’s compulsory if you choose the git way

×