软件开发规范Word格式.docx

上传人:b****5 文档编号:21301795 上传时间:2023-01-29 格式:DOCX 页数:45 大小:215.48KB
下载 相关 举报
软件开发规范Word格式.docx_第1页
第1页 / 共45页
软件开发规范Word格式.docx_第2页
第2页 / 共45页
软件开发规范Word格式.docx_第3页
第3页 / 共45页
软件开发规范Word格式.docx_第4页
第4页 / 共45页
软件开发规范Word格式.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

软件开发规范Word格式.docx

《软件开发规范Word格式.docx》由会员分享,可在线阅读,更多相关《软件开发规范Word格式.docx(45页珍藏版)》请在冰豆网上搜索。

软件开发规范Word格式.docx

2.2.1文件命名规范

2.2.1.1规则–所有文件名均由小写字母、数字和下划线组成

使用的英文单词要简单,同时又能清晰的反映该文件功能。

下划线只做为单词的分隔符,不要用下划线做文件名的起始。

文件名中不得包含汉字、空格和特殊字符。

示例:

driver_task.html

2.2.1.2规则–所有HTML文件的扩展名为.html

文件扩展名为小写的html,避免使用htm或者大写字母。

login.html

2.2.1.3规则–所有JavaScript文件的扩展名为.js

文件扩展名为小写字母的js

comon.js

2.2.1.4规则–所有CSS文件的扩展名为.css

文件扩展名为小写字母的css

style.css

2.2.1.5规则–所有页面源代码使用UTF-8编码

所有HTML文件、JavaScript文件、CSS文件使用UTF-8编码。

2.2.2目录结构规范

2.2.2.1规则–符合标准的JavaWeb目录规范

系统应该符合JavaWeb目录规范:

[web根目录]

|__script//公用JavaScript目录

|__css//公用css目录

|__images//公用图片目录

|__swf//公用flash目录

|__xxxx//html文件目录,根据业务关联程度分目录

|__yyyy

|__…

|__WEB-INF//标准Web配置文件目录

|__classes//Java二进制代码目录

|__lib//Javalib库目录

|__web.xml//标准Web配置文件

2.2.2.2规则–公用的JavaScript文件放入script目录,公用的CSS文件放入css目录

在各个html页面中直接引用这些公用的文件

<

scripttype="

text/JavaScript"

src="

/script/common.js"

language="

JavaScript"

>

/script>

2.2.2.3规则–公用的图片文件放入images目录

系统公用的图片文件放入web根目录下的images目录,为了便于管理,应按照使用功能建立子目录。

2.2.2.4规则–公用的flash文件放入swf目录

系统公用的flash文件放入web根目录下的swf目录,为了便于管理,应按照使用功能建立子目录。

2.2.2.5规则–HTML文件根据业务关联程度分别放入各一级目录

一级目录是指和上面提到的script、css并列的目录。

如清算部分充值报表的页面就在目录clear下:

/clear/deposit_stat.html;

根目录下只存放index页面及其所包含的帧页面,其他公用的html页面放在目录common目录下。

2.2.2.6建议–保持两层目录结构

整个web应用保持由根目录和一级目录组成的两层目录结构。

2.3标记语言规范

标记语言是指用来结构化呈现内容的标记语言,如HTML,XHTML或WML等。

本项目覆盖范围为HTML(普通浏览器访问)和XHTML(手机访问)。

2.3.1HTML开发规范

项目中所有的HTML页面遵循W3C组织推荐的HTML4.01规范。

(手机门户页面规范除外,见相关规范)

其中,普通页面遵循TransitionalDTD,帧(frame)页面遵循FramesetDTD。

2.3.1.1规则–正确声明文档的DTD

在各个HTML文件的首行必须声明本文件的DTD

普通页面的声明是:

!

DOCTYPEHTMLPUBLIC"

-//W3C//DTDHTML4.01Transitional//EN"

"

http:

//www.w3.org/TR/html4/loose.dtd"

>

帧页面的声明是:

-//W3C//DTDHTML4.01Frameset//EN"

//www.w3.org/TR/html4/frameset.dtd"

