ASP编写程序的风格!
ASP的入门者往往将程序写得很乱,而ASP的程序又是界面结合得那么紧。
各位高手有什么的好的程序设计风格,或者应该注意的细节问题,拿出来交流下吗?
问题点数:100、回复次数:27Top
1 楼jamkar(平凡)回复于 2003-09-04 09:08:24 得分 0
upTop
2 楼Primer2002cn(教官)回复于 2003-09-04 09:11:12 得分 5
写程序我比较注重格式,命名法和缩排,我都比较在意,很多朋友说我写程序太累,其实习惯之后不比他们慢!我一般用匈牙利命名标准确性!Top
3 楼lions911(--Administrator--)回复于 2003-09-04 09:16:36 得分 0
写程序我比较注重格式,命名法和缩排,我都比较在意,很多朋友说我写程序太累,其实习惯之后不比他们慢!我一般用匈牙利命名标准确性!
==============================================================
写程序我比较注重格式,命名法和缩排,我都比较在意,很多朋友说我写程序太累,其实习惯之后不比他们慢!我一般用土耳其命名标准确性!
Top
4 楼abc_rain()回复于 2003-09-04 09:16:37 得分 90
二、文件结构
1、 ASP文件头部必须含有option Explicit语句
2、 ASP文件头部应该有文件的如下的描述:重要功能,建立者,建立日期,版本号,及版权申明。申明样例如下:
‘**********************************************************
‘* index.asp
‘* Copyright (c) Company 2000-2002 *
‘* All rights reserved *
‘**********************************************************
‘**********************Description*************************
‘* Main function detail: *
‘* Author:: Addson *
‘* Date: 2002/12/14 *
‘* Version: 1.0.0.0 *
‘**********************************************************
3、 如果文件需要对数据库进行操作,首部应包含Setconn_NoEnc.asp文件,尾部包含closeconn_NoEnc. Asp文件。
4、 每个ASP文件必须包含6个文件:
1) **Defs_NoEnc.asp,
2) CommFuns_NoEnc.asp,
3) CommFuns_NoEnc.js,
4) CommFuns_NoEnc.vbs
5) Head_NoEnc.asp或Head1_NoEnc.asp(根据asp文件所在目录的不同选择不同的文件)
6) foot_NoEnc.asp
关于head_NoEnc.asp及foot_NoEnc.asp的的主要作用是为了方便更改文件的公用信息如菜单名称、及页面最下部的版权等信息。如果有必要还要包含一个cleanHistory_NoEnc.asp的文件。这些文件的主要目的为写代码时又发现需要加另外的function时可以插入代码。
5、 语句的缩进包括但不限于以下情况:
1) 使用End if时,在If语句后缩进。
2) 在Else语句后缩进。
3) 在Select case语句后缩进。
4) 在Case语句后缩进。
5) 在Do语句后缩进。
6) 已经用了行接续符分割的语句的各个行要缩进。
7) 在With语句后要缩进。
6、 如果If语句、For语句、Do语句或While语句嵌套大于或等于两层,则在end if ,next ,loop, wend后要加上注解说明是与哪一个对应的。要注意的是,在循环中的变量也不允许用i,j,也要用有意义的变量。
循环变量的命名规则:nmf_类型+变量名。如for nmf_intArrBound = 0 to ubound(nmm_arrNameList) …
7、 对每一个函数(Function)应该说出其功能、输入参数值、输出值(即返回值,分为正常情况返回什么值,异常情况返回什么值),如果返回值有一定的意义(比如为布尔值)时应说明其含义。
样例:
‘Author:
‘Verision:
‘Date:
‘[Function Name]:
‘Function:
‘Para:
para1: name type default
para2: name type default
‘Return:
Normal:
Abnormal:
‘
实例:
‘Author: BOB Lee
‘Version: 1.0
‘Date: 2002-11-4
‘getNameAndSexFromDB(nmm_strnameFieldId,nmm_strsexFieldId):
‘Function:主要功能是根据传入的两个参数值,到Database中取回相应的字符串类型的name和sex的值并返回用逗号分隔的一个字符串。如果传入的两个参数值无效或在Database中不存在,则返回一个空串
‘Para;
nmm_strnameFieldId: 在Database中姓名的ID值,有效值应为数字,要做非数字检测
nmm_strsexFieldId: 在Database 中性别的ID值,有效值应为数字,要做非数字检测。
‘Return:
Normal:返回用逗号分隔的姓名和性别组合的字符串
Abnormal:因传入非法参数、或没能从database取得或程序异常,将返回一个空串。
8、 如果If…else…end if 嵌套太深,应该定义变量,减少层的嵌套,即前部分的判断值为后一条件的判断的条件。
9、 一个函数(Function)或过程(sub)只实现一个功能。
10、如果一行太长,应使用行接续符且每行对齐,如:
nmm_strSelectSQL= ”select tblAssemblyDetail.*,” _
“tblInventory.Description, ” _
“tblInventory.Serials from tblInventory.Right join “ _
“tblAssemblyDetail on ……..”
11、在**Defs_NoEnc.asp中定义一全局变量名叫DEBUG,由这个变量来控制是否显示调试用的信息,在项目开发过程中所有的信息都用两个公共函数(function)来负责显示:一个为showDebugInfos:这个函数专门用来显示所有出错信息,出错信息不允许人为加工,要直接输出程序本身报错信息以便定位。(此出错信息只是测试调试用,如果出错信息是给用户看的,不要用这个Function,用下面介绍的Function来显示。)。showDebugInfos的测试信息的显示就由DEBUG变量控制。;另一个为NMMessageDlg,用来显示与用户交互的信息。项目发布后将DEBUG改成False来屏蔽所有的测试用的信息。
12、脚本语言的标记必须单独一行。如Asp的<%%>,PHP <? ?>等。
13、页面输出的信息如提示框,不论是ASP、VBS或Javascript,都必须定义成常量再调用。如:
Const NMC_STR_DELERR="删除操作被取消,有相关记录在使用被删除信息。"
Const NMC_STR_ERR="数据库操作错误,操作被取消。"
Const NMC_STR_INSERR="数据库操作错误,新增操作被取消。"
这些常量定义在**Defs_NoEnc.asp文件中。对于javascript和VBScript中要使用的常量也定义在这个文件中。**Defs_NoEnc.asp文件是每个其它文件必包含的,且必须是第一个被包含的文件。**Defs_NoEnc.asp文件中的每一个常量必须有明确说明是哪个文件所有,具体样例如下:
‘‘**********************************************************
‘* OADefs_NoEnc.asp
‘* Copyright (c) Company 2000-2002 *
‘* All rights reserved *
‘**********************************************************
‘**********************Description*************************
‘* OA项目中所有的常量参数的定义文件 *
‘*
‘* Author: Addson *
‘* Date: 2002/12/14 *
‘* Version: 1.0.0.0 *
‘**********************************************************
‘[Common] 定义被两个及两个以上文件使用的变量
‘开始定义
‘[index.asp]
‘定义属于index.asp文件的常量
‘[gwqfwq.asp]
‘定义属于gwqfwq.asp文件的常量
14、Javascript,Vbscript脚本的标记必须统一用标准的,规定如下:
开始结束标记必须一模一样,但太小写没关系。这里的一模一样是指其中的引号、空格不能多也不能少,否则就无法用程序清除其中的注解了。
javascript:
<SCRIPT LANGUAGE="JavaScript">
<!--
开始你的代码
//-->
</SCRIPT>
VBScript:
<SCRIPT LANGUAGE="VBScript">
<!--
开始你的代码
//-->
</SCRIPT>
15、所有applicatoin级的变量(也就是整个系统运行时,各个用户共用的变量),如myDSN站点名字,站点IP等,一律规定必须统一在global.asa文件中定义,其它页面引用就行如:
sub Application_OnStart()
Application(“myDSN”) = "Driver={SQL Server};Server=192.168.1.252;
Database=Release_EGovernment;Uid=nmkspro;Pwd=123;"
Applicaton(“Domain”) =” http://newoa3. .com.cn”
end sub
以后其它页面要用到以上变量定义的值,就可以调用。
如setConn_NoEnc.asp文件中:
<%
Dim nmm_objConn,nmm_strmyDSN
If NOT IsObject(nmm_objConn) Then
Set nmm_objConn = Server.CreateObject("ADODB.Connection")
nmm_objConn.open Application(“myDSN”)
End If
%>
Top
5 楼sdliubo(Fuck Japanese!)回复于 2003-09-04 09:22:46 得分 1
最好是做一个模板
这样新生成的方便可以用模板来直接写代码
既风格一致又提高了效率Top
6 楼inelm(木野狐)回复于 2003-09-04 09:29:07 得分 1
我也是缩进成习惯了, 命名尽量按照驼峰式命名规则(camel...?),哈
一般我最讨厌别人写的没缩进的程序,用拼音命名变量的程序,碰到这样的我看都不要看。Top
7 楼laker_tmj(laker)回复于 2003-09-04 09:40:20 得分 0
up learnTop
8 楼sinzy(.问号鱼)回复于 2003-09-04 09:49:46 得分 0
嗯,要让代码像诗句一样优美……Top
9 楼chinascprogram(学习者)回复于 2003-09-04 09:51:27 得分 0
继续
Top
10 楼sunyc(附庸风雅)回复于 2003-09-04 09:54:53 得分 0
学习ingTop
11 楼BainStudio(胖胖狗)回复于 2003-09-04 09:56:44 得分 0
abc_rain()
的编写构成已经很不错了.Top
12 楼CrazyDeng(DengWei)回复于 2003-09-04 09:57:42 得分 1
我写也是比较注重缩进和命名规范,也喜欢把常用的函数写到模块里,用到的时候include就行了,主要是要重视这个web系统的结构,有了整体设计后就能把相关的东西理清。Top
13 楼toffee(飞天)回复于 2003-09-04 10:38:25 得分 1
learn
代码格式规范化!!Top
14 楼laker_tmj(laker)回复于 2003-09-06 11:06:38 得分 0
to sdliubo(Fuck Japanese!)
最好是做一个模板
能多談一點給些啟示嗎,謝謝!!!Top
15 楼sportdog(会编程的流氓狗)回复于 2003-09-06 11:37:28 得分 0
以前写asp程序就跟面条一样,现在做asp.net(c#),我靠!害苦了我啊!Top
16 楼xfyz(晓风)回复于 2003-09-06 12:43:07 得分 0
我喜欢功能代码模块化,以免日后重复写!Top
17 楼knot(在路上)回复于 2003-09-06 20:15:41 得分 0
uuu...p.Top
18 楼falcon36017(老猎)回复于 2003-09-06 21:31:37 得分 0
我也是从ASP转学C#ASP。NET 现在郁闷中啊Top
19 楼sear(zhangrui)回复于 2003-09-06 21:40:28 得分 1
我在命名的时候一般用匈牙利命名方法 具体的程序前都有功能描述,开发者,版本号,开发时间
如果是函数一般都有 函数调用方法 传入参数说明 传出参数说明 等等
一般我还是大多采用函数封装的方法 比如更新数据库 专门写一个函数 只要是与更新有关的 都写到update.asp程序里 这样以后好修改
另外就是关于格式问题 一般才用缩进格式 还有就是注释 一般我平均2行就有一个注释
这样以后不关是版本生计 还是程序修改 都有变阅读Top
20 楼dufu(独夫)回复于 2003-09-07 03:28:51 得分 0
1、平时注意编写收集函数,我用一个目录专门存放,一个函数一个文件,名字对应。
到时候用include就可以了,客户端脚本也行。
2、多注释
3、缩进是必然的,不同功能之间用注释行分隔
4、文件名和变量宁愿长些,也要容易懂,能用什么什么命名法当然好
5、如非必须,尽量不要在一个页面中完成太多的功能
6、尽量避免服务器脚本和客户端脚本混编,能写成过程最好。
Top
21 楼knot(在路上)回复于 2003-09-07 14:06:58 得分 0
楼上讲的不错~~掌声。Top
22 楼159511454(顺顺利利)回复于 2003-09-07 15:52:09 得分 0
我以前刚学ASP也是和面条一样的,俣哈哈~
现在稍稍好点了,会用include了,呵呵,这样子比较好,有空多多看一些动网的好程序和snsn的好程序~
http://www.snsn.net/
他们开发出来的动感购物不错哈~
还有动网论坛的程序,把他看完,半结合自已的习惯。你也快把ASP的精华学到一半了~Top
23 楼SUN1842(sun)回复于 2003-09-07 16:22:13 得分 0
1.引用文件在最前面
2.asp代码尽量集中在代码头部
3.适当缩进Top
24 楼qunluo(最爱白菜)回复于 2003-09-07 19:48:22 得分 0
case1;
模块
case2;
包含
是我的最习惯的!Top
25 楼cloudchen(cloudchen)回复于 2003-09-07 20:11:00 得分 0
定义变量尽量都写在一起,按不同类别分行写Top
26 楼opolmzy(ASP)( 一寸木)回复于 2003-09-07 21:42:13 得分 0
一定要
看书+写代码Top
27 楼BainStudio(胖胖狗)回复于 2003-09-07 21:52:09 得分 0
看看老外的代码怎么写的.你可以看看Microsoft的JS脚本.虽然语言不一样.编码规则都是相同的.Top
28 楼kuizis(kuizis)回复于 2003-09-08 13:30:00 得分 0
upTop



