Code Just in Time, Not Just in Case
Talk Recovering from Enterprise from Jamis Buck at Ruby Conf 2008. The tagline was about Dependency Injection, but the essence of the talk is that you should not transfer your knowledge directly from one programming language (e.g., Java) to another (e.g., Ruby). You are much better off if you learn the concrete idioms of each language and use them to solve your problems.
Lessons learned; a story-driven talk.
Small APIs
- Easier to describe, document, and support.
- Easier for people to learn.
- Easier for you to test.
Expose only what you need when you need it.
The "What If" Trap
Separation of concerns is a good thing, but if you take it to the extreme, you get component soup.
Component soup blurs the line between private and public APIs.
Dependency injection works when you use it with large components at the application level, but not at the small, library level.
