分层对我们开发到底有什么作用呢?

        我在日常的工作中主要是使用.net的,最初接触分层式开发还是通过一个struts架构的Java项目,后来也看过很多很多关于分层式开发的文章,很多分层架构的书和文章(包括:MVC,四层架构等)都提到了一些分层式开发的优点,如:代码易于理解,方便团队合作开发。但是我毕业到现在的4年中大小项目也经历的近10个,但是很多时候我觉得分层式架构的优点在进行开发的时候都变成缺点了。


         下面我来说说为什么,大家看有没有道理。首先代码易于理解,这个没错。但是后者其实有的时候并没有体现出来,因为现在的项目中,每个程序员都是按照功能分配的。比如说:领导给我一个当前项目中的功能A,那我的开发任务就是功能A的页面前台、业务逻辑、数据库、定义实体等,外此我求要使用sql语句、存储过程、javascript、html、asp.net、C#语言、wcf等多项技术。其实我觉得分层式架构反而给我的开发增加了难度,因为为了开发功能A我必须同时掌握N项技术(当然不是不能,但是每样都是杂而不精的),在完成功能A后,我敢说:“嗯,我每种技术都会,但都不精通”。唉,这就是现在的软件开发方式。


         在我的理解中分层式开发的优点是能够将每个开发人员的不同技能长项加以应用,而不督促每个人为了完成功能而需要去掌握更多的技术。我一直在纠结这个问题,就算在软件设计时,架构分得再明确在清晰,开发时是程序人员分配总是让我们无可奈何,我感觉很多时候架构设计的问题不在于架构设计本身,而在于任务分配者,这才是软件开发中架构问题的真正短板呀。