SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
Workshop
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
• 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 going
to 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 computer
http://git-scm.com/book/en/Getting-Started-Installing-Git
2. Install jruby or ruby
http://jruby.org/getting-started
https://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 or
create 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

Contenu connexe

En vedette

Roadmap to data driven advice michael goedhart 1v0
Roadmap to data driven advice michael goedhart 1v0Roadmap to data driven advice michael goedhart 1v0
Roadmap to data driven advice michael goedhart 1v0
BigDataExpo
 
Science ABC Book
Science ABC BookScience ABC Book
Science ABC Book
tjelk1
 
Cyberlaw and Cybercrime
Cyberlaw and CybercrimeCyberlaw and Cybercrime
Cyberlaw and Cybercrime
Pravir Karna
 

En vedette (20)

okspring3x
okspring3xokspring3x
okspring3x
 
AWSome Day - Milan, July 24th 2014
AWSome Day - Milan, July 24th 2014AWSome Day - Milan, July 24th 2014
AWSome Day - Milan, July 24th 2014
 
Tuning Solr and its Pipeline for Logs: Presented by Rafał Kuć & Radu Gheorghe...
Tuning Solr and its Pipeline for Logs: Presented by Rafał Kuć & Radu Gheorghe...Tuning Solr and its Pipeline for Logs: Presented by Rafał Kuć & Radu Gheorghe...
Tuning Solr and its Pipeline for Logs: Presented by Rafał Kuć & Radu Gheorghe...
 
OC Big Data Monthly Meetup #6 - Session 1 - IBM
OC Big Data Monthly Meetup #6 - Session 1 - IBMOC Big Data Monthly Meetup #6 - Session 1 - IBM
OC Big Data Monthly Meetup #6 - Session 1 - IBM
 
Fontys eric van tol
Fontys eric van tolFontys eric van tol
Fontys eric van tol
 
(BDT306) Mission-Critical Stream Processing with Amazon EMR and Amazon Kinesi...
(BDT306) Mission-Critical Stream Processing with Amazon EMR and Amazon Kinesi...(BDT306) Mission-Critical Stream Processing with Amazon EMR and Amazon Kinesi...
(BDT306) Mission-Critical Stream Processing with Amazon EMR and Amazon Kinesi...
 
Cigniti joint webinar with Soasta - Agile DevOps: Test-driven IT Environment ...
Cigniti joint webinar with Soasta - Agile DevOps: Test-driven IT Environment ...Cigniti joint webinar with Soasta - Agile DevOps: Test-driven IT Environment ...
Cigniti joint webinar with Soasta - Agile DevOps: Test-driven IT Environment ...
 
Rapid Infrastructure Provisioning
Rapid Infrastructure ProvisioningRapid Infrastructure Provisioning
Rapid Infrastructure Provisioning
 
IBM CEC Big Data 2011 06-11 final
IBM CEC Big Data 2011 06-11 finalIBM CEC Big Data 2011 06-11 final
IBM CEC Big Data 2011 06-11 final
 
Cloud Camp Azure概要
Cloud Camp Azure概要Cloud Camp Azure概要
Cloud Camp Azure概要
 
Cloud Camp: Infrastructure as a service advance workloads
Cloud Camp: Infrastructure as a service advance workloadsCloud Camp: Infrastructure as a service advance workloads
Cloud Camp: Infrastructure as a service advance workloads
 
Roadmap to data driven advice michael goedhart 1v0
Roadmap to data driven advice michael goedhart 1v0Roadmap to data driven advice michael goedhart 1v0
Roadmap to data driven advice michael goedhart 1v0
 
1st step LogicFlow
1st step LogicFlow1st step LogicFlow
1st step LogicFlow
 
Red Hat Storage Server Roadmap & Integration With Open Stack
Red Hat Storage Server Roadmap & Integration With Open StackRed Hat Storage Server Roadmap & Integration With Open Stack
Red Hat Storage Server Roadmap & Integration With Open Stack
 
ecdevday4
ecdevday4ecdevday4
ecdevday4
 
Waarom ontwikkelt elk kind zich anders - prof. dr. Frank Verhulst
Waarom ontwikkelt elk kind zich anders - prof. dr. Frank VerhulstWaarom ontwikkelt elk kind zich anders - prof. dr. Frank Verhulst
Waarom ontwikkelt elk kind zich anders - prof. dr. Frank Verhulst
 
