small modules → Uses dependency injection → Does not keep state → Simple tests (thanks to DI) → Does not use too much "patterns" → Does not use too much metaprogramming → Mutable code is isolated → Decisions are documented
models → Has little code in controllers → Isolated database access → Has business logic in modules → Use React as a view → RSpec tests → Capybara+Chrome