我知道我知道,Model 2代表的开发搞起来总是感觉那么费事儿,无论经典事儿妈Struts,天才的作业WebWork,还是组件组建的Tapestry,再加上EJB大叔或者Hibernate、JDO,我为什么必须遵守这些婆婆妈妈的框架定的那套routine?为什么搞一大堆xml或者其他什么东西,才能请得动这些大仙们为我的webapp显一显灵,即使我的webapp简单得让人不好意思拿出来?
为什么?说得铜臭一些,为了降低维护成本。是,您水平很高,从js、jsp、Action到业务逻辑、持久层大小通吃,但这并不是规范的过程,因为没有任何团队协作在里面,在这种环境下大可把什么Model都忘了,咱一个jsp甚至一个servlet全搞定。为什么要分层开发?废话,不把jsp提出来,美工怎么设计?不把Action提出来,页面流、控制流所体现的用例怎么才能成真?不把业务逻辑分离出来…难道做这么个webapp是为了拿来看的?分层开发不是老一辈们总结出来为了被人们当作屁话的,我们都有体会,一个框架、库之类的东西,分层越细致,定制越方便,用起来也就更灵活,当然这都是在分层没有细到让人想砸键盘扔显示器的前提下,相比之下定制每一层的工作量趋于不变,而且定制一次以后很可能不需要再次定制——是,确实,写Java代码照样可以完成定制的任务,不过同样都是一套套的routine,我不觉得写Java类就比写xml、properties文件高明多少,至少,Java类改动了还得麻烦您编译呢。
那些都是公司的事,对,我们打工的也懒得理,现在我就想快速完成任务,难道这样的想法错了么?没错,但是正如一个前辈同事说的,工作永远是做不完的。更多的任务不在最初的开发甚至原型开发阶段,而是在维护,对,又说到了维护。维护不是说不停地patch,也包括应付后期更多的需求更多的变更,而且维护的工作很可能不是由大牛您完成的,所以,不管分层然后敲出来那样好像泞成一锅糨糊似的代码…至少我见过的接手其他人工作的人们没有一个赞叹其前人的代码的优良的,鸡蛋挑骨头是人的天性。但是,HOWEVER,当然也不能因此就破罐破摔:乱就乱呗,反正怎么着也没人说好。老一代的程序员也说过,代码是程序员之间交流的语言,工整、注释得当的代码是作者对阅读其代码的人的尊重。是啊,代码都成了语言了,乱七八糟的代码不就跟乱七八糟的话一样,相当于骂人么?而且,就算这段代码一直由您维护,如果您一年没见它的面儿了,您还保证得了您看得懂自己原先天马行空不拘一格的作品么?拿Perl举个例子,这是以混乱出名的语言,很多人对其以前写的perl script都已经是很头大了,看不懂,这咋整,自己都看不明白了…
所以,任何时候也不要沾沾自喜于别人看不懂自己的代码,也许人家骂骂咧咧之余已经不想去看了…
自勉。