你的位置:首页 > 软件开发 > ASP.net > 领域初探

领域初探

发布时间:2015-04-07 11:00:26
DDD(Domain Driven Design 领域驱动设计)本质上是维护和管理软件复杂性的一种方法,设计作为软件工程领域不可或缺的一个环节,其本身是重要的,但并不是全部,要想做出真正能用的产品,关于工程领域的其他要素依然是不可或缺的。在领域设计之初,我想说的是"软件作为一个产 ...

DDD(Domain Driven Design 领域驱动设计)本质上是维护和管理软件复杂性的一种方法,设计作为软件工程领域不可或缺的一个环节,其本身是重要的,但并不是全部,要想做出真正能用的产品,关于工程领域的其他要素依然是不可或缺的。在领域设计之初,我想说的是"软件作为一个产品,其优雅来源于简约的设计;软件实现的过程本身是一个工程过程,它的的完整依赖于工程理论及工艺流程的完整。与其他全部设计方式一样,DDD仅仅是一种可行的手段,软件及其工程的本质,依然是对软件自身概念完整性的把握以及在流程中每一个环节上的一丝不苟。在这里谨慎的提醒那些对于软件及工程的某些侧面倍加推崇的人们,在软件开发领域从没出现过万能的良药,即使某些技术或领域曾经倍受推崇,甚至短暂的大放异彩,但到目前为止,还没有任何单一的手段能够彻底的解决软件开发领域的根本问题,这是由软件的本质与人的素质之间的根本矛盾决定的,多年前,我看到人月神话中关于这一问题的探究,一直在反复验证,至今依然没有发现反面的案例,姑且将此作为软件工程领域的第一定律,写在开篇之初,用以时时自省。领域是在计算世界中基于自然属性的一种提炼和抽象,是现实世界的另一种表达方式。领域模型从本质上是现实世界在计算领域的完整映射而不是抽象简化的。领域应当是完整的。在计算世界所抽象出来的领域中,由于受到物理条件的约束,我们不应当在有限的计算资源中,去过多关注那些目前的计算资源所无法承受的领域。因此,我们从工程的角度应当更多的关注可计算的领域子集以及这些子集间的交互。也就是说,受计算资源的限制,我们应当控制每个领域自身的计算规模,并对必要的领域间交互进行仔细的规划,避免开放式的领域和无限制交互充斥在系统中。每一个领域模型的设计都必须遵循领域自身的约束。关于领域的交互与边界。2. 关于软件实现中的一些独特的约束。软件作为一种独特的形式,其自身有其独特的约束,比如耦合性的约束,为了保持软件各个领域自身的独立性和领域间交互的简洁,我们通常要避免多维度的领域间对等交互,这与现实世界在本质上是一致的,但在软件作为工程的组织形式上,需要一些来自架构上的技巧。这应当是属于程序员相对于其他领域的工程师所独有的荣耀。同样,在这里我们需要前人留下的各种优异的模式,团队成员集体的智慧和来自领域专家经验。关于领域模型的实现的一些思路。2. 领域设计第二原则,环绕山间的是那无尽的碧水。基于分层隔离的设计思路,领域不应当对领域的外围进行干涉,所以我们需要一弯碧水,作为领域间的纽带,交织在不同的领域之间。山间的景色因地制宜,因时而不同,水涨潮落,山间景色自应不同,横亘成岭,侧目成峰,仅仅是视角和心境,便带来诸般的变化,水有回环婉转,山有岁岁枯荣,一切都在变化着,包括我们游山戏水的心境。在变化中拥抱变化,跟随领域的自然去随心而动,这是领域交互的动力。3. 一切离不开的是无时不在的体验。领域随性而动,领域间的交互也因时,因地,因人,因物而异。懵懂的青年因偶然的邂逅,就出现了剪不断理还乱的胶着,他们的生活因此而不断的擦出各种火花;久恋的女友终于熬成了孩子她妈,于是日子里就多了几个本本,少了几张银行卡。终于有一天,往日的情侣终于散尽了曾经的热情,眷恋不再,面对新的诱惑,他和她都难再纠缠,于是就有了称为分手的仪式,也有了两份紧密相连再分彼此,系统的设计,应当体现属于系统自然的亲近远疏。What you do not understand, you do not possess.

原标题:领域初探

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录