`
neora
  • 浏览: 183934 次
  • 性别: Icon_minigender_1
  • 来自: 墨尔本
文章分类
社区版块
存档分类
最新评论

Web层开发放弃的一些东西

阅读更多
这是我们的开发团队在最近1年的开发中放弃的一些东西。

放弃Apache:

我希望我们的软件不经过任何修改就能运行在不同OS的服务器上。这样对部署和维护成本都有利。纯Java和像PHP这样的脚本语言可以适应。但JVM的安装要比脚本执行引擎的安装方便得多。

任何基于Web的app都必须依赖Web Server。apache的代码非常成熟,可以在任何的类Unix平台上顺利的make install,Linux、FreeBSD、Aix、MacOSX甚至Irix。但如果采用PHP,你就不得不在编译apache的时候,加入一堆参数 以引入各种模块,包括最起码要包括php和mysql。(mysql需要编进php里)。非常麻烦。mysql如果升级了,很可能会引起mod_php也 需要重新编译。经验丰富的系统工程师可以通过各种手工的link来伪装libmysql、libphp以及其它lib之间的版本差异,但依然要费很多的功 夫。如果把mysql再换成Oracle或者DB将是更加痛苦的过程。

更困难的是,除了Linux和FreeBSD外,在其它的类UNIX的编译安装都需要点儿不同的参数调整。如果那台服务器已经由于其它应用软件的安装而更改了/usr/lib/下的一些东西,那很可能会給部署带来不小的麻烦。

于是在综合考虑后,决定放弃apache选择tomcat——纯Java的跨平台的Web Server,PHP也被随之放弃(放弃PHP有很多理由,这也是其中之一)。好在v5.5以后,tomcat的效率已经可以令人接受了。我甚至把任何静 态的页面都放在tomcat中,而不是另外安装一个apache用来处理静态页面的请求。测试下来,tomcat处理静态页面的效率也没什么问题。

最终我们把整个JSDK、tomcat、jsp、jar、class、servlet class都tar成一个包,传到服务器上一解包就安装完毕了,立刻可以运行。

放弃struts:
用struts开发项目的前3天,struts强迫性的分离mvc的方式很令人愉快。但之后的3个月,我逐渐失望,3个月后我盯着臃肿庞大的XML开始抓狂!
这时我意识到一套良好的文件目录组织结构 + 清晰的文件命名规则 + 简要的文档 要比struts更有效。
于是,我们按照RoR的目录组织格式来区分负责MVC的程序。

放弃Servlet:
按“道理”,处理action的都应该是一些extends HttpServlet的Class。几乎所有教科书的例子都是这样。但我特别讨厌在web.xml里写进一堆mapping、name、pattern 和server-class标签(其实我讨厌手工修改任何XML文件)。
所有该创建的class XXX extends HttpServlet都由xxx.jsp来实现了。这种jsp不print任何HTML,只是getParamenter和get/set Session,然后调用service层的方法,最后redirect到其它action或者view。
Jsp会被tomcat编HttpServlet class,但这个class不能加进任何方法。这样可以“强迫”你将尽量多的逻辑代码都写入service层。
只有在很特殊的一些地方,才不得不写少量的Servlet,比如download 或者write动态图像。

添加、删除或者rename一个action的时候,我们再也不用去反复维护web.xml了。


放弃frameSet:
HTML里的frameSet标签经常被用来分割页面上的不同功能区域,这有利于用户在不同的功能模块之间切换。但从UI的角度来看,使用者又总是希望屏幕应该用尽力大的区域来显示他正在关注的版面。
如果你只用一个Page frame,那么每个用户的view page都必须包含一些固定内容,比如Head或者left bar。有各种各样的jsp标签顺应这个需求被发明出来。但这无疑会增加用户浏览器对无用数据的下载量。
现在有了ajax。我们把整个app都放在了一个page里。需要更新的区域用ajax做局部更新。小型表单的提交直接用get method放在url后面,大型表单的提交用hidden的iframe来完成。
一切都很完美,但浏览器的后退键在我们的app中从此失效 。 Sad
分享到:
评论

相关推荐

    利用Struts进行WEB层开发

    利用Struts进行WEB层开发

    Delphi+Web前端开发教程基于TMS+WEB+Core框架.pdf

    **Delphi Web前端开发教程——基于TMS WEB Core框架** Delphi Web前端开发教程是针对想要使用TMS WEB Core框架创建Web应用程序的开发者,无论你是初学者还是高级开发者,本教程都提供了丰富的学习资源。TMS WEB ...

    海康威视WEB3开发包.zip

    6. **安全机制**:考虑到监控系统的敏感性,海康威视Web3.0开发包可能会包含一些安全措施,如身份验证、数据加密等,以保护视频数据不被非法访问。 7. **实时性与性能**:海康威视Web3.0开发包在设计时考虑到了实时...

    Web前端开发职业技能等级标准.pdf

    标准的核心内容,来源于社会对Web前端开发职业活动质量的要求,是衡量从业者(包括正在接受教育与培训的准从业者)胜任Web前端开发工作的基本尺度和规范,能够反映当下时期内Web前端开发职业教育的人才培养质量规格。

    web开发设计00005

    web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计...

    Flask Web应用开发实战.pdf

    《Flask Web应用开发实战》是一本专注于使用Python的轻量级Web框架Flask进行Web应用开发的专业书籍。Flask以其简洁、灵活的特性,在Python Web开发领域深受开发者喜爱。这本书详细介绍了如何利用Flask构建功能完备的...

    web开发设计00001

    web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计web开发设计...

    web开发文档PDF

    - **第八章 利用Struts进行WEB层开发**:介绍Struts框架的工作原理及其在Web层开发中的优势,涵盖Struts框架的基本概念、配置方法和应用场景。 #### 三、总结 本文档通过对Java Web应用开发的技术介绍,不仅涵盖...

    web前端开发技术储久良第三版答案

    《Web前端开发技术储久良第三版答案》涵盖了前端开发领域的关键知识点,主要针对储久良教授编著的教材第三版中的习题和实验提供了详尽的解答。这本书旨在帮助学习者深入理解Web前端开发的核心概念和技术,通过解决...

    java web接口开发demo

    【Java Web接口开发】是Web应用程序开发中的一个重要环节,它允许不同的系统或客户端通过网络进行数据交互。在Java世界中,实现Web接口通常涉及到Servlet、JSP、Spring MVC或者RESTful API等技术。本示例"java web...

    web服务开发学习实录(光盘)

    此外,他们还可能讨论一些高级主题,如WS-Security(Web服务安全)、WS-ReliableMessaging(可靠消息传递)和WS-Discovery(服务发现)等,这些都是构建健壮Web服务的重要组成部分。 在Web服务开发中,理解WSDL...

    海康威视web3.0开发包

    海康威视作为全球领先的安防产品及解决方案提供商,其web3.0开发包是一个专为开发者设计的工具,旨在帮助用户构建基于Web的监控系统,实现远程访问、控制和管理海康威视的设备。这个开发包是海康威视在Web技术上的...

    大华摄像头web3.0二次开发webplugin

    【大华摄像头Web3.0二次开发WebPlugin详解】 大华摄像头Web3.0二次开发WebPlugin是一款专为开发者设计的工具,旨在帮助用户利用Web技术进行摄像头的高级功能定制和扩展。它允许开发者通过浏览器插件的方式,接入...

    点聚WebOffice-开发接口SDK及其开发指南.doc

    本文档提供了点聚WebOffice开发接口SDK的详细说明和开发指南,涵盖了WebOffice开发接口的基本概念、开发流程、SDK组件、开发工具、事件处理、文档控件等方面的知识点。 1.开发流程 在本节中,介绍了WebOffice开发...

    详解:Intenret web应用开发,N层结构技术讲义(PPT)

    **互联网Web应用开发详解——N层结构技术** 在互联网Web应用开发中,N层结构(N-Tier Architecture)是一种常用的设计模式,它将应用程序分解为多个独立的逻辑层,每个层都有特定的功能,以实现更好的模块化、可...

    Web 前端开发中级理论考试(试卷 ).rar Web 前端开发中级理论考试(试卷 ).rar Web 前端开发中级理论考试(

    Web 前端开发中级理论考试(试卷 ).rar Web 前端开发中级理论考试(试卷 ).rar Web 前端开发中级理论考试(试卷 ).rar Web 前端开发中级理论考试(试卷 ).rar Web 前端开发中级理论考试(试卷 ).rar Web 前端开发...

    python web开发实录源代码

    "Python Web开发实录源代码"这个压缩包可能包含了以上提到的一些或所有知识点的实例代码。通过阅读和运行这些代码,你可以深入理解每个概念是如何在实际项目中应用的,从而提升自己的Web开发技能。在实践中,记得要...

    Java Web三层架构的配置详解

    Java Web三层架构是一种常见的软件设计模式,用于构建可扩展、可维护且易于测试的Web应用程序。这个模式将应用逻辑划分为三个主要层次:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据...

    强大的Web开发框架

    1、 完善的Web表现层开发包:为企业Web表现层开发人员提供的一套完整、高效、美观的B/S结构设计表现层解决方案,简单易学。 a) 在ExtJs2.X的基础上进行的二次开发与通用接口设计,让繁琐的页面开发简单易行; b) 极...

Global site tag (gtag.js) - Google Analytics