WEB开发模式心得
----------
我觉得要提高WEB开发效率,减少耦合度,眼下最好的办法莫过于使用WEB框架、轻型的J2EE框架以及集成开发环境了。
目前WEB框架比较多,但都是通用性的,使用起来相对罗嗦,不能完全满足我们产品的特殊要求,以我们公司的WEB开发的规模,可以实现自己的框架。也可以说是中间件吧。
我司的WEB开发大体上有这几个特殊点:
1,不同局点需求冲突,不可调和,照成基线分裂,代码维护费时费力。
2,同一个portal多科室开发,代码分散在多基线,集成困难。
3,强数据库移植性。
4,部分页面实现特别复杂,比如计费页面
5,国际化需求,现在用的fmt标签实现国际化特别不直观。
6,数据收集多,照成页面数据验证任务量大。
7,功能点较多,权限管理困难。
8,外围的接口多,集成困难。比如和接口机通信,集成测试的时候要花费很多的时间。
这些特殊需求,眼下流行的框架都不能完全的解决。
建议我们实现自己的框架:具体的特性有下面几点:
1,配置--零配置、多文件配置
我经历过SPMS开发,搭一个新环境后,发布业务的时候,非常痛苦,耦合度太强强,尤其是配置的问题。往往需要打开某个配置文件,找到某一行,然后把业务的配置信息拷贝过去。如果我们再次使用MVC的请求转发模型,势必还要遇到配置的问题。根据惯例来寻找转向的页面,可以大大的减少配置信息,有效的减少“同一个portal多科室开发,代码分散在多基线,集成困难”的问题。如果有些地方必须配置,或者觉得用配置更灵活的话,可以使用多个配置文件,这样集成的时候也只需要拷贝配置文件,不用在打开某个配置文件去寻找某一行那么痛苦了。
2,IOC--依赖注入
依赖注入是spring中非常重要的概念。简单的说就是对象只依赖接口,具体的实现类由配置决定。这对我们解决“不同局点需求冲突,不可调和,照成基线分裂,代码维护费时费力”的问题非常有用。举例来说:电信和网通的业务能力发布过程有些冲突,那么我们把他们的共同点抽象为一个类放到common目录里,电信的实现继承抽象类并将其放到CTC目录里,网通的同样放到CNC目录下。运行时根据当前环境设置(比如设置为电信环境),先到CTC目录里查找实现类,如果没有再到common目录查找实现类。这样有分歧的需求就能在一个基线里统一维护了,共同的部分不用重复开发。
3,响应页面动态查找
IOC只解决了冲突的业务逻辑共存的问题,不同厂商的页面同样是不同的。我们同样开发出公用的页面和特殊需求的页面分别放在不同的目录下,先去查找特殊需求的页面,如果没有就使用公用页面。如果约定好一定的规则,这是不需要配置的。
4,sql翻译
以前我们使用Hibernate来屏蔽数据库的差异,但因为性能问题我们抛弃了,现在ISMP则完全不考虑数据库的移植性,也不是合理的做法。
对于数据库的移植问题我有两个建议:一是,拼装sql语句的时候都使用标准的sql规范,然后使用翻译工具翻译为适应具体数据库的sql;二是,像国际化那样把不同的数据库的sql放到不同的文件里。
5,使用模板(Template)或者jsp+taglib封装ajax,以及自动化生成数据验证代码。
复杂页面的开发是很费精力的。复杂在于交互性强,数据处理量大,调试困难。
交互性的问题可以通过ajax有效的解决,不过ajax还是比较复杂的,需要通过封装来简化使用。
数据处理量大,验证的任务就大,自动化生成数据验证代码是非常重要的。
现在ISMP使用的模型,对于单表的应用开发相当容易,但对于涉及多张表密切协作的开发确很困难,原因是没有办法进行事物控制,每查询一次都要做一次错误处理,很麻烦。而且查询标签只能使用的ORACLE数据库上面,同事针对sqlserver做话单开发,直接在页面上写代码,又不好用集成开发环境,很费力。而且代码复用向当低。
6,新的国际化设计
使用fmt标签做国际化,jsp里面都是简称,很不直观,定位困难。如果使用模板技术,那么在html模板里可以直接写汉文,然后在输出前翻译为UNICODE编码,如果是英文环境,就直接以汉文做key来查找英文。采用jsp+taglib标签也能实现这样的功能吧。
7,制订权限管理的组件
spring中使用AOP的方式来处理权限问题,但因为AOP实现和使用都相对复杂,还是尽量不要使用。制订统一的权限Exception类,展示页面,和权限工具包,并将这些嵌入到框架中去,是能够有效的加快开发速度的。
8,定义基于xml通信协议
ISMP中和接口机交换数据多是使用共享数据库表的方式,这和ISMP的开发模型是有关联的。如果采用MVC模型,用java代码来实现逻辑的话,定义基于xml通信协议是非常有必要的。
9,提高代码的自动化的能力。
数据从web表单,到java对象再到数据库表,这其中有的转换相当机械,而且也挺费时间。如果将表单中控件的名字、java类中域的名字和数据库表字段的名字统一起来,再利用java中的反射,提高代码的自动化水平也不是一件难事。
提高WEB开发效率,实例代码、培训和文档也是很重要的部分。通用组件的开发,是一个长期的过程,应该不断的收集开发人员遇到的共性问题,然后封装起来,通过升级中间件的版本,持续的提高开发效率。
展示和逻辑彻底分离是不可能的,减少耦合的办法就是“依赖接口,不依赖具体的实现”。然后配合IOC,系统还是蛮灵活的。
比如:定义好接口后,可以做两套实现:一是测试实现(验证页面采集的数据是否符合规范,以及往页面传入一些数据),二是真正的逻辑实现。
页面开发人员可以使用测试实现。真正的逻辑实现可以用junit这样的单元测试工具脱离页面单独测试。
最后建议使用jdk 5.0 和 jsp2.1 的版本来提高开发效率。
web开发的技术门槛不高,关键是要有组织地持续积累出通用的东西。
分享到:
相关推荐
这款设备的开发资料包含在"证通ZT598金属键盘开发资料.rar"压缩包中,主要适用于那些进行嵌入式系统开发的工程师。在深入探讨其开发SDK之前,我们首先来了解一下ZT598金属键盘的关键特性。 证通ZT598金属键盘设计...
ZT短信平台接口开发文档
在高级设置中,确保选择正确的标签纸张类型,如热转印,以适应打印机的工作模式。 此外,利用“工具”功能可以进一步优化打印效果。点击“打印”、“打印配置标签”和“传送”,打印机将打印出配置信息的标签,供...
斑马打印机ZT411和ZT421是工业级条码和标签打印机,广泛应用于制造业、物流、零售业等对打印质量和效率有高要求的领域。这两款打印机以其出色的性能、耐用性和易用性赢得了用户的信赖。这份中文手册详细地介绍了ZT...
斑马(Zebra)ZT410是一款先进的桌面级条码打印机,被广泛应用于物流、零售、医疗、制造业等多个行业。这款打印机以其高效、耐用和易于操作的特点深受用户喜爱。"斑马zt410中文库"指的是为ZT410打印机特别设计的中文...
《ZT213/ZT213LEEA:低功耗RS232多通道USB收发器/驱动器芯片详解》 ZT213/ZT213LEEA是一款专为低功耗应用设计的RS232多通道USB收发器和驱动器芯片,广泛应用于数据通信、工业控制、物联网设备等领域。本文将深入...
ZT7548是一款第五代电容式触控屏幕控制器,支持30x18或18x30的通道配置,可以同时检测最多10个触点。该控制器能够与最多8个键与TSP(触控屏面板)或FPC(柔性印刷电路板)模式一起工作,在多点触控时无扫描率下降的...
ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机ZT410打印机IP地址设置网络打印机
项目相关的表有 zt_project、zt_projectProduct、zt_projectStory、zt_task、zt_burn、zt_team 和 zt_build 等。 测试相关的表有 zt_bug、zt_case、zt_caseStep、zt_testTask、zt_testRun 和 zt_testResult 等。 ...
斑马(Zebra)ZT230条码打印机是一款广泛应用在工业环境中的高效设备,其驱动程序是确保打印机正常工作的重要组成部分。本驱动程序专为Zebra的ZT210、ZT220及ZT230系列打印机设计,提供了全面的功能支持,以实现高...
"斑马打印机ZT210用户指南" 本用户指南旨在为Zebra ZT210/ZT220/ZT230打印机的用户提供操作和维护指南,该设备是一种工业级的条码打印机,具有高速打印、高速处理和高质量打印输出等特点。 版权信息 本手册的版权...
斑马ZT510打印机驱动文件
此外,为了防止信号冲突,需要使用单主控多从机的通信模式,即只有一个设备可以发起通信,其他设备处于接收状态。 至于提供的"ZT13085E封装库",这包含ZT13085E芯片的原理图符号库和PCB封装库。原理图符号库是电路...
赠送jar包:zt-exec-1.9.jar; 赠送原API文档:zt-exec-1.9-javadoc.jar; 赠送源代码:zt-exec-1.9-sources.jar; 赠送Maven依赖信息文件:zt-exec-1.9.pom; 包含翻译后的API文档:zt-exec-1.9-javadoc-API文档-...
总的来说,"zt云流量HTML响应式模板"是一个集成了最新Web技术的解决方案,它结合了响应式布局、HTML5、CSS3和可能的JavaScript框架,以提供一个高效、适应性强且用户友好的云流量管理平台界面。无论是对于初学者还是...
斑马zt210是一款专为中国市场设计的工业条码打印机,非常适合不需要频繁更换标签的条码标签应用。这里给大家提供斑马zt210驱动下载,推荐有需要的用户下载安装。斑马zt210打印机优势:◆ 节省空间* 小巧紧凑和流线型...
1. 初始化指令:这类指令用于设置键盘的工作模式,如波特率、奇偶校验、停止位等,确保数据传输的正确性。 2. 输入获取指令:当用户在键盘上输入密码或其他数据时,系统需要通过这些指令来读取并处理这些信息。 3....
《ZT210 230加载介质和碳带》 在条形码和标签打印领域,Zebra公司的ZT210和ZT230打印机是广泛应用的设备,以其可靠性和效率赢得了广大用户的青睐。这两个型号的打印机都属于入门级工业级条码打印机,适用于各种商业...
ZK-ZT2调速器支持四种运行模式:手动(人工)控制、自动控制、上位机控制和串口控制。这四种模式可实现直流电机的正反转、停止、刹车以及调速功能,并支持可编程运行。通过拨码开关,可以切换手动或自动控制模式,并...