PT项目是为了啥?
真正接触技术还不到两年时间,看得既不深也不远,估且以现在的水平和能力做如下阐述吧。
一、做什么?
进一步实现快速应用
我理解的其实就这一个目的。
如何快速应用?好的代码加好的文档。往深了说就是技术加管理。
快速应用有啥好处:.
省时省力省心,也就是缩短工期、提高工程质量,For More Money。
具体说来,就是在公司原以Struts1.1为模型的架构基础上再继续往前发展,更多通用配置,更多实际应用模块。
二、为什么?
1.原Struts架构没有进一步发展
公司架构一直在推陈出新, 但是目前公司应用最多的还是那套基于纯Struts1.1的,出来至少三年了吧,但仅就我所接触的几个项目来看,还基本停留在刚成型时的样子,细节有不少变化,但是架子没动。
Struts已经到2.0了,其它新Web技术层出不穷。就拿Struts1.2中的Struts-config.xml通用配置来说,就从来没用上。
那我们就来把这些已经被验证比较成熟的东西拿来用上。
2.程序员的部分工作可进一步减轻
之所以说进一步,是因为我们之前有了底层代码生成工具,这确实大大节省了开发人员手工写这些代码的工作量。而且生成的东西是标准化的,质量有保证。
然而,有个地方还可以抽象出来。
每一个项目中数据库表的页面配置工作无非就是增删改查四个操作,而这部分工作以往经验看来,会占到开发的30%~40%,这些可以利用反射统统模块化,让开发人员有更多的时间扑到个性化的业务流程设计开发上。
3.以往的技术点没有积累,架构包也没有详细的JAVA-DOC。
(其实我感觉还是大家没有养成书写注释的好习惯)
举个例子来说吧:
07年3月份,第一次看到项目中有个地方用了文件上传,用的SmartUpload上传组件,奇怪的我发现页面上所有表单都是通过Url方式传参,问了个同事,说input type=file这种东西是二进制上传(form.encoding='multipart/form-data'),普通的表单无法从后台通过request.getParameter获取。
07年5月份,领导分了我一个实现Web mail的工作,两天时间从网上查资料,手忙脚乱的实现了。这里面附件上传其实就是文件上传,用file-upload实现,里面的FileItem我感觉完全可以解决上面说的表单文件域和普通表单域传值问题,可惜当时没有继续往下做。
08年3月份,我已调到另外一个小组,领导让我写一个Excel数据导入模板程序,也要用到文件上传功能,我想借此机会正好把这个工具类给写出来。两天鼓捣出来了,传参request,把filePath/parameter/parameterValues放到对象数组中传回。过了两天我发现工程里有个类似的工具,07年不知哪位达人写的,比我写的好,用request实例构造,含getFile(String)/getParameter(String)/getParameterValues(String)方法。然而,我写的那个破玩意儿下面人已经用上了,后悔不迭。不过事情还没完...
08年4月份,我对Sysframework.jar反编逐一研究时发现,对request的封装类ParamUtils本身已包含对文件上传情况的支持。而它至少是在07年以前就有了。
通过这件事,我更加觉得:
a.公司应该有个知识库。大家在开发时碰到的问题大部分是相同的,如果有知识积累的话,大家就没必要每个人都要在相同的地方再花时间去研究了;
b.公司内使用的工具包也应该有详细的文档(实际的文档是一堆类名和方法名的集合);
c.有了知识库、有了说明文档还是要在开发指南中告诉开发人员,这些知识在哪儿。
三、怎么做?
1.制定计划
一开始领导就提出了很细致的若干个注意点。这些都会在研究开发过程中进行讨论并形成实现文档;
2.已经提到的几个技术点已经实现,形成文档;我也打算拿到这里供大家指正;
3.不断学习
不断在SpringSide里挖宝;
每天ibm-developerWorks、dev2dev
4.每天完善一点点,“流水不腐”:)