There are two articles that have caught my attention recently:
The first one deals with Decoupling, which is a topic that has exercised my brain for quite a long time. I'm very ambivalent about this as I incline towards two strictly opposite approaches: smart pointers and object ids, they both have strong pros and cons. The article, however, brings another possibility that I haven't taken into consideration so far. Instead of returning shared_ptrs, one can return weak_ptrs and manage corresponding shared_ptrs internally, which enables the framework to explicitly control object's life-time. I quite like this idea! It's worth mentioning that the article was published on #AltDevBlogADay, which is a lively platform full of interesting articles related to game development.
(Actually, my current hobby project uses a hybrid system: The internal objects are explicitly managed by the framework, however, they are indirectly manipulated by proxy objects that exist on the client side, referenced by shared_ptrs. The framework is responsible for keeping internal objects in sync with the proxies, incl. object creation and destruction, so even the life-time is managed indirectly. In other words, the internal data structures dynamically adapts to the client state.)
The second article introduces the idea of Tradable Quality Hypothesis. It nicely sums up my frustration about typical commercial development and the values that influences the decision making process. Highly recommended reading!
FipS