代码改变世界

一个小模型的讨论

2008-09-18 13:53 by 我的熊, 1979 阅读, 0 推荐, 收藏, 编辑
摘要:罪魁祸首: 偷换概念 再次看看需求:" 顾客可以在不登录的情况下下单,只有在结算时才需要指定该订单的顾客".这里的”下单”到底做如何解释?根据前面的分析中可以提取这个需求的两个动作: “下单-->支付”.其实真正的购物流程是: “挑选商品,并放入购物车 -->下单 -->支付”.正因为我们没有整个流程放一起考虑,造成需求理解的不到位.导致代码不合理. 所以这个需求真正的表达是:"顾客可以在没有登陆的情况下挑选商品并放入购物车,最后要结算时,必须登陆后才能结算”. 现在再来看之前的分析.是完全合理的.原来客户说的”下单”其实是”放入购物车”的意思,现在这个问题很好解决, 购物车里的东西只要谁登陆谁就可以去结算. 所以”实现一”是合理的. 总结: 1,一般我们领域建模都是抓出聚合关系,也就是更紧密的关联. 2,把类的关系转化代码时,必须符合类的静态契约. 3, 客户提的需求并不一定都是合理的,有时候他提出来你软件要怎么怎么做,但实际需求说到底是为了解决业务问题,要正确地分析客户的需求,提取实质业务需求, 4, 记住”OO就是做符合常理的事情”。 阅读全文

Domain-Driven Design

2008-06-26 13:21 by 我的熊, 2086 阅读, 0 推荐, 收藏, 编辑
摘要:刚接触DDD,有种相见恨晚的感觉.如果用它来组织分层系统,最终的写出来的代码,就像看文章一样, 流畅,自然,一看就明白,当然要真正的高手才能做到.一句话:真正做到了OO. Domain-Driven Design ,在.net 环境讨论的人不多, 其实有几个老外的.net博客里提到过,只是这样一种编程思路与现在大家习惯的分层架构不入调.这里拿老外的一篇文章做简要的. 这是Petshop4.0的一个模型图,也是我们常用的编程手段. 阅读全文