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
290
Architecting Rails Apps
Iago Dahlem Lorensini
December 10, 2018
Tweet
Share
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Producing Creativity
orderedlist
PRO
346
40k
RailsConf 2023
tenderlove
30
1.2k
How to Ace a Technical Interview
jacobian
278
23k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
860
Product Roadmaps are Hard
iamctodd
PRO
54
11k
The Cult of Friendly URLs
andyhume
79
6.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
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