ecdevday7
ecdevday7ecdevday7
ecdevday7
 
Developers Summit 2012 16-E-1
Developers Summit 2012 16-E-1Developers Summit 2012 16-E-1
Developers Summit 2012 16-E-1
 
Science ABC Book
Science ABC BookScience ABC Book
Science ABC Book
 
Cyberlaw and Cybercrime
Cyberlaw and CybercrimeCyberlaw and Cybercrime
Cyberlaw and Cybercrime
 

Similaire à Greach 2014 Sesamestreet Grails2 Workshop

Testing of javacript
Testing of javacriptTesting of javacript
Testing of javacript
Lei Kang
 

Similaire à Greach 2014 Sesamestreet Grails2 Workshop (20)

JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...
JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...
JavaCro'14 - Can You Tell Me How to Get to Sesame Street I wanna be a Grails ...
 
Proper Connections Development for Proper Domino Developers
Proper Connections Development for Proper Domino DevelopersProper Connections Development for Proper Domino Developers
Proper Connections Development for Proper Domino Developers
 
SharePoint Framework 101 (SPFx)
SharePoint Framework 101 (SPFx)SharePoint Framework 101 (SPFx)
SharePoint Framework 101 (SPFx)
 
Sylius, the good choice
Sylius, the good choiceSylius, the good choice
Sylius, the good choice
 
Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)
 
RailsConf 2022 - Upgrading Rails: The Dual Boot Way
RailsConf 2022 - Upgrading Rails: The Dual Boot WayRailsConf 2022 - Upgrading Rails: The Dual Boot Way
RailsConf 2022 - Upgrading Rails: The Dual Boot Way
 
Testing of javacript
Testing of javacriptTesting of javacript
Testing of javacript
 
Django Girls Tutorial
Django Girls TutorialDjango Girls Tutorial
Django Girls Tutorial
 
Testing Big in JavaScript
Testing Big in JavaScriptTesting Big in JavaScript
Testing Big in JavaScript
 
Codeception introduction and use in Yii
Codeception introduction and use in YiiCodeception introduction and use in Yii
Codeception introduction and use in Yii
 
Hack Rio/OS
Hack Rio/OSHack Rio/OS
Hack Rio/OS
 
3 WAYS TO TEST YOUR COLDFUSION API -
3 WAYS TO TEST YOUR COLDFUSION API - 3 WAYS TO TEST YOUR COLDFUSION API -
3 WAYS TO TEST YOUR COLDFUSION API -
 
3 WAYS TO TEST YOUR COLDFUSION API
3 WAYS TO TEST YOUR COLDFUSION API3 WAYS TO TEST YOUR COLDFUSION API
3 WAYS TO TEST YOUR COLDFUSION API
 
Introducing asp.net web pages 2
Introducing asp.net web pages 2Introducing asp.net web pages 2
Introducing asp.net web pages 2
 
Introduction to Using PHP & MVC Frameworks
Introduction to Using PHP & MVC FrameworksIntroduction to Using PHP & MVC Frameworks
Introduction to Using PHP & MVC Frameworks
 
Appium Meetup #2 - Mobile Web Automation Introduction
Appium Meetup #2 - Mobile Web Automation IntroductionAppium Meetup #2 - Mobile Web Automation Introduction
Appium Meetup #2 - Mobile Web Automation Introduction
 
High Productivity Web Development Workflow
High Productivity Web Development WorkflowHigh Productivity Web Development Workflow
High Productivity Web Development Workflow
 
High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014
 
Automation Zaman Now
Automation Zaman NowAutomation Zaman Now
Automation Zaman Now
 
High ROI Testing in Angular.pptx
High ROI Testing in Angular.pptxHigh ROI Testing in Angular.pptx
High ROI Testing in Angular.pptx
 

Plus de Fernando Redondo Ramírez

Plus de Fernando Redondo Ramírez (7)

Codemotion 2015 spock_workshop
Codemotion 2015 spock_workshopCodemotion 2015 spock_workshop
Codemotion 2015 spock_workshop
 
Spring IO 2015 Spock Workshop
Spring IO 2015 Spock WorkshopSpring IO 2015 Spock Workshop
Spring IO 2015 Spock Workshop
 
