SlideShare a Scribd company logo
Tootle returning to rails
TOOTLE:
RETURNING TO
RAILS
ANDREW GRIMM
ROROSYD JUNE 9 2015
MY CAREER SO FAR…
UNIVERSITY OF SYDNEY
• Bachelor of Science (Bioinformatics) Honours
Class I (Biology)
• Final undergraduate year half biology, half
computer science
• Honours year involved a bioinformatics project
CHILDREN’S HOSPITAL AT
WESTMEAD
• Worked on RettBASE, an online database of
mutations to MECP2 which causes Rett syndrome
• Biological knowledge important, plus general
computing skills, but not much programming
MARINE BIOLOGICAL
LABORATORY
• Work related to the Encyclopedia of Life, a website
aiming to have a series of pages for each species
known to science
• ~ 6 months PHP, 6 months Ruby on Rails
UNSW AUSTRALIA
• Analysis of mutation in HIV
• Used Ruby (without Rails)
CURRENT POSITION
• Back-end Rails developer at a large product
company
CHANGES FROM PREVIOUS TO
CURRENT JOB
• Solo development => Group development
• Research => commercial environment
• Ruby => Rails
PULL REQUESTS
• Have to get two approvals for each pull request
• Advantage: Source of feedback
• Disadvantage: More work when you thought you’d
nished
PACE OF WORK
• Previous job involved weekly or twice-weekly
meetings
• Now daily standups and JIRA tickets
RUBY TO RAILS
• Bit more magical
TESTING
• In previous job used test/unit, real objects, and
tested actual results
• Now use RSpec, factory girl. Techniques include
mocking, and testing that one class is calling the
correct methods on other classes and objects.
COMPARISON OF TESTING
TECHNIQUES: SCENARIO
• A product has a delivery postcode, which must be
four digits, and must be to a location we deliver to
• ‘Sydney’ is not valid, because it isn’t 4 digits
• ‘0800’ is not valid, because we don’t deliver there
• ‘2000’ is valid, because we deliver there
TESTING TECHNIQUES: REAL
OBJECTS
• Is a product with postcode ‘Sydney’ invalid?
• Is a product with postcode ‘0800’ invalid?
• Is a product with postcode ‘2000’ valid?
TESTING TECHNIQUES:
MOCKING
• Testing that Product successfully uses postcode
format validation
• The format validator says that the postcode does
not contain 4 digits. Is the postcode valid?
• The format validator says that the postcode does
contain 4 digits. Is the postcode valid?
WHY THE DIFFERENCE?
• Can’t do dependency injection
• Have to intercept calls to objects or classes
INHERITANCE
• Delegation (as opposed to inheritance):
• spreadsheet = Library::Spreadsheet.new
• spreadsheet.serialize(@spreadsheet_filename)
• Inheritance
• class MutationSpreadsheet < Library::Spreadsheet
• end
MAGIC
• Ruby-only style:
• length_validator = LengthValidator.new(dna)
• length_validator.valid?
• Rails style:
• validates :dna, length: true

More Related Content

PPTX
The Gingerbread Man Alyssa Allen
Alyssa Allen
 
PPT
The Rainbow Fish
barrasso93
 
PPT
Project 1
laguila
 
PPT
Swimmy
Michele Perna
 
PPT
The rainbow fish
eliseyoung7
 
PPTX
There was an old lady who swallowed a fly
louloufrench
 
PDF
If You Give a Mouse a Cookie: Managing Scope
Tim Hamilton
 
PDF
Adivina cuanto te quiero
yuuki_88
 
The Gingerbread Man Alyssa Allen
Alyssa Allen
 
The Rainbow Fish
barrasso93
 
Project 1
laguila
 
Swimmy
Michele Perna
 
The rainbow fish
eliseyoung7
 
There was an old lady who swallowed a fly
louloufrench
 
If You Give a Mouse a Cookie: Managing Scope
Tim Hamilton
 
Adivina cuanto te quiero
yuuki_88
 

Viewers also liked (9)

PPT
CUENTOS BIBLIOTECA: FREDERICK de 3Âş curso Leo Lionni
MÂŞ Carmen de la Victoria LeĂłn
 
PPT
The very-hungry-caterpillar-1224994450325802-9
Julieth Gil Ardila
 
PPT
The Giving Tree
Seta Wicaksana
 
PDF
English 3 lm quarter 1
EDITHA HONRADEZ
 
PPTX
The Carrot Seed
Glenn Fernandez
 
PPT
If You Give a Moose A Muffin
Molly Burnell
 
PPT
The Giving Tree by Shel Silverstein
peneglos
 
