SlideShare a Scribd company logo
Ruby approaches in
projection of professional
growth
Max Honcharov
WHY ARE WE HERE?
AGENDA
WHO AM I IN CONTEXT OF RESPONSIBILITY?
WHAT ISSUES RUBY/RAILS HAS?
HOW CAN WE SOLVE IT?
HOW DIFFERENT PEOPLE WILL DO IT?
WHERE IS EXIT HERE?
WHO AM I IN CONTEXT OF RESPONSIBILITY?
RESPONSIBILITY GRADES
TRAINEE
JUNIOR
MIDDLE
SENIOR
LEAD
TRAINEE
JUNIOR
MIDDLE
SENIOR
LEAD
WHAT ISSUES RUBY/RAILS HAS?
ATTENTION!
HOLYWAR IS TOO CLOSE
BUSINESS LOGIC MANIPULATIONS
DOES RAILS PROVIDE SOMETHING?
BUSINESS LOGIC MANIPULATIONS
MVC
BUSINESS LOGIC MANIPULATIONS
IS MODEL FOR BUSINESS LOGIC?
BUSINESS LOGIC MANIPULATIONS
IS MODEL FOR PERSISTENCE LOGIC?
POINTS OF VIEW
MODEL IS FOR BUSINESS LOGIC ONLY
MODEL IS FOR BUSINESS LOGIC AND PERSISTENCE
MODEL IS FOR PERSISTENCE ONLY
MODEL IS JUST ORM ADAPTER
BUSINESS LOGIC MANIPULATIONS
IS CONTROLLER FOR BUSINESS LOGIC?
POINTS OF VIEW
CONTROLLER IS FOR BUSINESS LOGIC
CONTROLLER IS FOR ALL OUTSIDE THE MODEL
CONTROLLER IS FOR AUTH***ON
CONTROLLER IS JUST FOR REQUEST HANDLING AND
ALL ABOUT IT
VIEWS MANIPULATION
IS VIEWS FOR BUSINESS LOGIC?
VIEWS MANIPULATION
IS VIEWS JUST FOR MARKUP AND STYLES?
POINTS OF VIEW
VIEW IS FOR HTML ONLY
VIEW IS FOR DATA OUTPUT
VIEW IS FOR BUSINESS LOGIC
VIEW IS FOR INTERACTION WITH USER
SOLUTIONS
TRAILBLAZER
RECTIFY
INTERACTOR
...
ATTENTION!
NEW HOLYWAR IS CLOSER THAN PREVIOUS
ORM VS PLAIN SQL
HOW OFTEN DO YOU USE PLAIN SQL IN AN APP?
ORM VS PLAIN SQL
IS ACTIVERECORD PANACEA?
ORM VS PLAIN SQL
HOW MANY DEVELOPERS NEED TO SUPPORT THE APP
WITHOUT ORM?
POINTS OF VIEW
SQL IS FOR GEEKS
ORM IS FOR NOOBS
BOTH OF THEM ARE TOOLS
SOLUTIONS
DATAMAPPER AND ANOTHER PATTERNS
DISCOVER DIFFERENT SOLUTIONS
MAKE DECISION BASED ON YOUR CURRENT NEEDS
ATTENTION!
BUTTHURT WILL COME
SPECS
WHAT COVERAGE DO YOU HAVE?
SPECS
HOW DETAILED ARE YOU SPECS?
SPECS
IS MAIN GOAL OF SPECS TO BE PRETTY?
POINTS OF VIEW
CONTEXT VS DESCRIBE
SHOULDA MATCHERS
SUBJECT IS IMMUTABLE
SOLUTIONS
IT’S JUST A TOOL
SPECS ARE NEED TO BE HELPFUL
SPECS DON’T NEED TO BE PRETTY
SPECS ARE NEED TO BE
SUMMARY
CONCENTRATE ON TASKS IN YOUR AREA OF
RESPONSIBILITIES
THE ABILITY TO TAKE RESPONSIBILITY AND
COMPETENTLY APPROACH THE CHOICE OF THE TOOL
MAKES YOU THE BEST DEVELOPERS
YOU CAN’T BE WRONG, YOU CAN USE NOT THE BEST
TOOL
THANK YOU
QUESTIONS?

