-
Notifications
You must be signed in to change notification settings - Fork 2
Home
cavalle edited this page Feb 24, 2013
·
37 revisions
- Rails vs OOP – #rails-vs-oop
- SOLID Principles – #solid #srp
- Data vs Responsibility – #data-centric #responsibility-centric
- Ceremony vs Essence – #ceremony-vs-essence
- The Cost of Indirection – #indirection
- Cohesion – #cohesion
- Testability – #testability
- Rails is a Detail – #rais-is-a-detail
- External Interfaces
- Responsibility Objects
- Query Objects
- Form Objects
- Policy Objects
- Role Objects
- Use-Case Objects
- Service Layer
- Concerns
- DCI
- Not–so–skinny Controllers
- PORO Domain Objects
- Presenter Objects
- Value Objects
- Observers
- Callbacks
- Virtual Attributes
- The Controller
- Controllers only allowed to call services? => Service Layer
- Other domain objects (composition, dependency)
-
Entities
- Static / Stateful
- Real world concept / Problem realm
- e.g. User, Company, Project
-
Roles
- Dynamic / Stateless
- Real world concept / Problem realm
- e.g. Commenter, SourceAccount
-
Behaviour
- Dynamic / Stateless
- Abstract concept / Solution realm
- e.g. Query, Policy, Form, Command, UseCase, Logger, Publisher
- Decoration (e.g. Presenters)
- Composition (e.g. has_one Objects, PORO models)
- Dependency (e.g. Services)
- Extension (dynamic or static) (e.g. DCI Roles or Concerns)