`
solonote
  • 浏览: 88925 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

悲剧的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更应该负责的是展示数据的逻辑而不是判断数据选择展示逻辑的工作,这样的工作更应该交给控制层去做。

 

 

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

 

 

2
0
分享到:
评论

相关推荐

    基于Spring Security的细粒度权限管理系统设计源码

    这是一个基于Spring Security框架的细粒度权限管理系统,使用Java语言开发,同时包含JavaScript、CSS、HTML等多种编程语言。该项目共包含2447个文件,其中主要文件类型包括JavaScript、PNG图片、CSS、HTML、JAR包、...

    jsp中的代码重用技术

    jsp中的代码重用技术是一本pdf格式的书籍,你在学习过程中你能学到很多非常有用的东西

    jsp web程序jsp web程序jsp web程序jsp web程序jsp web程序jsp web程序jsp web程序jsp web程序jsp web程序

    jsp web程序jsp web程序jsp web程序jsp web程序jsp web程序jsp web程序jsp web程序jsp web程序 jsp web程序jsp web程序jsp web程序jsp web程序jsp web程序jsp web程序jsp web程序jsp web程序 jsp web程序jsp web程序...

    jsp模板 jsp模板 jsp模板jsp模板jsp模板

    jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp模板jsp...

    jsp培训jsp培训jsp培训jsp培训jsp培训

    jsp培训jsp培训jsp培训jsp培训jsp培训jsp培训jsp培训jsp培训jsp培训jsp培训jsp培训jsp培训jsp培训jsp培训jsp培训jsp培训

    用JSP创建可重用的图形背景

    有一个技术可以在Java Server Pages(JSP)中产生整齐、精细的直方图,它可以用来作为可重用的背景。为了达到可重用性的目的,你需要使得图形的尺寸可以调整,你还应该管理直方块以免它们越过图形区域的边界。然后,...

    jsp网站源码jsp网站源码

    jsp网站源码jsp网站源码jsp网站源码jsp网站源码jsp网站源码jsp网站源码jsp网站源码

    JSP网页模板JSP网页模板JSP网页模板

    JSP网页模板JSP网页模板JSP网页模板JSP网页模板JSP网页模板JSP网页模板JSP网页模板JSP网页模板JSP网页模板

    Jsp程序设计试题库

    (2)强调可重用的组件:依赖与可重用的、跨平台的组件来执行应用程序所要求的更为复杂的处理。 (3)采用标识简化页面开发:一次编写,各处运行。 2、jsp有哪些内置对象?作用分别是什么? application对象代表应用...

    关于jsp的简介以及优点和缺点

    JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。...JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

    jsp地铁售票系统jsp地铁售票系统

    jsp地铁售票系统jsp地铁售票系统jsp地铁售票系统jsp地铁售票系统jsp地铁售票系统jsp地铁售票系统

    网站性能优化 Web开发 JSP java

    2.缓存技术(当数据更新比较快,几秒钟更新一次,或者需要实时反映数据变化,或者页面具有很多种风格,不便于生成静态页面) ... 二级缓存(Model/业务层,domain对象)优点...权限拦截模块 A粗粒度(Filter)B细粒度(AOP)

    JavaServer Pages (JSP)

    由于使用可重用的组件和标签取代了对页面本身脚本语言的严重依赖,JSP 技术大大加快了开发的速度。所有 JSP 的实现均支持以 Java 编程语言为基础的脚本语言,它有与生俱来的可适应性,支持复杂的操作。

    JSP入门源代码.zip

    1.jsp的执行过程 2.jsp基本语法 3.jsp综合训练 质数案例放在list中 4.jsp页面重用

    JSP 实现网页翻页

    绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者...

    jsp参考文献jsp参考文献jsp参考文献jsp参考文献

    jsp参考文献jsp参考文献jsp参考文献jsp参考文献jsp参考文献jsp参考文献jsp参考文献jsp参考文献jsp参考文献jsp参考文献jsp参考文献jsp参考文献

    JSP_JDK的安装与配置

    JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。...JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

    javaBean和JSP标准动作.rar

    JavaBean往往封装了程序的页面逻辑,它是可重用的组件。通过使用JavaBean,可以减少在JSP中脚本代码的使用,这样使得JSP易于维护。 JavaBean就是放置在JSP服务器后台的一个封装了数据和方法的类。JSP通过JavaBean...

    JSP论坛系统JSP论坛系统

    JSP论坛系统JSP论坛系统JSP论坛系统JSP论坛系统JSP论坛系统JSP论坛系统JSP论坛系统JSP论坛系统JSP论坛系统JSP论坛系统JSP论坛系统JSP论坛系统JSP论坛系统JSP论坛系统JSP论坛系统

Global site tag (gtag.js) - Google Analytics