More Related Content

KEY
Rails traps
PPTX
Building Maintainable PHP Applications.pptx
PPT
Ruby on rails
PPTX
SELF - Becoming a Rails Developer - The Rest of the Story
PDF
The Seneca Pattern at EngineYard Distill 2013 Conference
PDF
Revenge of the ORMs
PPTX
Domain oriented development
PPTX
Things To Unlearn In Software Development
Rails traps
Building Maintainable PHP Applications.pptx
Ruby on rails
SELF - Becoming a Rails Developer - The Rest of the Story
The Seneca Pattern at EngineYard Distill 2013 Conference
Revenge of the ORMs
Domain oriented development
Things To Unlearn In Software Development

Similar to Ruby approaches in the projection of professional growth - Max Goncharov (20)

PDF
Supersize me: Making Drupal go large
PDF
From ddd to DDD : My journey from data-driven development to Domain-Driven De...
PPTX
Pricing On Purpose Our Journey Public Version
PPTX
Data Access Tech Ed India
PPT
Ruby On Rails
PPTX
Scaling High Traffic Web Applications
PPTX
Scaling a High Traffic Web Application: Our Journey from Java to PHP
PDF
Your Strategy Guide for Managing Project Scope
PPT
Functional requirements: Thinking Like A Pirate
PPTX
Learning Web Development with Ruby on Rails Launch
PDF
Product! - The road to production deployment
KEY
How agile is rails
PPT
Architecting for Change: An Agile Approach
PPT
Small is beautiful
PPTX
No more Three Tier - A path to a better code for Cloud and Azure
PPTX
Empower The Power User by @KerriAbraham and @SharePointWendy
PDF
50.000 orange stickies later
PPTX
L13 Oranizing Domain Logic
PDF
The domino maze
PPTX
Basics of Agile
Supersize me: Making Drupal go large
From ddd to DDD : My journey from data-driven development to Domain-Driven De...
Pricing On Purpose Our Journey Public Version
Data Access Tech Ed India
Ruby On Rails
Scaling High Traffic Web Applications
Scaling a High Traffic Web Application: Our Journey from Java to PHP
Your Strategy Guide for Managing Project Scope
Functional requirements: Thinking Like A Pirate
Learning Web Development with Ruby on Rails Launch
Product! - The road to production deployment
How agile is rails
Architecting for Change: An Agile Approach
Small is beautiful
No more Three Tier - A path to a better code for Cloud and Azure
Empower The Power User by @KerriAbraham and @SharePointWendy
50.000 orange stickies later
L13 Oranizing Domain Logic
The domino maze
Basics of Agile
Ad

More from Ruby Meditation (20)

PDF
Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30
PDF
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
PDF
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
PDF
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
PDF
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
PDF
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
PDF
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
PDF
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...
PDF
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...
PDF
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...
PDF
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
PDF
New features in Rails 6 - Nihad Abbasov (RUS) | Ruby Meditation 26
PDF
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26
PDF
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
PDF
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26
PDF
Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25
PDF
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...
PDF
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...
PDF
Rails App performance at the limit - Bogdan Gusiev
PDF
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23
Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
New features in Rails 6 - Nihad Abbasov (RUS) | Ruby Meditation 26
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26
Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...
Rails App performance at the limit - Bogdan Gusiev
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23
Ad

Recently uploaded (20)

PPTX
Big Data Technologies - Introduction.pptx
PDF
cuic standard and advanced reporting.pdf
PPTX
A Presentation on Artificial Intelligence
PPTX
Cloud computing and distributed systems.
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
Big Data Technologies - Introduction.pptx
cuic standard and advanced reporting.pdf
A Presentation on Artificial Intelligence
Cloud computing and distributed systems.
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Dropbox Q2 2025 Financial Results & Investor Presentation
Digital-Transformation-Roadmap-for-Companies.pptx
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Unlocking AI with Model Context Protocol (MCP)
Review of recent advances in non-invasive hemoglobin estimation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Encapsulation theory and applications.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Mobile App Security Testing_ A Comprehensive Guide.pdf
The AUB Centre for AI in Media Proposal.docx

Ruby approaches in the projection of professional growth - Max Goncharov