日期:2014-03-31  浏览次数:21213 次

本标准化文档主要针对中国高校勤工助学网站(以下简称中勤在线)的现有技术和发展方向,对网站后台程序的开发作一份详细的规范,仅供中勤在线程序员参考学习。
本文档分为两部分,第一、程序开发标准化,其意义为规范各程序员在完成本职工作过程的一切操作行为的标准;第二、程序管理标准化,其意义为规范程序员的管理,考核,培训,奖惩。

一、 【程序开发质量标准化】
1、开发环境
目前,中勤在线的具体开发/调试/运行环境基本为:
程 序:Asp 3.0
平 台:Win2K Server + IIS 5.0
数据库:Access 2000/XP
随着网站的不断发展,此开发/调试/运行环境已不再适合一个大型教育类网站的技术要求。程序语言暴露出安全性不够,扩展性欠佳,移植性较差,代码混乱等现象。致使开发人员几乎很难针对过去的程序进行修改和更新,更不用说跨平台的应用;Win2k和IIS 5.0的Web平台工作不够稳定,出现“当机”现象频率过高;Access数据库在大数据量的检索中出现速度较慢的现象,并且数据备份操作烦琐,更不利于将来实现多台服务器的数据同步问题。
为了提高中勤在线的技术含量,跟上国际主流网站开发的步伐,目前网站面临重大改革,抛弃过去程序开发的道路(采用面向程序语言),及时与国际主流接轨(采用面向对象程序语言),我们有两个开发环境可供选择发展:
第一、采用Linux+Resin/Apache+Jsp(java)+Oracle/Sql Server环境方案;
第二、采用Win2K+IIS(含.net框架)+Asp.Net(C#,Vb.net)+Sql Server/Oracle环境方案;
国外,第一套方案已成为主流,广泛应用于电子商务领域,发展稳定;第二套方案推出于微软.net计划,发展前途一片光明。
首先,据中勤在线成立以来开发人员详细资料统计分析,中勤在线后台程序开发人员90%为非计算机专业本科学生,10%为计算机专业本科生与研究生,但由于其站性质,发展成为专业的面向广大社会的的门户网站的可能性很小,其开发人员可能一直局限于学生,尤其是有浓厚网络开发兴趣的非计算机专业学生。所以其开发团队可能一直存在基础不够牢固的缺点。要想灵活掌握Linux系统下的java编程具有一定难度,大部分开发人员还是习惯于Windows环境下的程序开发,并且,对于具有一定经验的Asp开发人员,学习Asp.net较学习java上手要快,关键就在于转变由面向程序的概念到面向对象的概念,这是中勤在线应选择第二套方案的第一个原因。
其次,网站初,中期程序开发所选择的开发语言为Asp,目前Asp很难移植到Linux环境下,要将现有栏目都转为Jsp程序再挂靠于Linux系统下是个浩大的工程,其工作量不下于重新开发一套完善的系统。再回看第二套方案,其Asp和Asp.net可以共存于新开发环境,这样一来,本站可在不影响正常发展以及运作的条件下,同时对原有Asp程序进行升级转换为新的Asp.net程序,逐步分块提高程序执行效率和网站整体的技术含量,真正做到发展与运作两不误,这是中勤在线应选择第二套方案的第二个原因。
综上所述,中勤在线应选择第二套开发环境,朝着面向对象的发展方向,逐步实现技术的转化和完善。

2、高效原则
作为一个程序员,无论针对哪个领域的程序开发,应该努力追求程序的效率,请各位中勤在线的程序员注意,切记以下这句话:
“不要认为CPU运算速度快就把所有的问题都推给它去做,程序员应该将代码优化再优化,我们自己能做的决不要让CPU做,因为CPU是为用户服务的,不是为我们程序员服务的!”
针对中勤在线的Web开发,我们将这句话实例化:
·尽量避免大量使用全局变量,删除无用变量;
·尽量少用Session变量;
·数据量较大时尽量使用存储过程分页;
·尽量少用“Select * ”,即使需要所有字段也应尽量一个一个按照使用的顺序罗列出来,Order By时应该尽量提前使用建立索引或者主键的字段排序;
·使用Request对象时,针对具体情况写名是用QueryString方法还是Form方法;
·所有数据库和文件对象都要在使用后尽可能早的Close,同时赋Nothing
·Asp.net开发中,尽量少用大型耗资源的系统控件,并且尽量使用CodeBehind技术,将代码和页面分开,并编译动态链接库文件;
尽量采用SQL Server 数据库;

3、编码约定
目前,中勤在线已正常运作三年有余,程序员由九七级本科生延续至现在的零二级,各个年级的程序员编码的熟悉程度和编码的方式各不一致,以至于程序编码五花八门,严格的说,从目前中勤在线的网站后台程序编码总体来看,中勤在线还停留在个人网站的水准上,看不出一个教育类大型网站的应有的水准,因此,我们的程序员必须统一编码方式,原因其一,可以体现出整个网站的整体性;其二,可以提高程序的可阅读性,方便下一阶段的程序员修改更新程序。以下为具体内容:
1、 变量先定义后使用;
2、 首字大写,尽量采用英语描述,不宜采用拼音描述;
3、变量命名基本采用匈牙利命名法则;
匈牙利命名法则基本原则是:
变量名=属性 + 类型 + 对象描述
即一个变量名由三部分信息组成,这样,程序员很容易理解变量的类型、用途,而且便于记忆。
下边是根据我站一些推荐使用的规则例子(详细命名规则请参看匈牙利命名规则):
·属性部分
全局变量:         g_
常  量:         c_
·类型部分
 指  针:         p_
 句  柄:         h_
 整  型:         i_
 浮 点 型:         f_
 日 期 型:         d_
 布 尔 型:         b_
 字 符 型:         s_
数 组 型:         ary_
·描述部分
 初 始 化:         Init
 临时变量:         Tmp
其中部分规则考虑到将来.net发展的c# 变量命名规则,在Asp中可不考虑。
参考实例:c_i_InitBorderColor、g_s_TmpNewsTitle、g_i_ary_VoteNum,程序员可根据实际情况梢做改动,但必须遵循匈牙利命名法则,能够使其他程序员看变量名便知其类型和属性等关键标识符意义;
4、所有控件的属性值都要使用双引号或者单引号包括起来;
5、控件的命名规则:
  Button:          btn
Form:          frm
Select:          sel
Textarea:         txt
Input:           ipt
Hidden:          hid
6、各控件主要使用规则:
  ·img控件
alt:所有展示类图片都要具有能简要描述图片内容的文字说明。
·Input控件
maxlength:所有Input控件都需要制定maxlength属性,默认值为数据库中对应的字段的长度。
readonly:所有不可更改的信息都要使用readonly属性。
·Form控件
action:所有Form都要指定action,如果提交给本身就指定action=""
method:尽量使用post方式
onsubmit:所有form都要指定提交前需要的检查程序。
所有form都要有对应的reset button。
·Button控件
Onclick:form中用于提交的button不容许使用此方法,所有数据检查通过form的onsubmit激活。
·head属性
所有页面都要具有不为空的head属性。
·所有中文页面都要加上如下语句:
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

4、数据库设计

[1] [2] 下一页