2011年04月09日 22:42 "@
flyzb"的内容
DDD注重神,而SOA注重行,两者不矛盾,在我看来是完全统一的。不过传统的SOA比较粗粒度,而我更喜欢细粒度的REST。 ...
本质上也属于动静结合:
动:SOA服务 事件 REST 语言方法/函数 SQL
静:数据表中数据 内存中数据(类实体) 其他资源数据。
一个基本架构需要由动静结合,比如如果你发明一种语言,或一种框架,或一种软件生产方式,至少需要一个动一个静的方式。
当然,更多是多个动静结合,给人有些复杂,比如:
动组合:REST+服务+语言方法函数+SQL;再加静:数据表中数据 。
这么复杂是有原因的:将现实世界中实体切分为动的方法和静的数据,这种切割有时是很残忍的,静的数据用数据表数据表达,动的方法就只能用SQL语句,因为操作数据表数据只能用SQL语句,而SQL语句不能直接运行,必须用Java等语法函数来执行它,这就又多了一个动词。
如果我们反过来想想,不把实体残忍用动静切割,也不用过去的数据库,直接把现实世界中的对象作为类实体搬到内存中,是不是会简单些?比如:
REST + 内存中类实体 + 事件
REST用来实现外部联系,内存中类实体实现内部动静功能,比如实体内方法实现动功能,通过事件主动驱动外部,REST是被动接受外部。
数据表数据消灭了,SQL动词也就没有了。一切变得简单。
当然现在通用简单办法是:就只用数据库,比如只用REST+关系数据库,或只用REST+NoSQL数据库,也很简单。