作者回复: 大对象本身就是问题,最好尽量把大对象拆成若干小对象。
作者回复: 回答得很好。
作者回复: 确实有这个问题。会在第三迭代的CQRS解决。
作者回复: 差不多。第二点主要是性能和方便性的权衡。
作者回复: 第一段讲到不是判断逻辑放在领域服务还是应用层,而是放在领域服务还是领域对象。
作者回复: 1 主要权衡的是另一个层面的空值问题。数据库里有整型空字段的话,正好可以和程序里包装类型的null对应。如果用基本类型,就要用一个特殊值代表空值。这么做的代价是略微影响性能。这只是我的习惯,你也可以不这么做。 2 我的程序里有用==吗?麻烦指出是哪一处,可能我疏忽了。
作者回复: 1. 没有特殊原因,是个笔误,谢谢捉虫,我回头改过来 :) 2. 这一步先在内存操作,后面课程会进一步把内存中的数据保存到数据库。
作者回复: 这里没有把skill和experience建模为值对象,因为允许修改。另一方面,值对象也是可以而且应该有业务规则,等下一部分详细讲值对象的时候,再细聊。
作者回复: 关于您的第一个问题,答案是CQRS,将在第三个迭代讨论。 关于您的第二个问题,在后面的课程里有一个方法对差异进行持久化,确实会增加些工作量。在性能不太敏感的场景,全部持久化也可以考虑。
作者回复: 是这个道理。你这个“黑科技”的说法有意思 :)