代码工匠

Walking The Long Road.

分层开发论

做Java开发的都喜欢分层的思想,似乎层次是越多越好。虽然之间我并不喜欢层次太多,但是也没有太多的理由让我去厌恶它。但是最近在做一些开发,刚好用了两种极端的方式来完成。

最近在跟同事一起开发项目。两个类似的项目,大致都是一个中间层,从数据库载入一些数据,然后调用另外一个服务。从复杂程度上来说,差距并不大。前一个项目因为之前是他在做这块业务,所以由他主导,结果一开始就分成多层结构,从DAL,DOMAIN,BIZ一层一层往上写起,中间大概有5个对象来完成层级的隔离,转来转去。结果结对编程一个星期,终于弄出雏形。

后来我写另外一个项目,因为开发时间紧,所以理清了业务流程之后,划分为三个阶段,直接分为三个模块,模块内部不分层,从外到内开始写,结果半天就完成了。

到底是分层还是不分层好?分层的意思是隔离变化,核心业务与外部调用分开,降低系统与外部的耦合。但是一般来说,互联网应用内部逻辑相对简单,大部分时间都是在干一些数据相互转换的事情,这种事情你要说跟外部不耦合基本不可能。一般来说,考虑到成本问题,除非需求和数据发生变化,否则外部API变动的可能性极小。这样子耦合的成本并没有那么大。

相反,我觉得系统内部的简单性更加重要。越少开发效率越高,修改越容易,也越不容易出错,分层结构必定是增加了复杂度,但是收获却相对较少。

Add a comment