悲剧的JSP细粒度重用

刚刚来到成都的一家外包公司工作,第一次做外包,主要是自己想锻炼一下外语了。我外语真的很烂,不过还是找到了一家美国公司。他们在用一个商业框架做电子商务的网站开发,框架是ATG,就不多介绍了,不觉得比开源框架强 - -;

 

我开始进入项目组,参与一个电子商务网站的开发,工作是很简单的把JSP改一下,改成客户要求的HTML样式。我开始认为这是一个简单的不能再简单的事情了。

但是,我错了,JSP页面里面居然包含了无数的 if 判断,并且无数的include标签,所有东西都被写成小块,1个页面可能包括了3个大块a,b,c,然后每一个大块里边又深层嵌套了几个小块,这样如果你要把a大块里层的一个东西移动到b大块简直就是一个悲剧,你不能简单的修改那一块逻辑,因为这些jsp是被其他页面重用的,你的修改可能导致别的页面不可工作了,你必须先传参数一层一层传到你要修改的那个展示区域,然后通过一个if判断隐藏,然后再b大块里边展示。

 

本来很简单的事情却很费力,我终于深刻体会到“越差的软件越复杂,开发维护成本越高”这句话的含义。

这篇文章很容易就会被写成发泄不满的文章,我必须克制我自己抱怨的冲动。那么下边来说说我对jsp粒度的想法,希望能与大家交流,讨论。

 

jsp作为展示层,我觉得其可重用的判断标准应该为它是否是一个完整的显示组件,比如导航,它是一个完整的显示组件,它不和其他组件耦合,因此它是可以完整重用,应该被include到一个jsp页面中。

而一些细粒度的东西,具体我不太好举例,但是如果你发现你要在构造页面的数据中带入一些需要include的jsp url,css或者很多的if/else时,你就必须考虑一下,是否是把两个本来应该分开的页面写成了一个页面。或者当你修改页面的时候你发现自己必须修改好几个jsp,你也必须注意,是不是jsp的粒度出现了问题。

 

我们当然希望所有的jsp都没有冗余(修改发生时只修改一个地方)。但如果做到这一点,页面肯定非常复杂,反而带来更大的维护成本,特别是项目组有人离开了,加入新人的时候,一个jsp里边嵌套了很多层的jsp肯定是一件非常头痛的事情。

 

jsp更应该负责的是展示数据的逻辑而不是判断数据选择展示逻辑的工作,这样的工作更应该交给控制层去做。

 

 

希望灾难早一天停止.............................

 

 

你可能感兴趣的:(工作,框架,jsp,css,电子商务)