PPT
The Very Hungry Caterpillar
samanthamorris211
 
PDF
Guided Reading: Making the Most of It
Jennifer Jones
 
CUENTOS BIBLIOTECA: FREDERICK de 3Âş curso Leo Lionni
MÂŞ Carmen de la Victoria LeĂłn
 
The very-hungry-caterpillar-1224994450325802-9
Julieth Gil Ardila
 
The Giving Tree
Seta Wicaksana
 
English 3 lm quarter 1
EDITHA HONRADEZ
 
The Carrot Seed
Glenn Fernandez
 
If You Give a Moose A Muffin
Molly Burnell
 
The Giving Tree by Shel Silverstein
peneglos
 
The Very Hungry Caterpillar
samanthamorris211
 
Guided Reading: Making the Most of It
Jennifer Jones
 
Ad

Similar to Tootle returning to rails (20)

KEY
Testing gone-right
Jesse Wolgamott
 
PDF
2011-02-03 LA RubyConf Rails3 TDD Workshop
Wolfram Arnold
 
PPTX
Introduction to testing in Rails
benlcollins
 
PDF
Rethinking Testing
pdejuan
 
PDF
Lessons Learnt in 2009
pratiknaik
 
PPTX
RSpec and Rails
Alan Hecht
 
PPS
Rspec
Nyros Technologies
 
PDF
RSpec on Rails Tutorial
Wen-Tien Chang
 
PDF
Efficient Rails Test Driven Development (class 3) by Wolfram Arnold
Marakana Inc.
 
PPT
Ruby on Rails testing with Rspec
Bunlong Van
 
KEY
Test Coverage in Rails
James Gray
 
PPTX
Day 1 - Intro to Ruby
Barry Jones
 
PDF
Ruby on Rails Training in Bangalore Classroom, Online
myTectra Learning Solutions Private Ltd
 
PPT
Ruby for C# Developers
Cory Foy
 
PDF
Ruby and rails - Advanced Training (Cybage)
Gautam Rege
 
PDF
Story for a Ruby on Rails Single Engineer
TylerJohnson988371
 
PDF
Automated Testing with Ruby
Keith Pitty
 
PDF
One does not simply "Upgrade to Rails 3"
testflyjets
 
PDF
What NOT to test in your project
alexandre freire
 
Testing gone-right
Jesse Wolgamott
 
2011-02-03 LA RubyConf Rails3 TDD Workshop
Wolfram Arnold
 
Introduction to testing in Rails
benlcollins
 
Rethinking Testing
pdejuan
 
Lessons Learnt in 2009
pratiknaik
 
RSpec and Rails
Alan Hecht
 
RSpec on Rails Tutorial
Wen-Tien Chang
 
Efficient Rails Test Driven Development (class 3) by Wolfram Arnold
Marakana Inc.
 
Ruby on Rails testing with Rspec
Bunlong Van
 
Test Coverage in Rails
James Gray
 
Day 1 - Intro to Ruby
Barry Jones
 
Ruby on Rails Training in Bangalore Classroom, Online
myTectra Learning Solutions Private Ltd
 
Ruby for C# Developers
Cory Foy
 
Ruby and rails - Advanced Training (Cybage)
Gautam Rege
 
Story for a Ruby on Rails Single Engineer
TylerJohnson988371
 
Automated Testing with Ruby
Keith Pitty
 
One does not simply "Upgrade to Rails 3"
testflyjets
 
What NOT to test in your project
alexandre freire
 
Ad

More from Andrew Grimm (20)

PPTX
Finding Japanese Flatmates with Ruby (English and Japanese)
Andrew Grimm
 
PPT
Git Tips and Tricks
Andrew Grimm
 
PPTX
RuboCop
Andrew Grimm
 
PDF
Finding Japanese flatmates with Ruby
Andrew Grimm
 
PDF
YHA Japan travel night (internet version)
Andrew Grimm
 
ODP
Curing AIDS, with programming
Andrew Grimm
 
PPTX
Avoiding niseko syndrome
Andrew Grimm
 
PPTX
Curing AIDS, with programming
Andrew Grimm
 
ODP
Memoirs of a programmer (internet version)
Andrew Grimm
 
ODP
Rubyist in oz
Andrew Grimm
 
PPT
Japanese: a programmers language
Andrew Grimm
 
ODP
Ruby for newbies Lake Ainsworth
Andrew Grimm
 
ODP
Ruby 1.8.8 and professor
Andrew Grimm
 
ODP
Sapporo ruby kaigi
Andrew Grimm
 
