存储是把数据放到硬盘上,那么我想问问如何得到这些数据呢(不是指取数据,而是数据的来源)?连数据如何得到还没有想好就想着储存,到底是谁避重就轻呢?
若果你把逻辑放到数据库,好吧,等待你的是昂贵的扩展与维护。我们脱离面向数据库,是为了更好地描述领域逻辑(或者说业务逻辑),不受具体技术干扰。
你想的是如何保存数据,而我想的是,如何让客户快速得到准确的数据。记录数据?得出后用笔用纸记下来也行,保存到数据库只是其中一种较好的方式而已,你选择他,并不代表他是本质。
存储不重要么?不是,而是他是额外的需要,他保存的是我们想要的信息。当我们只需要体验逻辑,根本不需要什么信息时。那么存储就显得不是那么重要了,如某领域的科学计数器。内存是数据活动的空间,想想你word的操作,每打一个字就写一次硬盘,你每打开一次菜单,都读取硬盘上的菜单信息。或者说到游戏上,攻击时把手举到头上的某一时刻,1WHP的BOSS打剩下1血,有哪个游戏会保存这些状态呢?游戏最多就保存了攻击前后的两个状态,BOSS战胜利或者失败(有的连这些都不需要保存)。明显的,存储是为了保存受关注的离散的状态,而不是动作过程和不受关注的状态。
模式可以说是一种便于扩展的描述,目的是实现组件化。例如观察者模式,增加观察者组件,和增加ifelse哪个更容易,更易懂。
答案:还不是为了有照一日呈现出来。
没有业务,不“呈现”,管你数据保存一万年,又有个屁用。
就好比化石不被发现,不被考古学家研究,就一直在土里埋着,和普通石头有什么区别?
结论:“存储”的本质是“持久化”的手段,作用是为“以时间为x变量的不同呈现需求”所用。
“呈现”是最终目的,直接为人类服务。
[该贴被iammarine30于2011-06-02 13:51修改过]
没有业务,不“呈现”,管你数据保存一万年,又有个屁用。 ...
to iammarine30:
你可能误会LZ了,LZ意思是把核心放回数据库上,并不是不呈现的意思。“操作数据库数据”就体现了LZ的观点。基本上带有领域思维的,都会反对这一观点——数据库不是数据活动的地方。
不过,LZ也有离题之嫌。
[该贴被SpeedVan于2011-06-02 14:12修改过]
显然lz是主张“数据库设计”为中心。
我想说的是,存储归根结底是为了“呈现”,每一次的“存进去”,必然为了下一次的“取出来”。
敢问lz有生以来,是否做过“把根本不打算取出来的数据进行过存储”的工作。
如果没有,又何谈以“存储”为中心的设计。
[该贴被iammarine30于2011-06-02 14:23修改过]
软件的最终服务目标是需求,而不是服务与数据库,数据库本身也是为需求服务的。需求就是用例,流程图等等,这些来源于业务的实际操作。
所以说软件是现实的映射或者问题领域的映射,由此可见和数据库没有关系!数据库可以存在也可以不存在!
所以,楼主自己讲的“避重就轻”就是一个避重就轻的实例!
[该贴被pye于2011-06-03 13:39修改过]