Slide 67
Slide 67 text
- Ruby module pattern for inheritance (for chaining behavior in
a loosely coupled way, ie: ActiveRecord uses this pattern a lot when for
#save)
- Constructor injection (for providing defaults but allowing object to
be more easily testable)
- Boundaries (for creating a clear distinction between one part of the
application and another, ie: Api, Kernel, and Border)
- Splatting/flattening conditionals (to indicate a conditional,
branch of code, should not exist, investigate ways to remove it)
- Everything’s private until it’s public
- No class variables (they should be banished)
A few we use: