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 one (e.g. Ruby). You are much better of if you learn the concrete idioms of a programming language and use them to solve your problems.

lessons learned, story

small Apis

  • easier to describe, document, support
  • easier to learn for people to learn
  • easier for you to test

Expose what you need when you need it.

what if trap

seperation of concerns is a good thing but if you go to the extreme you get component soup.

component soup fuzzes the line between private and public api.

depenency injection works if you use it with big blocks at application level, but not at small, library level