<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>中文 &#187; lovelymayi</title>
	<atom:link href="http://software.intel.com/zh-cn/blogs/author/lovelymayi/feed/" rel="self" type="application/rss+xml" />
	<link>http://software.intel.com/zh-cn/blogs</link>
	<description></description>
	<lastBuildDate>Sat, 26 May 2012 06:34:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>代码规范</title>
		<link>http://software.intel.com/zh-cn/blogs/2010/05/04/400003694/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2010/05/04/400003694/#comments</comments>
		<pubDate>Tue, 04 May 2010 02:04:33 +0000</pubDate>
		<dc:creator>lovelymayi</dc:creator>
				<category><![CDATA[博客征文专栏]]></category>
		<category><![CDATA[软件开发工具]]></category>
		<category><![CDATA[多核]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2010/05/04/400003694/</guid>
		<description><![CDATA[程序代码编写统一规范方案 为了规范程序代码编写，提高代码可读性，降低后期维护成本，提高办公效率，建议以后编写的程序按以下几条规范进行： 一、 统一VBSCRIPT和ASP程序编写规范： （一）变量命名规则： 由于在ASP和VBSCRIPT中因为不需要声明变量，同时不能声明变量的类型，但为了提高代码的可读性，养成好的开发习惯，对于本系统开发的变量命名统一规则如下： 1. 使用Dim、Public、Private声明变量； 例如：Dim iStudentNum 2. 变量类型的体现： a、 整型变量：以小写字母i开头，后面跟变量标示符，英文单词的第一个字母大写。 例如：下面声明一个存储数据库记录多少的变量 Dim iResordsetNumber b、 单精度实体变量：以小写字母f开头，后面跟变量标示符，英文单词的第一个字母大写。 c、 双精度实体变量：以小写字母d开头，后面跟变量标示符，英文单词的第一个字母要大写。 d、 字符型变量：以小写字母s开头； e、 布尔型变量：以小写字母b开头； f、 数组变量：数组类型+“_”+“Array”+“_”+“变量标示符” 例如：定义一个存储学生成绩的数组(存储单精度实体类型变量) Dim f_Array_StudentMark 3. 变量标示符要符合标示符标准，同时容易理解，尽量使用英文单词来代替，尽量避免使用缩写或简写。 例如：存储校友通讯录的字符串变量定义为： Dim sSchoolfellowAddressList; 虽然这样定义在输入的时候比较麻烦，但是，它大大提高了程序的可读性，见其变量命名就知其意。在做变量查找的时候也比较方便。 速度和性能总是不能两全，为了方便后者我们也就只有牺牲速度。 4.在变量定义后面加变量功能定义的注释。 （二）常量命名规则： 类型体现和上面一样，不一样的地方是，所有后面的标示符全部大写，例如： 定义一个存储语言种类的的字符型常量： Const sLANGUAGE_TYPE=”Chinese” (三)功能函数、过程命名规则： 1. 使用Function声明函数，用Sub声明过程； 2. 函数名或过程名的第一个字母大写，且后面的每个单词第一个字母大写。 例如： Function CheckValidityOfInput(sStuentMark) ‘此处写代码 ………… End Function [...]]]></description>
			<content:encoded><![CDATA[<p>程序代码编写统一规范方案<br />
为了规范程序代码编写，提高代码可读性，降低后期维护成本，提高办公效率，建议以后编写的程序按以下几条规范进行：<br />
一、 统一VBSCRIPT和ASP程序编写规范：<br />
（一）变量命名规则：<br />
由于在ASP和VBSCRIPT中因为不需要声明变量，同时不能声明变量的类型，但为了提高代码的可读性，养成好的开发习惯，对于本系统开发的变量命名统一规则如下：<br />
1. 使用Dim、Public、Private声明变量；<br />
例如：Dim iStudentNum<br />
2. 变量类型的体现：<br />
a、 整型变量：以小写字母i开头，后面跟变量标示符，英文单词的第一个字母大写。<br />
例如：下面声明一个存储数据库记录多少的变量<br />
Dim iResordsetNumber<br />
b、 单精度实体变量：以小写字母f开头，后面跟变量标示符，英文单词的第一个字母大写。<br />
c、 双精度实体变量：以小写字母d开头，后面跟变量标示符，英文单词的第一个字母要大写。<br />
d、 字符型变量：以小写字母s开头；<br />
e、 布尔型变量：以小写字母b开头；<br />
f、 数组变量：数组类型+“_”+“Array”+“_”+“变量标示符”<br />
例如：定义一个存储学生成绩的数组(存储单精度实体类型变量)<br />
Dim f_Array_StudentMark<br />
3. 变量标示符要符合标示符标准，同时容易理解，尽量使用英文单词来代替，尽量避免使用缩写或简写。<br />
例如：存储校友通讯录的字符串变量定义为：<br />
Dim sSchoolfellowAddressList;<br />
虽然这样定义在输入的时候比较麻烦，但是，它大大提高了程序的可读性，见其变量命名就知其意。在做变量查找的时候也比较方便。 速度和性能总是不能两全，为了方便后者我们也就只有牺牲速度。<br />
4.在变量定义后面加变量功能定义的注释。<br />
（二）常量命名规则：<br />
类型体现和上面一样，不一样的地方是，所有后面的标示符全部大写，例如：<br />
定义一个存储语言种类的的字符型常量：<br />
Const sLANGUAGE_TYPE=”Chinese”<br />
(三)功能函数、过程命名规则：<br />
1. 使用Function声明函数，用Sub声明过程；<br />
2. 函数名或过程名的第一个字母大写，且后面的每个单词第一个字母大写。<br />
例如：<br />
Function CheckValidityOfInput(sStuentMark)<br />
‘此处写代码<br />
…………<br />
End Function<br />
3. 函数名或过程名要容易读，简单明了。<br />
4. 在函数前面加注释，说明函数功能、参数说明、创建日期、修改日期、修改原因、创建人、修改人等相关信息。<br />
（四）代码缩进标准：<br />
为了提高代码的美观型和易读性，在此提出代码编写的版面格式：区间与区间之间以一个为间距。<br />
例如：<br />
‘***********************************************************<br />
‘功能：检测输入字符串中的单引号，如果有则把原来的一个单引号变成两<br />
‘ 个单引号，两个变成四个，依次类推，从而避免SQL语句执行错误。<br />
‘创建人：XXXX<br />
‘创建时间：2002-7-6<br />
‘修改时间：<br />
‘修改原因：<br />
‘修改人：<br />
‘输入参数说明：sInputString：需要进行单引号检测的字符串<br />
‘***********************************************************<br />
Function CheckValidityOfInput(sInputString)<br />
Dim iCirculationControl ‘控制循环<br />
Dim sApartString ‘分离字符检测<br />
Dim iLenOfInput ‘输入字符长度<br />
iLen= Len(Trim(sInputString))<br />
For iCirculationControl = 1 To iLen<br />
If Mid(sInputString, iCirculationControl, 1) "'" Then<br />
sApartString = sApartString &amp; _<br />
Mid(Trim(sInputString), iCirculationControl , 1)<br />
Else<br />
sApartString = sApartString &amp; "''"<br />
End If<br />
Next<br />
CheckValidityOfInput = sApartString<br />
End Function<br />
二、 统一JavaScript程序编写规范：<br />
JavaScript的命名规则和上面大部分相同，唯一不同的地方是：变量使用Var来声明，在声明结束后以分号（；）结束。<br />
函数的代码要求层次清楚，该写在下一行的地方尽量往下一行写，不要在一行中完成所有代码，这样看起来不容易，检查错误也特别费时。<br />
在写函数的时候记着加注释内容，以便以后维护时快速了解程序功能。<br />
下面是一个JavaScript程序：</p>
<p>//***********************************************************************<br />
//功能：对Form中的Text,Password,TextArea对象进行单引号处理，解决由于单引号<br />
// 起的系统错误。<br />
//创建人：XXXX<br />
//创建时间：2002-7-8<br />
//修改时间：<br />
//修改原因：<br />
//修改人：<br />
//**********************************************************************<br />
function CheckElement()<br />
{<br />
var sNeedCheck=""; //检测属于INPUT标签的内容<br />
var iControlInput=0; //控制循环<br />
var iLocationInput=0; //控制位置<br />
var iLengthInput=0; //存储字符串长度<br />
var sCheckingInput=""; //正在检测的字符<br />
var sReplaceInput=""; //替换字符<br />
var sHaveCheckInput=""; //已经检测的字符<br />
var objInput; //存储INPUT对象；<br />
var objTextArea; //存储TextArea对象<br />
var iControlTextArea=0;<br />
var iLocationTextArea=0;<br />
var iLengthTextArea=0;<br />
var sCheckingTextArea="";<br />
var sReplaceTextArea="";<br />
var sHaveCheckTextArea="";<br />
//检测页面中的Text和Password对象中的单引号<br />
for (i = 0; i &lt; document.all.tags('INPUT').length; i++){<br />
objInput = document.all.tags('INPUT')[i];<br />
if(objInput.type=='text'|| objInput.type=='password'){<br />
sNeedCheckInput=obj.value;<br />
iLengthInput=sNeedCheckInput.length;<br />
for(iControl=0;iControl&lt;iLength;iControl++){<br />
sCheckingInput=sNeedCheckInput.charAt(iControl);<br />
if(sCheckingInput==”’”)<br />
sReplaceInput=”’’”;<br />
else<br />
sReplaceInput=sCheckingInput;<br />
sHaveCheckInput=sHaveCheckInput+sReplaceInput;<br />
}<br />
}<br />
objInput.value=sHaveCheckInput;<br />
}<br />
//检测页面中的TextArea对象中的单引号<br />
for (i = 0; i &lt; document.all.tags('TEXTAREA').length; i++){<br />
objTextArea = document.all.tags('TEXTAREA')[i];<br />
if(objTextArea.type=='text'|| objTextArea.type=='password'){<br />
sNeedCheckTextArea=obj.value;<br />
iLengthTextArea=sNeedCheckTextArea.length;<br />
for(iControl=0;iControl&lt;iLength;iControl++){<br />
sCheckingTextArea=sNeedCheckTextArea.charAt(iControl);<br />
if(sCheckingTextArea==”’”)<br />
sReplaceTextArea=”’’”;<br />
else<br />
sReplaceTextArea=sCheckingTextArea;<br />
sHaveCheckTextArea=sHaveCheckTextArea+<br />
sReplaceTextArea;<br />
}<br />
}<br />
objTextArea.value=sHaveCheckTextArea;<br />
}<br />
}</p>
<p>三、 系统性能提高，代码规范：<br />
1.在ASP页面内，凡是使用CreageObject()创建的对象(Com、Recordset等)，对于这些变量，应当在该页结束进行对象释放：即<br />
Set 对象变量名=Nothing<br />
2.数据库打开以后在不用的时候（通常是本页最后面），需要对连接进行关闭；<br />
3.对于SQL语句，存储过程，尽量避免使用*来取所有字段,为了代码的易读性，SQL关键字要求全部大写，字段部分小写。<br />
例如：<br />
SELECT name,age,birthday,telephone,address FROM SchoolFellow.Address WHERE name=’xxxx’ ORDER BY birthday DESC<br />
4.在ASP页中所有属性值尽量使用双引号括起来，特别是有属性Value的值，不要因为省时间而把双引号去掉（有的地方虽然可以去掉，程序不会出现错误，但，在有的地方去掉双引号会引来更多的麻烦。）<br />
例如：<br />
&lt;INPUT type=”text” id=”ClassID” name=”ClassID” value=””&gt;<br />
在这个例子中，如果把Value属性值的单引号去掉，如果数据库中出来的值有空格，空格后面还有值，结果，显示的内容只有空格前面的内容，而后面的内容就会丢失。这只是其中一种情况，其他还有很多未知情况发生。<br />
5. 配对标签问题：对于象<a></a>之类的标签，要注意检查配对的位值，有没有结束标志。<br />
6. 对于需要输入字符串，且需要使用SQL语句的地方，需要进行单引号处理，调用/include/CheckQ.asp中的两个方法（一个是客户端处理，一个是服务器端处理，根据需要进行调用，安全性要求高的地方多数情况下采用服务器端处理。）之一。<br />
7. 为了提高安全性，能使用ASP编写的代码，尽量采用ASP编写，在服务器端运行，不让用户看到代码。<br />
8. 对于安全性要求特别高的地方，建议采用三层结构：使用VB或Delphi编写商业逻辑层代码(COM)，尽量把数据库的连接部分封装到组件中，提高安全性能，通过组件和数据库交流。<br />
9. 对于网站的安全性，应该采用好的断口扫描软件，查看网站已经打开的断口，把不安全的断口给关闭。<br />
四、 养成写开发文档的习惯：<br />
对于每一个页面设计（前接页，后接页），包括功能说明，页面设计，页面名称，存放位置等，应当有相应的文档记载。对于发生改动的地方，需要保留原来的部分（注释或备份），并说明备份文件存放的地方，改动时间，修改人。<br />
对于程序部分，应该有相应的设计流程，改动的时候，也需要设计改动流程图，以便以后进行对比，和查找问题所在位置，以及问题的严重性分析。</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2010/05/04/400003694/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

