1.注释你的代码!
许多程序员在看他们仅数月前所写的代码时头疼欲裂,毫无头绪,事实上他们还正在为以后制造麻烦! 老代码艰涩难读的原因之一是它们缺乏有效的注释. 在ASP里(如果用VBScript的话),你可以用单引号了注释你的代码,下面就是一个例子:
<%
' Create a variable to hold the user's name
Dim strName
...
%>
如果你用JavaScript,你可以用//来注释代码,下面是JavaScript注释的一个例子:
<%
// Create a variable to hold the user's name
var strName;
...
%>
但甚麽时候我们该注释代码呢? 在代码的世界里并不存在"过量注释"的问题,因此只要你觉得这个特殊的地方需要注释,就应该毫不犹豫地加上注释! 一般说来,应注释定义的新变量,注释过程和函数,注释某段相关的代码(解释编写这段代码的意图)以及代码中特别难或特别复杂的某些行.
通过对代码的详尽注释,你的ASP应用程序的可维护性将大大提高. 从某种意义上说,注释是一门不为人知的科学,如果不愿意花时间去书写注释,那么在漫长的开发旅程中将黾有矶辔尬降耐纯? 可以在写ASP代码前先写下相应的伪代码,这也是一种注释,从此,你将走上注释之路.
2.得会写"纯天然"的ASP代码!
今我们常常会发现,许多程序员对DrumBeat或Visual InderDev之类GUI的ASP开发工具有着深深的依赖性. 这些开发工具并不赖,但如果你离开了这些GUI工具就不知道该怎么办的话,那么它们就是有害的!
为甚麽说它们是有害的呢? 好,让我们设想一下,一旦你的手头正好没有这些GUI的开发工具,但你的代码出了些问题,你该怎么办? 很明显,你陷入了困境. 抑或你所用的GUI工具不能完成你所需要的特殊的功能, 而你已经对这些开发工具有着很强的依赖, 你将不知道如何去完成前面的开发任务.
我一向的看法是,ASP初学者在掌握了书写ASP代码的基本功前,应该远远儿地离开那些GUI的开发工具. 换言之,就是用Notepad去写你的ASP代码! 你还可以看一篇我关
于"纯天然"ASP代码的专门论述文章.在
http://4guysfromrolla.com/webtech/020299-1.shtml
3.知道哪儿能找到你所需要的信息!
不管用何种程序设计语言来开发应用程序,一个重要的部分就是得知道该去哪儿找到你所需要的信息! 每个人在开发的过程中总会遇到这样那样的问题的(有些人遇到的麻烦更多些), 所以知道哪儿能找到你所需要的信息是势在必行的.
在国内关于ASP编程的书籍还不多,但你能在许多Internet站点上得到帮助,网上有许多站点象这个站点一样充满了有用的信息,我常去的几个讲ASP的站点是:
ASPWire.com Headlines http://4guysfromrolla.com/webtech/news.shtml
ActiveServerPages.com ASP FAQ http://www.activeserverpages.com/learn
ASP FAQ on 4Guys http://4guysfromrolla.com/webtech/faq/factoc.shtml
ASP Today http://www.asptoday.com/
现在你知道该去哪儿找到你所需要的信息了吧? 你已经赢得了半个战役! :)
4.采用明智的目录结构!
我常看到一些站点采用混乱的文件名和目录结构,文章用日期来命名,目录名不容易理解,让人不知道这目录里放的是甚麽文件. 如果你的文件名能描述这个文件是干啥的,你的目录名有明确的含义,这将对你站点的冲浪者和你都大有好处.
我们可以假设你建立了一个关于ASP的站点,其中有一部分内容是关于如何学习ASP的. 把有关学习ASP的Scripts都放在一个叫/learn的目录下是相当明智的. 如果你有一个讨论数据库的文件,那么最好把这么文件命名为dbQuestions.asp. 现在,我们只要飞快地在目录间扫视一遍,马上就能明白/learn/dbQuestions.asp这个文件是讲甚麽内容的. 如果这个文件被命名为/webtech/051399-1.shtml,你将不知所云. :)
5.让其他人来看看你的代码!
你是否曾被指派去看看其他人写的代码呢? 也许你会给这段代码加上一些新的特性,也许会改正一个错误. 你或许已经发现,去阅读和理解他人编写的代码是相当吃力的(如果他们的代码不是写得很好并没有良好的注释). 我发现,让他人来看看你的代码并确认他们能很容易地读懂它是个相当好的主意. (最好早些这么做,别等到你已经写完你的全部代码!)
而且让其他人来看看你的代码,你将从同事们的评论中知道你的文档是否完备而详细.
这样你还能交到些好朋友(或者是敌人,这取决于你的代码的可读性!). :)
6.命名变量时采用前缀!
如果你给你的变量取类似i, j, x1, stuff或blah之流的变量名,那么我敢保证你使用的是命名糟糕的变量! 试想一下在阅读代码时,你看到一行象这样的语句:
x1 = 5
这行语句是甚麽意思呢? x1=5? 这行代码要干些甚麽呢? (这种情况在你过些日子重读你自己的代码时,尤其让你迷惑!)
首先,你得给变量取有意义的变量名. 如果这个变量将要用来储存用户名, 它最好命名为strName,不是a或其它没有任何含意的名字. 此外,你最好使用前缀来说明你将储存在这些变量里的数据类型. 下面是常用的变量类型的前缀表. 由于ASP只有一种
variants的变量类型, 因此没有外部或显式地类型定义. (虽然你可以用已定义的诸如CInt(), CStr()之类的函数)
前缀符号
Integer i
Long lng
Single sgl
Double dbl
String str
Boolean bol
Object obj
我强烈建议采用这种命名惯例,或你自己的命名习惯. 不管你用的是何种命名规范,重要的是你要一直坚持这么用下去! :) 你将发现这个站点上绝大部分的代码段都采用了这种变量命名规范.
7.文档,文档,文档!
技巧10强调的是注释代码的重要性. 编写外部文档(单独的,不是指代码间的注释)也是相当重要的. 很少有程序员为他们的ASP应用程序撰写正式的技术规范. 但这是必须的,特别是随着代码量的不断膨胀. 阅读源代码,甚至是有着详细注释的源代码,也比读一份优秀的技术规范要晦涩得多. 此外,外部文档将让非程序员从技术层次上了解你的程序是干嘛的.
我有着丰富的开发经验. 我曾参与开发的一些项目从功能到技术都有着详尽的文档.
另外一些毫无远见的项目令人惊讶,这些项目没有任何文档. 后者的活儿都很糙,而且难以维护和升级.
8.使用包含文件!
使用包含文件能使你的ASP代码模块化,样能提高代码的复用性,节省开发时间(也更不容易出错!). 这儿有一篇4Guys的关于包含文件的文章,讲的是为甚麽要用包含文件以及怎么使用它们.
详细请看Using Include Files:
http://4guysfromrolla.com/webtech/faq/Beginner/faq6.shtml
9.使用显式变量定义(Option Explicit)!
在ASP代码页的顶部,你可以插入这样的声明:
Option Explicit
插入这个声明的目的是告诉ASP解释器你要显式地定义你的所有变量(用Dim来声明变量). 这是个好主意! :) 用Option Explicit会让你更容易发现拼错变量名带来的错误.
这样也会使你的代码更具有可读性. 一个变量将不会凭空出现在代码中. 而且,所有的变量在使用前都必须定义!
这儿有一篇4Guys的关于使用Option Explicit的好文章!
Option Explicit: Use It!
http://4guysfromrolla.com/webtech/faq/Intermediate/faq6.shtml
10.在你的ASP页面顶部定义变量!
在上一个技巧里,我指出不用显式变量定义(Option Explicit)的ASP程序中的变量神秘地出现而且难以读懂. 同理,如果在ASP代码页中随处定义变量,程序的可读性也将一蹋糊涂.
ASP最好在定义在这两个位置: ASP代码页的顶部,在所有ASP命令或逻辑执行之前,或是专有变量将被使用的代码块的前部. 别在ASP代码页的半当中定义一个只使用一次的变量. 这看起来并不会怎么样,但这会让看你的代码的人迷惑!
在您离去之前,再年一下下面的总结:
初学者编程技巧总结:
你已经满怀希望地读完了初学者的编程技巧. 我保证如果你坚持按前文所述的去做并在实践中去体会这些技巧,你的编程水平将很快得到提高! 现在这年代,具有可读性和可维护性的代码越来越难得了. 这些努力会提高代码的质量. 刚开始的时候,可能会费些气力,但随着时间的推移,这么做将节省宝贵的时间,减少你和你们公司的开支!