javacro 2014 semamestreet grails 2 speech

33
Can You tell me how to get to Sesame Street? I wanna be a Grails rookie star there! Fernando Redondo Ramírez @pronoide_fer

Upload: fernando-redondo

Post on 18-Dec-2014

240 views

Category:

Technology


3 download

DESCRIPTION

Slides of my talk at JavaCro 2014: Can You Tell Me How to Get to Sesame Street? I wanna be a Grails star there

TRANSCRIPT

Page 1: Javacro 2014  SemameStreet Grails 2 Speech

Can You tell me how to get to Sesame Street? I wanna be a Grails rookie star there!

Fernando Redondo Ramírez

@pronoide_fer

Page 2: Javacro 2014  SemameStreet Grails 2 Speech

Roadmap

• About me

• A brief introduction…

• Hands on!

Page 3: Javacro 2014  SemameStreet Grails 2 Speech

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

Page 4: Javacro 2014  SemameStreet Grails 2 Speech

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

Page 5: Javacro 2014  SemameStreet Grails 2 Speech

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!

Page 6: Javacro 2014  SemameStreet Grails 2 Speech

A brief introduction

- Grails App Architecture

- Grails paradigms (more buzz words)

• NIH (Not Invented Here)

• CoC (Convention over Configuration)

• DRY (Don’t Repeat Yourself)

Page 7: Javacro 2014  SemameStreet Grails 2 Speech

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…

Page 8: Javacro 2014  SemameStreet Grails 2 Speech

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)

Page 9: Javacro 2014  SemameStreet Grails 2 Speech

Stage II: Create domain

ii. Create the domain classes (create-domain-class

sesamestreet.Muppet)

Page 10: Javacro 2014  SemameStreet Grails 2 Speech

Stage II: Create domain

iii. Define properties, constants, constraints and mappings

Page 11: Javacro 2014  SemameStreet Grails 2 Speech

Stage II: Create domain

iv. Let’s complete the unit test (Spock’s way)

Page 12: Javacro 2014  SemameStreet Grails 2 Speech

Stage II: Create domain

v. Run unit tests (test-app)

Page 13: Javacro 2014  SemameStreet Grails 2 Speech

Stage II: Create domain

vi. Create an integration test (create-integration-test ),

and run it (test-app integration:)

Page 14: Javacro 2014  SemameStreet Grails 2 Speech

Stage II: Create domain

vii. Let’s change database config and run again (test-app

integration:)

Page 15: Javacro 2014  SemameStreet Grails 2 Speech

Stage III: Create business layer

viii. We have to create the service skeleton

(create-service sesamestret.MuppetDiscovery)

Page 16: Javacro 2014  SemameStreet Grails 2 Speech

Stage III: Create business layer

ix. First, let’s write the unit test and run it (test-app

-unit sesamestreet.MuppetDiscoveryServiceUnitTests)

Page 17: Javacro 2014  SemameStreet Grails 2 Speech

Stage III: Create business layer

x. Implement this service and its logging

Page 18: Javacro 2014  SemameStreet Grails 2 Speech

Stage III: Create business layer

xi. Create an integration test and run all tests (test-app)

Page 19: Javacro 2014  SemameStreet Grails 2 Speech

Stage IV: Create web layer

xii. Create our controller and its code

(create-controller sesamestreet.MuppetDiscovery)

Page 20: Javacro 2014  SemameStreet Grails 2 Speech

Stage IV: Create web layer

xiii. First of all, let’s write down a unit test for the controller

Page 21: Javacro 2014  SemameStreet Grails 2 Speech

Stage IV: Create web layer

xiv. Create integration test for controller too!

Page 22: Javacro 2014  SemameStreet Grails 2 Speech

Stage IV: Create web layer

xv. Let’s write down the initial GSP page of searches

Page 23: Javacro 2014  SemameStreet Grails 2 Speech

Stage IV: Create web layer

xvi. GSP page for the best matched muppet

Page 24: Javacro 2014  SemameStreet Grails 2 Speech

Stage IV: Create web layer

xvii. GSP page for no matched muppets

Page 25: Javacro 2014  SemameStreet Grails 2 Speech

Stage IV: Create web layer

xviii. Presentation fine tuning (main.gsp/main.css)

Page 26: Javacro 2014  SemameStreet Grails 2 Speech

Stage V: Run Webapp

xix. Start the web application (run-app)

Page 27: Javacro 2014  SemameStreet Grails 2 Speech

Stage V: Run Webapp

xx. Load initial data and map default controller

Page 28: Javacro 2014  SemameStreet Grails 2 Speech

Stage V: Run Webapp

xxi. Play with the database

Page 29: Javacro 2014  SemameStreet Grails 2 Speech

Stage V: Run Webapp

xxii. Play with the webapp

Page 30: Javacro 2014  SemameStreet Grails 2 Speech

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…

Page 31: Javacro 2014  SemameStreet Grails 2 Speech

Thanks!@pronoide_fer

https://github.com/fredondo/

[email protected]

http://pronoide.com

Page 32: Javacro 2014  SemameStreet Grails 2 Speech

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

Page 33: Javacro 2014  SemameStreet Grails 2 Speech

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