Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Architecting Rails Apps
Search
Iago Dahlem Lorensini
December 10, 2018
0
320
Architecting Rails Apps
Iago Dahlem Lorensini
December 10, 2018
Tweet
Share
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
How to Ace a Technical Interview
jacobian
281
24k
A Soul's Torment
seathinner
5
2.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How to Talk to Developers About Accessibility
jct
2
130
[SF Ruby Conf 2025] Rails X
palkan
1
750
The World Runs on Bad Software
bkeepers
PRO
72
12k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
Become a Pro
speakerdeck
PRO
31
5.8k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
68
GitHub's CSS Performance
jonrohan
1032
470k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Transcript
ARCHITECTING ARCHITECTING RAILS RAILS APPS APPS Studies and thoughts from
a Front End perspective.
IAGO DAHLEM IAGO DAHLEM Passionate about web and it's ecossystem
JavaScript Addicted (also like Ruby) Software Developer at Codeminer 42 Florianópolis
WE ARE HIRING! WE ARE HIRING!
[email protected]
DISCLAIMERS DISCLAIMERS No code examples :( Keep focus on the
theory Don't get it to hard
WHY FRONT-END WHY FRONT-END PERSPECTIVE? PERSPECTIVE? Common problems Same responsibilities
None
None
THE BAD RAILS THE BAD RAILS Built on top of
MVC Changes affects other parts of the app Top level structure screams the web framework We don't know what it does
"MVC is a delivery design pattern." - Uncle Bob
WHAT IS ARCHITECTURE WHAT IS ARCHITECTURE ANYWAY?! ANYWAY?! Independent of
technology/framework Makes software easier to change and test
Domain layer Application layer Infrastructure layer Input layer
DOMAIN LAYER DOMAIN LAYER Entities and business Rules Used by
the application layer to de ne use cases Examples: User, Article
APPLICATION LAYER APPLICATION LAYER Use cases and actual behavior Interacts
with Domain units Adapts the Infrastructure Layer Examples: CreateUser, CreateArticle
INFRASTRUCTURE LAYER INFRASTRUCTURE LAYER Interacts with the external world of
the application The lowest of them Databases, email services, external APIs Examples: UserRepository, MailChimpService, ArticlesService
INPUT LAYER INPUT LAYER The entry point Should only receives
user input Returns a response to the user Controllers, CLIs, WebSockets, GUIs Examples: UsersController, ArticlesController
SUMMARIZING SUMMARIZING Keep it simple You don't need to use
everything Find what works better for and your business Make it fun
ADDITIONAL ADDITIONAL INFORMATION INFORMATION The Miners - Scalable Frontend #1
Uncle Bob - Architecture the Lost Years
THANKS! THANKS! @iagodahlem iagodahlem.com