It is pretty awesome to have yet another author take on the task of writing about ember. It seems like some comments above have a negative tone, I hope they seen as constructive criticism.
To help current and future authors, I would like to suggest something. As technical topics and especially ember are a pretty quick moving target which makes them hard write about. The best bet to ensure proper alignment with current and future idioms, goals and best practice one should seriously consider consulting a member or two of the ember core team. We are all extremely busy, but we would love to see literature being produce be as helpful and successful as possible.
Let me quickly clarify some points on the container.
The container itself is to be considered an implementation detail. The public API for the IoC & DI system as follows:
Soon we will add.
Something we should add:
Everything beyond this should be considered private and available as an implementation detail or debugging aid.
Note: The Debugging aid story of
App.__container__ I believe is an important one, but the messaging must be clear that it may be a debugging aid only. That being said, recently the ember-extension added a wonderful container inspector pane which likely alleviates the need to consider touching
__container__ for an ever increasing number of user-cases.
In some cases, our public API may still be in-sufficient and as such a user may want to experiment with an idea. At this point in time, the user can reach into private api’s to accomplish the task they need. Doing so must be done with the knowledge that this API’s are not covered by semver, and may change at any time.
As ember continues to evolve we will continue to improve, solidify and expand the public API covered by our semver guarantee.