Greach 2015 Spock workshop
Greach 2015 Spock workshopGreach 2015 Spock workshop
Greach 2015 Spock workshop
 
Seguridad de las aplicaciones web con Spring Security 3.x
Seguridad de las aplicaciones web con Spring Security 3.xSeguridad de las aplicaciones web con Spring Security 3.x
Seguridad de las aplicaciones web con Spring Security 3.x
 
Javacro 2014 Spring Security 3 Speech
Javacro 2014 Spring Security 3 SpeechJavacro 2014 Spring Security 3 Speech
Javacro 2014 Spring Security 3 Speech
 
Greach2013 taller-grails2
Greach2013 taller-grails2Greach2013 taller-grails2
Greach2013 taller-grails2
 
Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3Springio2012 taller-seguridad-web-springsecurity-3
Springio2012 taller-seguridad-web-springsecurity-3
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Greach 2014 Sesamestreet Grails2 Workshop

  • 1. Workshop Can You tell me how to get to Sesame Street? I wanna be a Grails rookie star there! Fernando Redondo Ramírez @pronoide_fer
  • 2. Roadmap • Who am I • Brief introduction… • Hands on!
  • 3. 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
  • 4. Brief introduction - Just another grails workshop (jagw)? - Yes indeed!, but: • We’ll leverage grails 2 • We’ll use TDD and we’re going to do a lot of tests • We’ll deal with the whole app code • We won’t do Scaffolding ;) • No plugins are necessary
  • 5. Hands on! Before start, you have to… 1. Install git in your computer http://git-scm.com/book/en/Getting-Started-Installing-Git 2. Install jruby or ruby http://jruby.org/getting-started https://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 or create 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…
  • 6. Stage I: Create web application i. Create webapp (create-app sesame-street) note: it’s no necessary if you choose the git way
  • 7. Stage I: Create web application i. Import webapp (XXXXXXX) note: it’s compulsory if you choose the git way
  • 8. Stage II: Create domain ii. Create the domain classes (create-domain-class sesamestreet.Muppet)
  • 9. Stage II: Create domain iii. Define properties, constants, constraints and mappings
  • 10. Stage II: Create domain iv. Let’s refactor and write down a Unit Test
  • 11. Stage II: Create domain v. Run Unit tests (test-app)
  • 12. Stage II: Create domain vi. Write an integration test (create-integration-test ) and run it (test-app integration:)
  • 13. Stage II: Create domain vii. Let’s change database config and run again (test-app integration:)
  • 14. Stage III: Create business layer viii.We have to create the service skeleton (create-service sesamestret.MuppetDiscovery)
  • 15. Stage III: Create business layer ix. Let’s write the unit test first and run it (test-app -unit sesamestreet.MuppetDiscoveryServiceUnitTests)
  • 16. Stage III: Create business layer x. Implement this service and its logging
  • 17. Stage III: Create business layer xii. create an integration test and run all tests (test-app)
  • 18. Stage IV: Create web layer xiii.Create a controller (create-controller sesamestreet.MuppetDiscovery)
  • 19. Stage IV: Create web layer xiv. Refactor an write down test unit controller first of all
  • 20. Stage IV: Create web layer xv. Create integration test for controller too!
  • 21. Stage IV: Create web layer xvi. Let’s write down the initial GSP page of searches
  • 22. Stage IV: Create web layer xvii. GSP page for the best matched muppet
  • 23. Stage IV: Create web layer xviii. GSP page for no matched muppets
  • 24. Stage IV: Create web layer xix. presentation fine tuning (main.gsp/main.css)
  • 25. Stage V: Run Webapp xx. Start the web application (run-app)
  • 26. Stage V: Run Webapp xxi. Load data and map default controller
  • 27. Stage V: Run Webapp xxii. play with the database
  • 28. Stage V: Run Webapp xxii. play with the webapp
  • 29. Extra ball: Spock test! xxii. configure plugin and run (compile --refresh-depencies)
  • 30. Extra ball: Spock test! xxii. let’s write some specs samples for unit and integration
  • 31. Extra ball: Spock test! xxii. let’s write some specs samples for unit and integration and run them (test-app :spock)
  • 32. 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…
  • 33. thanks! • @pronoide_fer • https://github.com/fredondo/ • fredondo@pronoide.com • http://pronoide.com • http://blog.pronoide.es