2.3.1.2规则–正确填写文档类型

正确填写meta中的文档类型

示例:

metahttp-equiv="

Content-Type"

content="

text/html;

charset=utf-8"

2.3.1.3规则–填写文档作者

在meta填写作者信息

metaname="

author"

guoang"

2.3.1.4规则–填写title

虽然系统采用了frame,导致部分页面设置的title没有显示效果,但是中的title必须设置,以简要说明这个页面的用途

title>

退款明细查询<

/title>

2.3.1.5规则–缩进文档

使用TAB对文档进行缩进,以保证文档良好的可读性。

最高一级的父标记采用左对齐顶格方式书写。

同一级标记的首字符上下必须对齐。

html>

head>

<

metah…………….

…………

2.3.1.6规则–适当换行

每个标签占一行,不得出现两个标记在同一行的情况。

如:

tablecellSpacing="

0"

cellPadding="

4"

width="

100%"

border="

如果标签体为空或者内容很少,则标签体和对应的结束标签可在同一行。

如果标签体和标签不在一行上,则标签体需要缩进。

divclass="

listBar"

listTitle"

退款明细<

/div>

对于需要关闭的标记,必须同其关闭标记同时出现。

不得出现交叉包含的语句。

如下面的代码就是错误的:

div>

p>

abc<

/p>

2.3.1.7规则–标签的ID

给标签指定ID可以方便的定位相应的页面元素,但是对于在表单(form)中的元素,不要指定ID,而是用name属性,通过form对象实现引用。

这样好处是,当一个页面中有多个form时,form中的元素又有雷同时,防止出现ID相同的元素。

formid="

searchForm"

name="

action="

"

<

inputtype="

hidden"

orgID"

2.3.1.8规则–关于样式

由于项目是一个整体,所以要避免在单个HTML页面中声明样式。

所有的样式统一调用共用的样式文件。

这样有利于修改和维护。

尽量避免在标签上显式的使用样式(style属性),而是通过CSS文件中对相关标签进行样式定义。

对于相同标签不同样式的需求,使用class属性来引用进一步定义的样式。

2.3.1.9规则–HTML不是XHTML

HTML规范和XHTML规范并不相同,在开发中,要注意:

1.不要封闭标签,如用<

br/>

代替<

br>

2.对于某些属性,如readonly,enabled,disabled等,并不需要赋值,如:

button"

value="

确认"

onclick="

onRefer()"

enabled="

true"

正确的是

enabled>

2.3.1.10建议–采用对XHTML更友好的方式

为了使页面对XHTML更友好,建议:

1.所有标签和属性均采用小写;

2.使用双引号将所有的属性值括起来。

2.3.2XHTML开发规范(TODO)

2.4JavaScript开发规范

2.4.1规范

项目使用符合ECMA-262v3规范的JavaScript1.5做为页面脚本语言。

2.4.1.1规则–缩进文档

使用TAB对文档进行缩进,以保证文档良好的可读性

