我们再次处于十字路口。
我想尝试至少在接下来的3年内实施一种简单,经过验证的方法来构建我的应用程序。 每次我要开始一个项目时,感觉这是第一次,因为这些天创建网站的方式非常多。
我有这个示例代码,我从这个包中购买了我购买的调用Design Pattern Framework 4 C#。在他们拥有的多个项目中,有一个名为“行动中的设计模式”。您可以从此处https://skydrive.live.com/redir?resid=B853B0DB724C30E5!16735&authkey=!AOeHSAWa_P4vzzU
下载我的问题,在你看一下这个解决方案后,有什么好的,坏的,你会保留什么,你会删除什么,什么是不必要的等等?关于这个例子?
我知道他们正在尝试展示多个客户端以及多个DAO。但总的来说,这个架构是否会被视为“模板”? 感谢。
答案 0 :(得分:4)
系统架构很像构建架构:
选择体系结构有很多因素:
所有这一切,如果你能想出一个适合你未来3年将要拥有的每个项目的全能框架,我会感到惊讶。将MVC,WFC,TDD,DDD等视为工具,您可以使用它来构建 一个满足需求的系统那种情况。
我的观点是:只要符合特定情况,就可以使用你能理解的任何概念(如有必要,可以教别人)。
答案 1 :(得分:2)
我的问题,在您看一下这个解决方案之后,有什么好的,坏的, 你会保留什么,你会删除什么,什么是不必要的等等 关于这个例子?
快速浏览一下,这就是我要说的:
关于您问题的DDD标记,这显然不是域驱动的体系结构。除了一些简单的验证规则之外,业务对象看起来anemic,并且不存在DDD架构的许多基本构建块(聚合,值对象等)
除非我遗漏了一些内容,否则大多数业务操作都是CRUD操作,而这些操作并不能代表真实的企业应用程序。
有一个胖胖的Service层,它有一个胖的ActionService类,它基本上似乎可以处理应用程序的所有用例。好消息是,它以不可知的方式处理用例(据我所知,它操作的请求和响应对象是独立的传递机制)。因为课程包含太多责任(SRP),所以缺乏欲望是肥胖的。
在客户端使用存储库和服务器端的DAO看起来很奇怪,但为什么不呢。
如果它真的是测试驱动的,为什么不包括所有单元测试而不只是一个样本呢?
除此之外,这些图层设计得很好,并且正如多个表示层所示,将一个前端替换为另一个前端或另一个持久性存储应该不难。
答案 2 :(得分:0)
最重要的是确保使用可重构的模式。如果您正在使用TDD并发现可以注入依赖项,假货等,那么这将简化重构过程。三年是使用任何给定模式的很长时间。一位朋友说,如果你不看6个月前的代码并认为它很糟糕,那么你可能不够学习:)