SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
use Rails?
                            hy not   to
                          W


Rails Israel 2012
Monday, November 12, 12
Arik Fraimovich
               @arikfr

               TRuby Podcast



Monday, November 12, 12
actually...
                 Why use Rails at all?


Monday, November 12, 12
Monday, November 12, 12
• Community




Monday, November 12, 12
• Community
                   • Ruby Gems




Monday, November 12, 12
• Community
                   • Ruby Gems
                   • Simplicity




Monday, November 12, 12
• Community
                   • Ruby Gems
                   • Simplicity
                   • Convention over configuration


Monday, November 12, 12
• Community
                   • Ruby Gems
                   • Simplicity
                   • Convention over configuration
                   • Choices that are made for you

Monday, November 12, 12
• Community
                   • Ruby Gems
                   • Simplicity
                   • Convention over configuration
                   • Choices that are made for you

Monday, November 12, 12
Monday, November 12, 12
When not to use Rails?



Monday, November 12, 12
general purpose
                          libraries (gems)


Monday, November 12, 12
for the simple stuff
Monday, November 12, 12
for large web application
                       or anything that isn’t a
                           web application


Monday, November 12, 12
“Our tools shape our
                          thinking.”
                                                 @drnic




Monday, November 12, 12
Monday, November 12, 12
• Everything is sort of global, no need for
                          require

                   • (Usually) no namespacing
                   • Everything in the context of HTTP request


Monday, November 12, 12
No need to require?




Monday, November 12, 12
No need to require?
                   • Sounds nice at the beginning




Monday, November 12, 12
No need to require?
                   • Sounds nice at the beginning
                   • But then it starts to creep on you and
                          everything becomes sllllowww...




Monday, November 12, 12
No need to require?
                   • Sounds nice at the beginning
                   • But then it starts to creep on you and
                          everything becomes sllllowww...
                          • Slow boot time



Monday, November 12, 12
No need to require?
                   • Sounds nice at the beginning
                   • But then it starts to creep on you and
                          everything becomes sllllowww...
                          • Slow boot time
                          • Slow specs


Monday, November 12, 12
No need to require?
                   • Sounds nice at the beginning
                   • But then it starts to creep on you and
                          everything becomes sllllowww...
                          • Slow boot time
                          • Slow specs
                          • Slow everything
Monday, November 12, 12
Solution?

                          Spork (Zeus?)


Monday, November 12, 12
Solution?

                          Spork (Zeus?)


Monday, November 12, 12
The common Rails app.
Monday, November 12, 12
The Rails app you want
Monday, November 12, 12
Engines
Monday, November 12, 12
Wagons
Monday, November 12, 12
What about
                          the everything in
                          “HTTP context”?


Monday, November 12, 12
Good question.



Monday, November 12, 12
No good answers*


                          * from me. yet.

Monday, November 12, 12
Some Pointers




Monday, November 12, 12
Some Pointers

                   • Actor Model - “easy” concurrency. Popular
                          implementation in Ruby: Celluloid




Monday, November 12, 12
Some Pointers

                   • Actor Model - “easy” concurrency. Popular
                          implementation in Ruby: Celluloid
                   • JRuby



Monday, November 12, 12
Some Pointers

                   • Actor Model - “easy” concurrency. Popular
                          implementation in Ruby: Celluloid
                   • JRuby
                   • TorqueBox


Monday, November 12, 12
Wrap up




Monday, November 12, 12
Wrap up
                   • Use Rails, but remember there are other
                          things out there




Monday, November 12, 12
Wrap up
                   • Use Rails, but remember there are other
                          things out there
                   • Use Rails “carefully”, as your project grows



Monday, November 12, 12
Wrap up
                   • Use Rails, but remember there are other
                          things out there
                   • Use Rails “carefully”, as your project grows
                   • Don’t forget that not everything is a nail


Monday, November 12, 12
Wrap up
                   • Use Rails, but remember there are other
                          things out there
                   • Use Rails “carefully”, as your project grows
                   • Don’t forget that not everything is a nail
                   • And most important: keep using Ruby. It’s
                          awesome


Monday, November 12, 12
Questions?

                           @arikfr



Monday, November 12, 12
•      Architecture The Lost Years


                   •      Wrangling Large Rails Codebases


                   •      Hexagonal Rails


                   •      Celluloid


                   •      JRuby


                   •      TorqueBox


                   •      About concurrency and the GIL


                   •      Images taken shamelessly from Google.




Monday, November 12, 12

Mais conteúdo relacionado

Destaque

The Twitter Green Revolution
The Twitter Green RevolutionThe Twitter Green Revolution
The Twitter Green Revolution
Arik Fraimovich
 
Spork || How To Streamline Your TDD Process
Spork || How To Streamline Your TDD ProcessSpork || How To Streamline Your TDD Process
Spork || How To Streamline Your TDD Process
Arik Fraimovich
 

Destaque (11)

Reversim Summit 2014: re:dash a new way to query, visualize and collaborate o...
Reversim Summit 2014: re:dash a new way to query, visualize and collaborate o...Reversim Summit 2014: re:dash a new way to query, visualize and collaborate o...
Reversim Summit 2014: re:dash a new way to query, visualize and collaborate o...
 
