Greach 2014 Sesamestreet Grails2 Workshop

Preview:

DESCRIPTION

During this workshop a practical example of a web application 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. Everything will be developed using Groovy/Grails Tool Suite. This workshop will cover all the commands necessary from the beginning of the project to its end, as well as the fine settings required to run it properly. The whole point will underline what Grails specific traits are over the other rapid development models in use at the moment. All necessary program code to develop the workshop application will be supplied in advance to the attendants.

Citation preview

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

Fernando Redondo Ramírez

@pronoide_fer

Roadmap

• Who am I

• Brief introduction…

• Hands on!

Whoami

• Entreprenour and Business Manager at Pronoide

since 2003

• Java & Friends Trainer

• Doing things with Java from 1999 on

• Computer Engineer

• Happily married and proud father of two children

who love all Sesase Street stuff

Brief introduction

- Just another grails workshop (jagw)?

- Yes indeed!, but:

• We’ll leverage grails 2

• We’ll use TDD and we’re goingto do a lot of tests

• We’ll deal with the whole app code

• We won’t do Scaffolding ;)

• No plugins are necessary

Hands on!

Before start, you have to…

1. Install git in your computerhttp://git-scm.com/book/en/Getting-Started-Installing-Git

2. Install jruby or rubyhttp://jruby.org/getting-startedhttps://www.ruby-lang.org/en/installation/

3. Install git presenter (gem install git_presenter)

4. Download Groovy/Grails Tool Suite 3.4 https://spring.io/tools/ggts/all

5. Start Groovy/Grails Tool Suite 3.4 (GGTS) and choose orcreate a workspace (remember run it with a JDK)

6. Download http://pronoide.com/downloads/greach-workshop-2014.zip and unzip it into workspace folder.

7. Hold on! Please wait me right here…

Stage I: Create web application

i. Create webapp (create-app sesame-street)

note: it’s no necessary if you choose the git way

Stage I: Create web application

i. Import webapp (XXXXXXX)

note: it’s compulsory if you choose the git way

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 refactor and write down a Unit Test

Stage II: Create domain

v. Run Unit tests (test-app)

Stage II: Create domain

vi. Write 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. Let’s write the unit test first 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

xii. create an integration test and run all tests (test-app)

Stage IV: Create web layer

xiii. Create a controller

(create-controller sesamestreet.MuppetDiscovery)

Stage IV: Create web layer

xiv. Refactor an write down test unit controller first of all

Stage IV: Create web layer

xv. Create integration test for controller too!

Stage IV: Create web layer

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

Stage IV: Create web layer

xvii. GSP page for the best matched muppet

Stage IV: Create web layer

xviii. GSP page for no matched muppets

Stage IV: Create web layer

xix. presentation fine tuning (main.gsp/main.css)

Stage V: Run Webapp

xx. Start the web application (run-app)

Stage V: Run Webapp

xxi. Load data and map default controller

Stage V: Run Webapp

xxii. play with the database

Stage V: Run Webapp

xxii. play with the webapp

Extra ball: Spock test!

xxii. configure plugin and run (compile --refresh-depencies)

Extra ball: Spock test!

xxii. let’s write some specs samples for unit and integration

Extra ball: Spock test!

xxii. let’s write some specs samples for unit and integration

and run them (test-app :spock)

We're done!

I wish i would have had this app

4 years ago… Meanwhile at the

time being a new period begins:

Superheroes and fairies, but

that remains for the next year

greach…

thanks!

• @pronoide_fer

• https://github.com/fredondo/

• fredondo@pronoide.com

• http://pronoide.com

• http://blog.pronoide.es

Recommended