`
brucewei777
  • 浏览: 83527 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐

    ASP[1].NET+2.0动态网站开发教程

    1.1 网站发展历史的简要回顾 1.1.1 从静态网页发展到动态网页 1.1.2 动态网页发展的几个阶段 1.1.3 ASP的技术特点 1.1.4 新一代ASP.NET技术 1.2 .NET框架的体系结构 1.3 XML:可扩展标记语言 ...

    matlab开发-动态分配策略回顾

    matlab开发-动态分配策略回顾。凸管理与凹管理、CPPI、OBPI、投资组合保险等。

    ASP.NET.3.5从入门到精通(Csharp2008版).part2.rar

    本书提供了最新、最全面的ASP.NET入门知识。ASP.NET是一个开发现代Web应用程序的架构。使用ASP.NET可以开发出安全...经过本书的学习,您将精通网站开发的核心技术,并掌握成为一个专业ASP.NET开发人员的必备知识。

    iFIX工程开发流程.pdf

    数据库配置是将驱动配置完毕后的下一步,主要操作是为每一个 IO 点在数据库中增加一个相对应的数据库标签点,并指定相应的属性。标签点很多的情况下,可以使用标签点的导入导出功能和 Excel 辅助配置。 报警配置和...

    ASP.NET\ASP.NET.3.5从入门到精通(Csharp2008版).part1.rar

    本书提供了最新、最全面的ASP.NET入门知识。ASP.NET是一个开发现代Web应用程序的架构。使用ASP.NET可以开发出安全...经过本书的学习,您将精通网站开发的核心技术,并掌握成为一个专业ASP.NET开发人员的必备知识。

    《Java-Web应用开发基础》教学课件08课程设计实例.pptx

    另一个提供退出登录后返回登录界面功能。 4.Servlet过滤器设计 设计两个Servlet过滤器:一个用于防止中文数据乱码,另一个用于防止未登录用户访问网站资源。 《Java-Web应用开发基础》教学课件08课程设计实例全文共...

    Spring3.x企业应用开发实战(完整版) part1

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

    Java开发技术大全 电子版

    1.4一个简单的Java小程序16 1.5本章小结18 第2章Java语言基础19 2.1Java语言的特点19 2.2Java程序的构成21 2.3数据类 型23 2.3.1基本数据类型23 2.3.2常量25 2.3.3变量26 2.3.4整型数据27 .2.3.5浮点型...

    Spring.3.x企业应用开发实战(完整版).part2

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

    linux设备驱动开发

    尽管本书的主要目的是教如何写设备驱动程序,但它所包容的内容应该也对内核的执行给出一个完整的概貌。 对那些想玩电脑的人和那些涉及Linux机器的内部的专业程序员来讲,本书都会是一个很有趣的资料来源。注意:...

    Eclipse权威开发指南2.pdf

    2.1.2 创建您的第一个项目..... 15 2.1.3 Eclipse的外观:编辑器、视图和透视图..... 16 2.1.4 用户界面概述..... 18 2.1.5 首选项介绍..... 19 2.2 基本的Eclipse使用...... 20 2.2.1 在Eclipse中工作..... 21 ...

    ASP.NET.3.5从入门到精通(Csharp2008版).part3.rar

    本书提供了最新、最全面的ASP.NET入门知识。ASP.NET是一个开发现代Web应用程序的架构。使用ASP.NET可以开发出安全...经过本书的学习,您将精通网站开发的核心技术,并掌握成为一个专业ASP.NET开发人员的必备知识。

    WEB开发与应用课程设计

    经过这两个星期的动态网页制作,我们学习了不少知识,包括对上学期学过的ASP...总的来说,我们学会了如何去用ASP.NET程序设计技术开发一个小型动态网站,在发现和解决问题的过程中提高了应用该技术解决实际问题的能力。

    ASP.NET 3.5从入门到精通(C#2008版).part1.rar

    内容简介回到顶部↑本书提供了最新、最全面的asp.net入门知识。asp.net是一个开发现代web应用程序的架构。...经过本书的学习,您将精通网站开发的核心技术,并掌握成为一个专业asp.net开发人员的必备知识。

    ASP.NET 3.5从入门到精通(C#2008版).part2.rar

    内容简介回到顶部↑本书提供了最新、最全面的asp.net入门知识。asp.net是一个开发现代web应用程序的架构。...经过本书的学习,您将精通网站开发的核心技术,并掌握成为一个专业asp.net开发人员的必备知识。

    老男孩第三期Python全栈开发视频教程 零基础系统学习Python开发视频+资料

    ├─(61) 06 python s3 day49 django的一个简单应用.avi ├─(62) 07 python s3 day49 django静态文件之static.avi ├─(63) 08 python s3 day49 django的url控制系统.avi ├─(64) 09 python s3 day49 django的...

    Eclipse权威开发指南1.pdf

    2.1.2 创建您的第一个项目..... 15 2.1.3 Eclipse的外观:编辑器、视图和透视图..... 16 2.1.4 用户界面概述..... 18 2.1.5 首选项介绍..... 19 2.2 基本的Eclipse使用...... 20 2.2.1 在Eclipse中工作....

    Delphi5开发人员指南

    4.3.1 一个项目一个目录 82 4.3.2 共享代码的单元 82 4.3.3 多项目管理 84 4.4 Delphi 5项目的框架类 84 4.4.1 TForm类 84 4.4.2 TApplication类 89 4.4.3 TApplication的方法 91 4.4.4 TApplication的事件 92 4.4.5...

    动态配置策略回顾:凸与凹管理、CPPI、OBPI、投资组合保险等。-matlab开发

    要遍历代码并获得详尽的描述,请参见Meucci A.,“动态分配策略回顾” 最新版本的文章和代码可在http://symmys.com/node/153 上找到

Global site tag (gtag.js) - Google Analytics