Web开发的分散性和交互性,决定了Web开发必须遵从一定的开发规范和技术约定,只有每个开发人员都按照一个共同的规范去设计、沟通、开发、测试、部署,才能保证整个开发团队协调一致的工作,从而提高开发工作效率,提升工程项目质量。一、项目的角色划分如果不包括前期和后期的市场推广及销售人员,开发团队一般可以划分为项目负责人、程序员、美工三个角色。项目负责人习惯称为项目经理,负责项目的人事协调、时间进度等安排,以及处理一些与项目相关的其他事情。程序员主要负责项目的需求分析、策划、设计、代码编写、网站整合、测试、部署等环节的工作。美工负责网站的界面设计、版面规划,把握网站的整体风格。如果项目比较大,可以按照三种角色把人员进行分组。角色划分是Web项目技术分散性甚至地理分散性等特点的客观要求,分工的结果还可以明确工作责任,最终保证了项目的质量。分工带来的负效应就是增加了团队沟通、协调的成本,给项目带来一定的风险。所以项目经理的协调能力显得十分重要,程序开发人员和美工在项目开发的初期和后期,都必须有充分的交流,共同完成项目的规划和测试、验收。二、开发工具的选取不象C/S结构程序开发,可以一门语言从头到尾,你用Delphi,就是Delphi程序员,你用VC++,你就是VC程序员。B/S结构的Web开发工作,工具的选择是一件痛苦的事情。从Windows到Linux,从IIS到Apache,从J2EE到.NET,从EJB到COM到.NET组件……还有Asp、Asp.net、Jsp、Php、Perl、Javascript、Vbscript……美工也轻松不了多少,什么网页三剑客新网页三剑客、FrontPage、Photoshop、CorelDraw……谁都说自己是最强大的!我们的经验是,选用工具时最好是统一的,但是也不必刻意强求一致。正是Web开发工具的多样性,才成就了今天互联网多姿多彩的局面。只要程序员的纯Html代码的功夫足够过硬,一般不会影响网站最后的整合工作。三、项目开发流程由项目经理牵头,以程序员为重心,共同讨论,完成用户需求分析,产生网站的栏目规划(用树形图表示),标出哪些是静态页面,哪些是动态页面。动态页面须要程序实现。制定网站的界面框架,包括首页构图,及各页面间的钩稽关系。产生各栏目文件夹的结构图(一些公共文件夹如images、scripts、styles等需要固定存放,共同调用)。然后由美工根据内容表现的需要,设计静态网页和其它动态页面界面框架,该切分的图片要根据尺寸切割开来。给需要程序动态实现的页面预留页面空间。制定字体、字号、超级链接等CSS样式等。在美工设计页面的同时,程序员着手开发后台程序代码,做一些必要的测试。美工界面完成后,添加程序代码,组合网站,由项目组共同联调测试,发现bug,完善一些具体的细节。最后进行网站部署。以上的每一部都会产生一些阶段性成果,项目经理需要及时进行审核、监督,发现问题即使纠正。.四、一些技术规则1,数据库命名约定表命名约定:表名长度不能超过30个字符,单词首写字母大写,多个单词间不用连接符号。字段命名约定:字段名尽量采用英文单词,单词首字母大写,单词之间用_隔开,命名规则是表类别名_单词,如:User_Info,News_Content。视图命名约定:采用规则View_表A_表B_表C,其中View表示视图。这个视图由几个表产生就用连字符_连接几个表的名,如果表过多可以将表名适当简化。存储过程命名约定:P_表名_存取过程名(缩写),比如P_User_Deleted。2,文件夹命名约定公共文件夹:/images公共图片/styles样式表/scripts脚本/ftps下载/doc网站相关素材、文档/readme.txt网站说明文档/helps.htm网站帮助文档/mylogs.txt网站维护记录其它栏目的命名,可以用拼音首字母简称,也可以用英文单词。全部文件夹的含义在readme.txt文件中说明。3,对象及变量命名约定每个变量名必须先定义,再使用。在ASP文件的最开头添加语句%OptionExplicit%可以强制变量定义。代码块必须采用缩进格式。每个函数前必须标明函数的功能、输入参数、返回值的相关信息。变量类型缩写前缀Stringstr或sIntegerintDatedtObjectobj或oBooleanbol或bBytebytDoubledblErrorerrLonglngSinglesng五、一些小经验1,能用静态网页表现的内容,尽量不用程序代码动态实现。2,设计阶段,必须和用户进行充分的交流,完全、准确的了解用户的需求。既不能歪曲用户的意思,也不能一味迎合用户的非正当需求,也不能对自己没有把握的技术甚至不可能实现的技术夸下海口。需求分析是一个沟通、交流、引导、教育、斗争、妥协的过程。需求分析结果要有文字资料存档。3,技术参数必须了解准确。比如用户的软件平台是linux系列,那你的系统就只好用Java+Apache开发了,这时候你的ASP.NET技术就用不上了。4,在必要的时候,让用户对已经确定的需求内容签字,盖章