functionclone(object){

varobj=null;

if(objectinstanceofArray){

……

2.4.1.2规则–行宽

不要让一行代码超过120个字符。

当一条语句不能在单独一行写完时,可能有必要拆分它。

在操作符后进行拆分,最好是在逗号后面拆分。

下一行应该多缩进一个tab。

2.4.1.3规则–注释

注释应该书写良好和清晰,就像它们标注的代码一样。

注意及时更新注释,错误的注释让程序更难读懂和理解。

让注释有意义。

更多的关注于不能马上可见的东西。

不要用如下内容浪费读者的时间:

i=0;

//给变量i赋0

一般使用行注释。

把块注释用于正式文档或外部注释。

2.4.1.4规则–变量声明

所有的变量应该在使用前声明。

JavaScript不强求这点,但是这样做会让程序更易读,并且会让探测未声明的可能变成隐式的globals的变量更容易。

var语句应该在方法体内开始部分。

每个变量声明应该自己占一行并有注释。

代码示例:

varcurrentOrg;

//当前机构

varorgLevel;

//机构等级

varoperator;

//当前操作员

例外:

同类变量可在一行声明,如:

vari,j,k;

在方法顶端定义所有变量。

尽量少使用全局变量。

不使用隐式的全局变量。

2.4.1.5规则–方法声明

所所有的方法应该在它们使用前声明。

内部方法应该位于var语句后面。

这让那些变量包含在它的scope里更清楚。

方法体本身缩进1个tab。

“}”(右大括号)应该和方法声明处对齐。

function$(element){

if(typeofelement=='

string'

returndocument.getElementById(element);

else

returnelement;

}

这个规范可以和JavaScript很好的工作,因为在JavaScript里方法和对象字面量可以放在允许表达式的任何位置。

它使用内部方法和复杂结构提供最好的可读性。

functionlock(){

varids=Common.getCheckBoxValue("

checkboxs"

);

if(!

ids)

showError("

请选择需要冻结的操作员。

else{

if(showQuestion("

是否冻结这些操作员?

))

DWR.call("

partyService.lockOperators"

ids,function(){

showInformation("

冻结操作员成功"

showData();

});

}

}

2.4.1.6规则–命名

命名应该由26个大小写字母(A..Z,a..z),10个数字(0..9)和_(下划线)组成。

不要使用国际字符,因为它们可能不易读或者不能在任何地方都能容易理解。

不要在名字里使用$(美元符号)或\(反斜线符号)。

不要使用_(下划线)作为名字的首字母。

它有时被用来表示私有,但是在JavaScript中它实际上不提供私有性。

如果私有性很重要,使用提供私有性的私有成员。

大多数变量和方法名应该以小写字母开始。

必须使用new前缀的构造函数应该以大写字母开始。

JavaScript不会在省略new时报编译期警告或运行时警告。

不使用new时会系统可能会出现难以判断原因的异常情况,大写首字母规范是有效的预防措施。

公用函数库中有名为$的函数,用于方便的根据元素的id来获取这个object

2.4.1.7规则–语句

简单语句

每行应该包含至少一个语句。

在每个简单语句末尾添加一个“;

”(分号)。

JavaScript允许任何表达式作为语句使用。

这可能产生一些错误,特别是在插入分号时。

唯一可以当作语句使用的表达式是赋值表达式和调用表达式。

复合语句

复合语句是包含一个用“{}”(大括号)包围语句列表的的语句。

1,包围的语句应该再缩进1个tab。

2,“{”(左大括号)应该位于开始复合语句的行的末尾。

3,“}”(右大括号)应该新起一行并且和相匹配的“{”所在那行的起始位置对齐

4,当语句是控制结构的一部分时,所有语句都应该用括号包围,即使是单行语句,例如if或for语句。

这让添加语句更容易而且不会引起BUG。

标签

语句标签是可选的。

只有如下语句需要被标签标识:

while,do,for,switch。

return语句

具有值的return语句不应该使用“()”(圆括号)包围值。

返回值表达式必须和return关键字在同一行从而避免插入分号。

if语句

if语句应该使用如下格式:

if(condition){

statements;

}

}else{

}elseif(condition){

对于单行语句,也可以简化为:

if(condition)

statement;

statement;

else

for语句

for语句应该使用如下格式:

for(initialization;

condition;

update){

for(variableinobject){

第一种格式应该和数组使用。

第二种格式应该和对象使用。

注意添加到对象的prototype中的成员将被包含在遍历中。

通过使用hasOwnProperty方法来区分对象的成员是明智的:

if(object.hasOwnProperty(variable)){

}

对于单行执行的for语句,同样可以简化为

update)

while语句

while语句应该使用如下格式:

while(condition){

While语句也可以简化为:

while(condition)

switch语句

switch语句应该有如下格式:

switch(expression){

caseexpression:

statements;

break;

default:

statements;

break;

每个case和switch对齐,这避免了缩进过度。

每个case以及default代码块最后必须要有break语句,以避免流程进入设计思路的部分。

try语句

try语句应该使用如下格式:

try{

}catch(variable){

}finally{

2.4.1.8规则–空格

空行通过将逻辑相关的代码放到一起来增加可读性。

空格应该用于如下情况:

1,关键字后面跟“(”(左圆括号)时应该用一个空格隔开。

2,方法名和方法的“(”(左圆括号)之间不要有空格。

这利于区分关键字和方法调用。

3,所有的二元操作符,除了“.”(圆点)、“(”(左圆括号)和“[”(左中括号),都应该使用一个空格来和操作数隔开。

4,一元操作符和操作数之间不应该使用空格隔开,除了操作符是一个单词时,如typeof。

5,for语句控制部分的每个“;

”(分号)应该在后面跟一个空格。

6,每个“,”(逗号)后面应该跟一个空格。

2.4.1.9建议–其他建议

{}和[]

使用{}替代newObject()。

使用[]替代newArray()。

当成员名字为连续的整数时使用数组。

当成员名字为任意的字符串或名字时使用对象。

赋值表达式

不要在if和while语句的条件部分做赋值。

不要写不易懂的代码。

2.5CSS文件

2.5.1规范

项目使用符合W3C所定义的CascadingStyleSheets,level2(CSS2)规范的样式单语言。

原则上,项目中的CSS文件由专人统一开发、维护。

2.5.1.1规则–缩进文档

使用TAB对文档进行缩进,个属性/值之间换行分隔,以保证文档良好的可读性

.listBar{

color:

#000;

font-weight:

bold;

height:

26px;

2.5.1.2规则–命名

样式名使用英文(包括简写)单词和字母组成,样式名的第一个字符必须为小写字母,使用多个单词组成的样式名单词首字母大写。

.searchForm{

border-bottom:

1pxsolid#8DB0DB;

background-color:

#F9FFF4;

padding-top:

4px;

margin:

0px;

}……

重新定义的标签名,标签名全部使用大写字母。

TABLE{

font:

12pxSimSun,Tahoma,Verdana;

#333333;

empty-cells:

show;

2.5.1.3规则–注释

按照样式的分类为样式单文件添加注释,方便样式的扩展和修改。

/***按钮***/

.treeBtn……

2.6页面设计

2.6.1页面设计原则

Ø

使用广泛支持的技术。

兼容流行的浏览器及版本(如Firefox3,IE8.0等)为标准,同时照顾其他软件或低版本。

CSS样式和JavaScript代码注意复用,尽量提取公用部分以引用的方式供HTML文件使用。

不使用过小的字体不使用过大的图片,不使用过长的滚屏。

图片采用gif,jpg压缩格式,以减小页面下载数据量。

2.6.2页面常用模式

这部分内容需要随着需求设计的进行及时进行修订

2.6.2.1使用统一的JavaScript库

系统所有公用的JavaScript库保存在script目录下。

建议所有页面都引用common.js,该script会把公用的JavaScript一起引入页面。

示范:

scriptLANGUAGE="

type="

2.6.2.2使用统一的CSS文件控制页面样式,便于系统换肤

在公用JavaScript库theme.js中,会根据用户保存在Cookie中的样式变量,选择不同的css文件,控制页面样式。

系统的缺省样式文件是css/style.css文件,其它的样式文件也应该放在这个目录下。

页面只需要引用common.js文件,theme.js文件会通过common.js被自动加载,无需其它代码。

2.6.2.3页面主框架(TODO)

页面主框架分为三个frame

顶部框架,此框架主要用于显示系统主要功能菜单和登录用户信息,页面元素包括:

logo,主菜单,当前用户信息,注销按钮等。

左侧框架,此框架主要用于显示业务功能菜单,界面元素包括:

树状导航菜单。

右侧主框架,此框架主要用于显示各功能模块的操作页面。

主显示框架如下图所示:

(下图的样式只供参考)

图表1主显示框架

2.6.2.4页面流转模式

在本系统中,使用JavaScript代码实现页面的流转,不依赖于任何框架。

页面流转共有以下几种类型:

1.页面内部不同DIV的切换。

这种方式的好处是速度快,缺点是不支持浏览器的回退。

适合用于关联性很强的两个页面之间,例如列表和明细。

Funlib.js中封装了setPages和switchPage方法来实现DIV切换。

示范代码:

//页面初始化

functionload(){

showNav();

setPages(["

pwdDetail"

"

detailForm"

l

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1