I just touch the concept of dependency injection,
and then I think the CommonJs and AMD are kind of dependency injection.
Because when define a module under either standard, you have to load its dependent module first.
The module you defined, should expose abstract API only, less detail possible
Am I right? Does I miss something?