透过NpetShop 看Web项目开发中的分工合作

 以前做项目基本上是从数据库设计到web页面的制作都是一个人来做,甚至做着做着会觉得好乱的感觉.
后来是几个人一起做,开发的模式是一个人负责一部分项目的一部分,这里的分工是纵向的,即一个人要完成这一个部分内从底层一直到高层的所有开发工作.
于是,一直都在说面向接口开发,多使用接口开发 仿佛成了我们的负担,我们不知道接口有什么用,觉得累赘.

这两天看NpetShop , 看到 Persistence Service 层定义了好多个接口,这几天也一直在看设计模式,我丝毫感觉不到他定义这些接口对程序日后的维护等工作有任何的帮助,我不知道你是不是有和我同样的感觉.
但是当我们设想一下 一个团队 共同去制造生产一台电脑, 主板应该说是一个整体的框架 可是按照我们以前的开发模式就是 比如我负责生产内存 我要先把主板上面的内存插槽先生产出来,然后我再去生产内存,生产cpu也一样,必须先把主板上面的cpu插槽生产出来后才能生产cpu 因为我内存 和cpu 都要适应主板上面的插槽才行也就是我的内存和cpu都依赖与我的主板上面的插槽 所以生产的顺序必须是先主板插槽 后插槽衍生物(cpu 内存等)  最后把大家分别做的插槽 集合到一起 组成一个完整的主板  我不知道这样的比喻是不是恰当.我觉的这样开发模式应该是纵向

这样的开发模式不用我说肯定不是一个好的合作开发模式 那么如何转变这样的模式给我们代理的困境呢

于是接口就顺理成章的证明了他的存在不是多余的

我们再来说说生产电脑,在生产电脑前 我们一起分析 我们的主板应该有哪些插槽,这些插槽应该多宽 ,多长,阵脚 等等,然后我们一起去制定一个协议,然后大家都遵守这个协议,一个人专门负责生产主板,他生产的主板一定是符合这个协议的. 然后另外的人可以同时去生产cpu  和内存,生产cpu和内存不在依赖主板的插槽应该是怎么样的,因为他们知道 主板就是安装这个协议来的,所以只要按照这个协议就一定可以在主板上面使用  这似乎符合我们的一句古训叫做 "述业又专攻"

那么来想想我们的开发模式吧
系统架构师通过对系统的分析 制定一些列的接口(协议),或者是一个团队共同讨论
然后大家根据这个接口去实现自己应该实现的部分,接口中制定了我们需要用到的方法,我们就可以直接通过接口调用这些方法,使用接口的人不用去关心接口内的方法是否已经实现了 于是一个纵向的开发模式转变成了一个横向的模式,是接口给我们带来了转变


你可以去下载一个Npetshop项目看看是不是我说的这个道理 呵呵
这里我们还把 npetshop 比喻成电脑

domain 相当于我们存储在光盘里面的内容

persistence 就相当于我们的光驱

service 是不是可以理解成我们的操作系统的驱动程序呢

Presentation 我立即是我们的播放器软件

web 就是我们最终看到的画面

NpetShop 的架构图如下:

       一、拥有一系列贯穿整个系统的领域模型

       二、持久层完成领域对象的持久化操作,直接和数据库进行交互(通过IBatisnet进行映射)

       三、服务层对持久层进行封装,进行领域对象的操作

       四、表现层

       五、UI界面






呵呵,就记录到这里了 以上内容讨论后为了加深印象写成,不知道会不会让人觉得乱,希望对自己的立即有帮助
有什么不妥的地方,欢迎指正

posted @ 2008-04-23 10:45  雨中漫步的太阳  阅读(1055)  评论(0编辑  收藏  举报