Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1707167
  • 博文数量: 607
  • 博客积分: 10031
  • 博客等级: 上将
  • 技术积分: 6633
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-30 17:41
文章分类

全部博文(607)

文章存档

2011年(2)

2010年(15)

2009年(58)

2008年(172)

2007年(211)

2006年(149)

我的朋友

分类: 项目管理

2007-12-24 11:53:10




长期以来,web社区痴迷于框架式设计,对OOD淡忘许久了。
领域驱动设计,试图对企业级面向对象设计进行指导。

软件,本质上是一种被创建用于帮助我们解决生活中复杂问题的工具。
它只是一种方法,不具唯一性。而目的通常比较实际和真实。所以软件必须实际有用,否则就会偏离市场需求。
完成软件设计的方法很多,各有优劣。
瀑布方法是常用的一种传统方法,它的主要问题是层级之间反馈很少,业务人员得不到分析人员的反馈信息,分析人员也得不到开发人员的反馈信息。
另一个方法是敏捷方法(例如XP),它倡导简单和持续重构。但每个人对简单的理解会不同,持续的重构也可能导致代码更加难于理解或改变。它还试图解决“分析瘫痪”,担心过工程化,反对预先设计。但这可能导致设计深度不够。
DDD追求良好的设计和反馈。

软件开发通常给真实的业务问题提供解决方案,从一开始,我们就必须明白软件脱胎于领域,并跟领域密切相关。
软件由代码构成,但我们不要迷惑于代码,在它上面花费太多的时间,将软件看成简单的对象,特别是对于高价值高复杂度的软件。否则,它会给领域带来灾难和混乱。

没有丰富的领域知识就做不出复杂的领域软件。好的软件是领域专家和软件专家通力合作做出来的。
通过一种通用语言来捕捉领域模型。通常这种语言是面向对象的。
python语言简洁,可以考虑作为领域语言来使用。








阅读(1283) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~