@robsiera I didn't see the video (just try to cut through the intro, but the guy is really slow to get started). I'd say with statements like this:
By using Value Objects, the states in your system are reduced and therefore it reduces the complexity of your system.
I'd be surprised if there is anything of value in the talk. In general I have not been impressed with DDD, again, something that looks good on paper but they have no notion of state, just type/model. I'll try to watch it this week, I always curious about the DDD community but always disappointed each time I look. Type is easy, State is hard.
@robsiera People always aim for a "poor" conceptual model. Here in the paper they develop the idea of FRP (function relational programming) and for them a piece of code like this is not really shocking (p25):
procedure int doCalculation(int y)
// ’subsidaryCalcCache’ is declared and initialized
// elsewhere in the code
if (subsidaryCalcCache.contains(y) == false) {
subsidaryCalcCache.y := slowSubsidaryCalculation(y)
}
return 3 * (4 + subsidaryCalcCache.y)
Using a pure function is not going to help much, when mutations are required, well, they need to happen, it's not because you use a store or "declarative effects" that magically the code will be better, au contraire!
I too was impressed at first with DDD and FRP. Data Context Interaction (DCI) also sounded interesting, but it would require additional language features to support it well. http://www.artima.com/articles/dci_vision.html
@robsiera If you want to know more about FRP, I found this video nice
https://www.youtube.com/watch?v=Agu6jipKfYw