其实CRUD和domain是两个概念,CRUD是domain持久化概念,怎么理解呢?就像人和睡觉。 人去睡觉就是CRUD,但是睡觉不是人的唯一活动,人更多活动是业务工作。
再打个比喻:打开记事本编辑文本,离开后会保存,保存这个行为就类似Domain的CRUD。编辑文本是Domain,这是我们主要业务重点和核心。
为什么我们会发现:90% 的系统的业务逻辑,都包含 crud?用上面记事本概念就好理解,因为你每编辑文本的一个字就保存一次(注意文本字相当于Domain,保存一次就是CRUD操作),所以一篇文章编辑下来,我们看到的是:90%都是保存动作(也就是CRUD)。
如何改变这种状况,就是为Domain开辟一个新的活动空间:内存缓存。
以前Domain的活动空间缺省就是数据库或硬盘,当初是防止丢失重启资料没有了,这个概念在强大服务器端根本无需担心,7x24集群云计算,几乎没有当机可能,你就要抛弃不断保存到硬盘上持久化的老毛病。
这样,Domain Model就有两个活动空间:内存缓存和数据库硬盘。就象人工作上班空间和睡觉空间不一样。
现在,我们程序员通常要手工照顾内存缓存到数据库硬盘实现,因为内存总是有限的,总是要通过代码CRUD来实现数据库持久化,虽然频率不要那么频繁,最终写到硬盘上让人放心才是真正永久保存。
这就有两个思路:在关机维护时花几个小时一次性写数据库关机;有一个产品定时的自动为我们将内存缓存中数据保存到数据库硬盘,无需程序员手工CRUD指明。现在云计算开源产品“兵马俑”已经能够实现这点。