Why DI? A list of important design pattern articles

I would enlist here the list of articles which explains why DI is important in designing software today satisfying a few goals like

  • Code management
  • System learning curve / Ambiguity Management
  • API Dependency management
  • Testability
  • Monitoring
  • Application Life Cycle

API dependency management is hard, really hard. It’s harder than library dependency management, it’s harder than deployment dependency management, it’s harder than any kind of dependency management in software engineering. This is because it’s very easy to create API’s which hides their dependencies by natural habit, and this practice is pervasive, even in the platforms I designed before. I am lucky to run into some great articles on it and I would recommend every developer should have some time to read them.

1. Learn about APIs’ being “pathological liars”

http://misko.hevery.com/2008/08/17/singletons-are-pathological-liars/

It really explains how we make EVIL APIs everyday. Though it’s written with Singletons, the same problems defined exists outside Singletons, too. What you need to know, must not be hidden! What you need to know must be created as a injectable and fungible object.

2. DI can be a soul partner for your unit testing

The more we are progressing, the more unit test are becoming important. If you are concerned about a good code coverage, you probably already know why DI is too important.

http://www.javaranch.com/journal/200709/dependency-injection-unit-testing.html

 

to be coninuted….

//3. DI can give important insights of a running application.

//4. Managing and monitoring global objects

//5. Proper object construction

//6. Systematic Application Startup & Shutdown

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s