javacro 2014 semamestreet grails 2 speech
DESCRIPTION
Slides of my talk at JavaCro 2014: Can You Tell Me How to Get to Sesame Street? I wanna be a Grails star thereTRANSCRIPT
Can You tell me how to get to Sesame Street? I wanna be a Grails rookie star there!
Fernando Redondo Ramírez
@pronoide_fer
Roadmap
• About me
• A brief introduction…
• Hands on!
About Me• 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
love all Sesame Street stuff
A brief introduction
- 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
code
• We won’t use Scaffolding ;)
• No plugins are necessary
A brief introduction- But, What is Grails?
- Grails isn’t only another web development framework, but it’sa full web development platform:• Embedded Servlet Container (Tomcat)
• Database Manager (H2 database)
• Scaffolding
• 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!
A brief introduction
- Grails App Architecture
- Grails paradigms (more buzz words)
• NIH (Not Invented Here)
• CoC (Convention over Configuration)
• DRY (Don’t Repeat Yourself)
Hands on (Later at home)!
Before start, you have to…
1. Install Git in your computerhttp://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)
4. Download http://pronoide.com/downloads/javacro2014-grails2-
sesamestreet.zip and unzip it into workspace folder.
5. Pace yourself! It’s all quite straightforward…
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)
Stage II: Create domain
ii. Create the domain classes (create-domain-class
sesamestreet.Muppet)
Stage II: Create domain
iii. Define properties, constants, constraints and mappings
Stage II: Create domain
iv. Let’s complete the unit test (Spock’s way)
Stage II: Create domain
v. Run unit tests (test-app)
Stage II: Create domain
vi. Create an integration test (create-integration-test ),
and run it (test-app integration:)
Stage II: Create domain
vii. Let’s change database config and run again (test-app
integration:)
Stage III: Create business layer
viii. We have to create the service skeleton
(create-service sesamestret.MuppetDiscovery)
Stage III: Create business layer
ix. First, let’s write the unit test and run it (test-app
-unit sesamestreet.MuppetDiscoveryServiceUnitTests)
Stage III: Create business layer
x. Implement this service and its logging
Stage III: Create business layer
xi. Create an integration test and run all tests (test-app)
Stage IV: Create web layer
xii. Create our controller and its code
(create-controller sesamestreet.MuppetDiscovery)
Stage IV: Create web layer
xiii. First of all, let’s write down a unit test for the controller
Stage IV: Create web layer
xiv. Create integration test for controller too!
Stage IV: Create web layer
xv. Let’s write down the initial GSP page of searches
Stage IV: Create web layer
xvi. GSP page for the best matched muppet
Stage IV: Create web layer
xvii. GSP page for no matched muppets
Stage IV: Create web layer
xviii. Presentation fine tuning (main.gsp/main.css)
Stage V: Run Webapp
xix. Start the web application (run-app)
Stage V: Run Webapp
xx. Load initial data and map default controller
Stage V: Run Webapp
xxi. Play with the database
Stage V: Run Webapp
xxii. Play with the webapp
We're 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…
Apendix: Hands on (Later at home)! Navigate along the proyect code with git presenter
1. Install jruby or rubyhttp://jruby.org/getting-startedhttps://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"
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
Apendix: Stage I: Create web application
i. Import webapp (File/Import/Git/Proyect from Git)
note: it’s compulsory if you choose the git way