PyData London 2015 - How We Turned EverythingMe Into a Data Driven Company
PyData London 2015 - How We Turned EverythingMe Into a Data Driven CompanyPyData London 2015 - How We Turned EverythingMe Into a Data Driven Company
PyData London 2015 - How We Turned EverythingMe Into a Data Driven Company
 
Re:dash Use Cases at iPROS
Re:dash Use Cases at iPROSRe:dash Use Cases at iPROS
Re:dash Use Cases at iPROS
 
re:dash is awesome
re:dash is awesomere:dash is awesome
re:dash is awesome
 
The Twitter Green Revolution
The Twitter Green RevolutionThe Twitter Green Revolution
The Twitter Green Revolution
 
Measure Everything
Measure EverythingMeasure Everything
Measure Everything
 
Spork || How To Streamline Your TDD Process
Spork || How To Streamline Your TDD ProcessSpork || How To Streamline Your TDD Process
Spork || How To Streamline Your TDD Process
 
Making impact
Making impactMaking impact
Making impact
 
Presto Meetup 2016 Small Start
Presto Meetup 2016 Small StartPresto Meetup 2016 Small Start
Presto Meetup 2016 Small Start
 
Fluentd - road to v1 -
Fluentd - road to v1 -Fluentd - road to v1 -
Fluentd - road to v1 -
 
Embulk, an open-source plugin-based parallel bulk data loader
Embulk, an open-source plugin-based parallel bulk data loaderEmbulk, an open-source plugin-based parallel bulk data loader
Embulk, an open-source plugin-based parallel bulk data loader
 

