一个动态网站开发后的小回顾

    应各方面的要求,本着继往开来,总结教训,共同进步的理念,作为平台开发的一员,我在这里将这个项目的开发过程做个总结。希望项目结束后,我们收获的不仅仅是一个软件。

    这个系统最初是被叫做网管系统的,但是后来加入了较多的业务图表展示。再后来,为了给市场推广和接待客户,又给系统添加了比较炫的flash和GoogleEarth。本来是给内部员工管理用的,但是马上也打算推向客户。最近由于面对不同的用户,被迫需要维护三个版本。

    给A客户看了,A提了些个想法,领导就说这是市场需求,上;给B客户看了,B也提了些个想法,同样,领导说这也是市场需求,上。这种剧烈的变化对开发人员来说实在是不小的挑战。

   面对这种不规范的开发环境,开发人员唯一能做的就是……硬着头皮扛。除此之外,你不会跟领导说什么软件开发方法论吧。你无法判断哪些客户的意见是真正的需求。有客户,开发人员才有用武之地。

    项目的开始阶段还不错,有需求设计文档,有站立会议,还有单元测试,月底还会有领导检查测试覆盖率。但是没过多长时间,开发有些变味了。首先是团队个别成员对站立会议有些抵触,认为过于形式,不排除某些成员由于压力太大,负责的功能好几天没有进展,因此不太情愿继续重复问题。对我而言,我能知道其它与我相关的模块的进度,进而拿捏自己的进度,或者听听别人的意见,进而看看对我的模块有什么影响,状态好的话,我还能给别人出出主意。

    在某一天,领导觉得项目进度有些慢了,给了个时间点,要求必须实现某些功能。然后小领导组织大家开会商量解决办法,讨论结果是,在时间点内实现功能,先不考虑其它诸如权限、日志、输入验证等非业务功能。于是单元测试没有了,在开发过程中遇到的问题、解决方法和变更也来不及文档化。成员们开始因为各自的原因随意地更改接口,之前调通的功能又出现故障,这样的情形后来还出现多次,无形中增加了成本。

    企业内部系统的开发与给别人开发项目是有区别的,领导希望从开发人员手里出来就是一个健壮可用、性能良好、扩展性很强的软件。这不是我说的。但是我切实体会到这一点。你无法跟领导说,我们完成了软件,但是还需要三四个测试人员测试一两个月。而且第一用户就是你的同事,出现了问题或者新需求,你每天都有不小的工作量。

    再后来,领导发现这是一个对外宣传的平台,有客户来,或者市场要出去宣传,的确需要这么一个平台来展现我们的工作成果,于是,这个系统又加了些新功能,说实话,我很高兴我做的东西能代表我们部门,但是从软件开发的角度来看,又很纠结。有些界面要求不要交互,内容要自动播放,有的界面要求能对用户的点击做出响应。而且要求中英文,交付速度要快。

    总的看来,进度的压力似乎是软件开发规范化的最大障碍,一旦进度优先,什么方法,什么规范,先站一边。而在市场看来,机会就那么一闪,没人给你时间,不管你是作坊还是工厂,到点拿出了东西,接下来,有钱赚,什么都好说。

    作为小组的一员,我负责除数据库之外所有代码的编写。

    从现在的统计来看,我们的项目有177个JAVA文件,143个JSP文件,237个数据表,101个数据库存储过程。应该是一个规模中偏小的WEB程序吧。

    在开发过程中,遇到了很多问题。有技术上的也有技术之外的。

    能完成这样一个项目,和成员的通力合作是分不开的。但是我们仍然有改进的余地。以后要注意沟通的质量。确保自己听到的是别人想说的,确保别人听到的是自己想说的。
   
    通常来说,一个WEB程序分为多语言功能、权限管理、日志、数据库模型映射、页面展示和主体业务六大部分。其中除了主体业务之外,其它五个部分差别是不大的,这也是各种框架层出不穷的原因。

    多语言对系统影响较小,但是对其认真的规划也是很重要的。一般来说,静态页面可以有cn和en两个文件夹来存放两种语言的内容,如果再多一种语言,只要再添加一个文件夹即可。但是对于动态页面,由于动态页面都是根据数据库数据生成的,如果把和语言相关的内容也放到数据库里,以后扩展语言的话会对系统造成很大变动。通常都是将语言相关的内容放到properties文件中,新的语言只要求新的properties文件。

    在信誉平台里,和语言相关的内容分布在前端和后端的所有环节。目前的中英文实现属于笨方法,有80%的功能是中英文各做一套。幸亏目前的规模不算太大。如果再增加一个语言的话,还真要好好琢磨怎么加。

    页面展示就是当页面跳转比较复杂的时候,容易让开发人员头晕,也是应该事先好好规划。

    还有输入验证这个功能目前也没有完善。

    技术问题能记起来的就是中文乱码问题,传输JSON字符串,其实技术问题不是什么大问题,又不是搞科研或者什么高精尖,解决方法都是可以找到的。

    权限管理和日志这块涉及的比较浅显,还是需求不明确。

    最后,主体业务这块,我们似乎过于想快速的将页面开发完,忽略了每个页面的实际意义。当页面开发完之后,发现有些页面似乎“价值”不大。一个产品一定要有一个产品的价值。否则,再辛苦,都是白费力气。

    开发过程的不规范是有目共睹的。希望能从这些回顾中吸取教训。

你可能感兴趣的:(json,软件测试,项目管理,单元测试,Flash)