Dependency Injection, why is it awesome and why should I care?

Dependency Injection is a very common pattern used in modern web development. It's not specific to Java or ColdFusion or JavaScript...but it's equally awesome in all of those! And in other languages too! We'll look at some of the problems that Dependency Injection helps to solve; we'll look at some related concepts such as "aspect oriented programming" (AOP), and inversion of control (IOC); and show you how adding a DI framework to your app might be just the magic your app needs!

Target Audience: People that want to know what Dependency Injection is and when/why I should use it. You've heard other terms like "inversion of control" and "aspect oriented programming" thrown around and aren't sure what they mean. Maybe you're a FW/1 user and want to know why everyone is excited that the new version of FW/1 will include DI/1. Or you just want to know what ColdSpring does -- we'll cover that too. (This talk will not be ColdFusion specific. Java and JavaScript programmers will equally benefit from the content.)

Assumed Knowledge: For this talk we'll assume you are pretty familiar with classes and objects (in whatever language you prefer...JavaScript, ColdFusion, etc). You've built a variety of classes/objects in some of your projects, and are familiar with OO concepts such as inheritance and composition.

Main Points:

  • What is Dependency Injection?
  • When / why would I use this in my projects?
  • Intro to Aspect-Oriented Programming (or AOP).
  • Intro to Inversion of Control (IOC).
  • What is "Bean Management"?
  • Code samples in a variety of languages showing when it might be useful to add some DI magic into your application.

[Slide Deck and Code Samples]