Semelhante a Why not to use Rails? (actually it's when not to use Rails)

Ryan Tech Tools EWBC 2012
Ryan Tech Tools EWBC 2012Ryan Tech Tools EWBC 2012
Ryan Tech Tools EWBC 2012
Ryan Opaz
 
Performance for Product Developers
Performance for Product DevelopersPerformance for Product Developers
Performance for Product Developers
Matthew Wilkes
 
Ricoh social media & sales
Ricoh social media & salesRicoh social media & sales
Ricoh social media & sales
Vincent Everts
 
Lean Startup at Innovation Works
Lean Startup at Innovation WorksLean Startup at Innovation Works
Lean Startup at Innovation Works
Ray Wu
 
Make something real for Firefox OS with Mozilla app templates
Make something real  for Firefox OS with Mozilla app templatesMake something real  for Firefox OS with Mozilla app templates
Make something real for Firefox OS with Mozilla app templates
Piotr Zalewa
 
Optimizing your site for contextual ads: SEO, Design and Content
Optimizing your site for contextual ads: SEO, Design and ContentOptimizing your site for contextual ads: SEO, Design and Content
Optimizing your site for contextual ads: SEO, Design and Content
Raven Tools
 
Operational Impact of Continuous Deployment
Operational Impact of Continuous DeploymentOperational Impact of Continuous Deployment
Operational Impact of Continuous Deployment
Avleen Vig
 

Semelhante a Why not to use Rails? (actually it's when not to use Rails) (20)

living drupal
living drupalliving drupal
living drupal
 
Introduction to the Disruptor
Introduction to the DisruptorIntroduction to the Disruptor
Introduction to the Disruptor
 
Ryan Tech Tools EWBC 2012
Ryan Tech Tools EWBC 2012Ryan Tech Tools EWBC 2012
Ryan Tech Tools EWBC 2012
 
Performance for Product Developers
Performance for Product DevelopersPerformance for Product Developers
Performance for Product Developers
 
Presentatie Document lifecycle2012
Presentatie Document lifecycle2012Presentatie Document lifecycle2012
Presentatie Document lifecycle2012
 
Modern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & StructureModern HTML & CSS Coding: Speed, Semantics & Structure
Modern HTML & CSS Coding: Speed, Semantics & Structure
 
[Phind] Miracle
[Phind] Miracle[Phind] Miracle
[Phind] Miracle
 
Maximiliano Firtman
Maximiliano FirtmanMaximiliano Firtman
Maximiliano Firtman
 
Ricoh social media & sales
Ricoh social media & salesRicoh social media & sales
Ricoh social media & sales
 
JS-Everywhere - LocalStorage Hands-on
JS-Everywhere - LocalStorage Hands-onJS-Everywhere - LocalStorage Hands-on
JS-Everywhere - LocalStorage Hands-on
 
Interfaces Inteligentes para Android
Interfaces Inteligentes para AndroidInterfaces Inteligentes para Android
Interfaces Inteligentes para Android
 
The Journey to a Full-Time Freelance Web Design Business
The Journey to a Full-Time Freelance Web Design BusinessThe Journey to a Full-Time Freelance Web Design Business
The Journey to a Full-Time Freelance Web Design Business
 
import continuous.delivery.*
import continuous.delivery.*import continuous.delivery.*
import continuous.delivery.*
 
Lean Startup at Innovation Works
Lean Startup at Innovation WorksLean Startup at Innovation Works
Lean Startup at Innovation Works
 
Insider's Technology Guide to Measuring and Improving Your ROI
Insider's Technology Guide to Measuring and Improving Your ROIInsider's Technology Guide to Measuring and Improving Your ROI
Insider's Technology Guide to Measuring and Improving Your ROI
 
Make something real for Firefox OS with Mozilla app templates
Make something real  for Firefox OS with Mozilla app templatesMake something real  for Firefox OS with Mozilla app templates
Make something real for Firefox OS with Mozilla app templates
 
Optimizing your site for contextual ads: SEO, Design and Content
Optimizing your site for contextual ads: SEO, Design and ContentOptimizing your site for contextual ads: SEO, Design and Content
Optimizing your site for contextual ads: SEO, Design and Content
 
Operational Impact of Continuous Deployment
Operational Impact of Continuous DeploymentOperational Impact of Continuous Deployment
Operational Impact of Continuous Deployment
 
Why Speed Matters
Why Speed MattersWhy Speed Matters
Why Speed Matters
 
I Love Techno - the site
I Love Techno - the siteI Love Techno - the site
I Love Techno - the site
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+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@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

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...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
+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...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 

Why not to use Rails? (actually it's when not to use Rails)

  • 1. use Rails? hy not to W Rails Israel 2012 Monday, November 12, 12
  • 2. Arik Fraimovich @arikfr TRuby Podcast Monday, November 12, 12
  • 3. actually... Why use Rails at all? Monday, November 12, 12
  • 6. • Community • Ruby Gems Monday, November 12, 12
  • 7. • Community • Ruby Gems • Simplicity Monday, November 12, 12
  • 8. • Community • Ruby Gems • Simplicity • Convention over configuration Monday, November 12, 12
  • 9. • Community • Ruby Gems • Simplicity • Convention over configuration • Choices that are made for you Monday, November 12, 12
  • 10. • Community • Ruby Gems • Simplicity • Convention over configuration • Choices that are made for you Monday, November 12, 12
  • 12. When not to use Rails? Monday, November 12, 12
  • 13. general purpose libraries (gems) Monday, November 12, 12
  • 14. for the simple stuff Monday, November 12, 12
  • 15. for large web application or anything that isn’t a web application Monday, November 12, 12
  • 16. “Our tools shape our thinking.” @drnic Monday, November 12, 12
  • 18. • Everything is sort of global, no need for require • (Usually) no namespacing • Everything in the context of HTTP request Monday, November 12, 12
  • 19. No need to require? Monday, November 12, 12
  • 20. No need to require? • Sounds nice at the beginning Monday, November 12, 12
  • 21. No need to require? • Sounds nice at the beginning • But then it starts to creep on you and everything becomes sllllowww... Monday, November 12, 12
  • 22. No need to require? • Sounds nice at the beginning • But then it starts to creep on you and everything becomes sllllowww... • Slow boot time Monday, November 12, 12
  • 23. No need to require? • Sounds nice at the beginning • But then it starts to creep on you and everything becomes sllllowww... • Slow boot time • Slow specs Monday, November 12, 12
  • 24. No need to require? • Sounds nice at the beginning • But then it starts to creep on you and everything becomes sllllowww... • Slow boot time • Slow specs • Slow everything Monday, November 12, 12
  • 25. Solution? Spork (Zeus?) Monday, November 12, 12
  • 26. Solution? Spork (Zeus?) Monday, November 12, 12
  • 27. The common Rails app. Monday, November 12, 12
  • 28. The Rails app you want Monday, November 12, 12
  • 31. What about the everything in “HTTP context”? Monday, November 12, 12
  • 33. No good answers* * from me. yet. Monday, November 12, 12
  • 35. Some Pointers • Actor Model - “easy” concurrency. Popular implementation in Ruby: Celluloid Monday, November 12, 12
  • 36. Some Pointers • Actor Model - “easy” concurrency. Popular implementation in Ruby: Celluloid • JRuby Monday, November 12, 12
  • 37. Some Pointers • Actor Model - “easy” concurrency. Popular implementation in Ruby: Celluloid • JRuby • TorqueBox Monday, November 12, 12
  • 39. Wrap up • Use Rails, but remember there are other things out there Monday, November 12, 12
  • 40. Wrap up • Use Rails, but remember there are other things out there • Use Rails “carefully”, as your project grows Monday, November 12, 12
  • 41. Wrap up • Use Rails, but remember there are other things out there • Use Rails “carefully”, as your project grows • Don’t forget that not everything is a nail Monday, November 12, 12
  • 42. Wrap up • Use Rails, but remember there are other things out there • Use Rails “carefully”, as your project grows • Don’t forget that not everything is a nail • And most important: keep using Ruby. It’s awesome Monday, November 12, 12
  • 43. Questions? @arikfr Monday, November 12, 12
  • 44. Architecture The Lost Years • Wrangling Large Rails Codebases • Hexagonal Rails • Celluloid • JRuby • TorqueBox • About concurrency and the GIL • Images taken shamelessly from Google. Monday, November 12, 12