Architecting for the lazy
Preston Sego
NullVoxPopuli
Architecting for the lazy
The story of every app ever
The story of every app ever
"The Plan"
> Customer Demands
> Investor Demands
> Marketing / Sales shenanigans
Inevitable Scope Creep and Technical Debt
Inline Javascript
Inline Styles
Duplicate Code
Overly coupled code
Spaghetti Code
Copy Paste
is my app too big and hard to maintain?
Yes
Discoverability is low
Why does this happen?
Rails (partially)
Fear of changing the defaults
Options
"Services"
Service is semantically incorrect
♪
"Services"
Trailblazer
Rewrite :-(
Intermediary Solution
Drawers
app/�├── channels/�├── models/�│ ├── data/�│ │ ├── post.rb�│ │ └── comment.rb�│ └── graph_data.rb�├── jobs/�├── mailers/�│ └── notification_mailer.rb�└── resources/� ├── posts/� │ ├── forms/� │ │ └── new_post_form.rb� │ ├── controller.rb # or posts_controller.rb� │ ├── operations.rb # or post_operations.rb� │ ├── policy.rb # or post_policy.rb� │ └── serializer.rb # or post_serializer.rb� └── comments/� ├── controller.rb� ├── serializer.rb� └── views/� ├── index.html.erb� └── create.html.erb
Similar Ideas
Questions?