一、项目的角色划分
如果不包括前期和后期的市场推广及销售人员,开发团队一般可以划分为项目负责人、程序员、美工三个角色。
项目负责人习惯称为项目经理,负责项目的人事协调、时间进度等安排,以及处理一些与项目相关的其他事情。程序员主要负责项目的需求分析、策划、设计、代码编写、网站整合、测试、部署等环节的工作。美工负责网站的界面设计、版面规划,把握网站的整体风格。如果项目比较大,可以按照三种角色把人员进行分组。
角色划分是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文件的最开头添加语句<%Option Explicit%>可以强制变量定义。代码块必须采用缩进格式。每个函数前必须标明函数的功能、输入参数、返回值的相关信息。
变量类型 缩写前缀
String str 或 s
Integer int
Date dt
Object obj或 o
Boolean bol或 b
Byte byt
Double dbl
Error err
Long lng
Single sng
五、 一些小经验
1,能用静态网页表现的内容,尽量不用程序代码动态实现。
2,设计阶段,必须和用户进行充分的交流,完全、准确的了解用户的需求。既不能歪曲用户的意思,也不能一味迎合用户的非正当需求,也不能对自己没有把握的技术甚至不可能实现的技术夸下海口。需求分析是一个沟通、交流、引导、教育、斗争、妥协的过程。需求分析结果要有文字资料存档。
3,技术参数必须了解准确。比如用户的软件平台是linux系列,那你的系统就只好用Java+Apache开发了,这时候你的ASP.NET技术就用不上了。
4,在必要的时候,让用户对已经确定的需求内容签字,盖章
程序员和美工是否应该是如下的协同工作方式:
先由项目组确定需求及功能划分,由程序员主导确定需要的页面(当然主要指动态部分),由美工确定风格,美工据此制作适合风格的页面,同时程序员按照功能划分完成自己模块的设计和编码,在此过程中需要自己制作简单页面。在最后集成阶段,双方共同协调将代码加入已完成的页面,然后进入测试阶段。