ODP
How to talk like a ge1sha
Andrew Grimm
 
ODP
All I want for Matz-mas
Andrew Grimm
 
ODP
Mistakes I have made
Andrew Grimm
 
ODP
Ampersand method
Andrew Grimm
 
ODP
Nihon go do you speak it
Andrew Grimm
 
PPS
Small eigen collider ruby kaigi 2011
Andrew Grimm
 
Finding Japanese Flatmates with Ruby (English and Japanese)
Andrew Grimm
 
Git Tips and Tricks
Andrew Grimm
 
RuboCop
Andrew Grimm
 
Finding Japanese flatmates with Ruby
Andrew Grimm
 
YHA Japan travel night (internet version)
Andrew Grimm
 
Curing AIDS, with programming
Andrew Grimm
 
Avoiding niseko syndrome
Andrew Grimm
 
Curing AIDS, with programming
Andrew Grimm
 
Memoirs of a programmer (internet version)
Andrew Grimm
 
Rubyist in oz
Andrew Grimm
 
Japanese: a programmers language
Andrew Grimm
 
Ruby for newbies Lake Ainsworth
Andrew Grimm
 
Ruby 1.8.8 and professor
Andrew Grimm
 
Sapporo ruby kaigi
Andrew Grimm
 
How to talk like a ge1sha
Andrew Grimm
 
All I want for Matz-mas
Andrew Grimm
 
Mistakes I have made
Andrew Grimm
 
Ampersand method
Andrew Grimm
 
Nihon go do you speak it
Andrew Grimm
 
Small eigen collider ruby kaigi 2011
Andrew Grimm
 

Recently uploaded (20)

PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
The Future of Artificial Intelligence (AI)
Mukul
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 

Tootle returning to rails

  • 3. MY CAREER SO FAR…
  • 4. UNIVERSITY OF SYDNEY • Bachelor of Science (Bioinformatics) Honours Class I (Biology) • Final undergraduate year half biology, half computer science • Honours year involved a bioinformatics project
  • 5. CHILDREN’S HOSPITAL AT WESTMEAD • Worked on RettBASE, an online database of mutations to MECP2 which causes Rett syndrome • Biological knowledge important, plus general computing skills, but not much programming
  • 6. MARINE BIOLOGICAL LABORATORY • Work related to the Encyclopedia of Life, a website aiming to have a series of pages for each species known to science • ~ 6 months PHP, 6 months Ruby on Rails
  • 7. UNSW AUSTRALIA • Analysis of mutation in HIV • Used Ruby (without Rails)
  • 8. CURRENT POSITION • Back-end Rails developer at a large product company
  • 9. CHANGES FROM PREVIOUS TO CURRENT JOB • Solo development => Group development • Research => commercial environment • Ruby => Rails
  • 10. PULL REQUESTS • Have to get two approvals for each pull request • Advantage: Source of feedback • Disadvantage: More work when you thought you’d nished
  • 11. PACE OF WORK • Previous job involved weekly or twice-weekly meetings • Now daily standups and JIRA tickets
  • 12. RUBY TO RAILS • Bit more magical
  • 13. TESTING • In previous job used test/unit, real objects, and tested actual results • Now use RSpec, factory girl. Techniques include mocking, and testing that one class is calling the correct methods on other classes and objects.
  • 14. COMPARISON OF TESTING TECHNIQUES: SCENARIO • A product has a delivery postcode, which must be four digits, and must be to a location we deliver to • ‘Sydney’ is not valid, because it isn’t 4 digits • ‘0800’ is not valid, because we don’t deliver there • ‘2000’ is valid, because we deliver there
  • 15. TESTING TECHNIQUES: REAL OBJECTS • Is a product with postcode ‘Sydney’ invalid? • Is a product with postcode ‘0800’ invalid? • Is a product with postcode ‘2000’ valid?
  • 16. TESTING TECHNIQUES: MOCKING • Testing that Product successfully uses postcode format validation • The format validator says that the postcode does not contain 4 digits. Is the postcode valid? • The format validator says that the postcode does contain 4 digits. Is the postcode valid?
  • 17. WHY THE DIFFERENCE? • Can’t do dependency injection • Have to intercept calls to objects or classes
  • 18. INHERITANCE • Delegation (as opposed to inheritance): • spreadsheet = Library::Spreadsheet.new • spreadsheet.serialize(@spreadsheet_lename) • Inheritance • class MutationSpreadsheet < Library::Spreadsheet • end
  • 19. MAGIC • Ruby-only style: • length_validator = LengthValidator.new(dna) • length_validator.valid? • Rails style: • validates :dna, length: true