当前位置:首页 > 网站技术 > 经验之谈

给学习编程的朋友几点建议(2)

...

三、程序中要有详细的注释

  我有的时候看到人家编的程序,我简直受不了:他的程序里面几乎从来没有一个注释。如果你这样做了,你能保证过一年半载的还看得懂吗?——什么?你看得懂?有两个可能:这么长时间里,你一共才编了这么一个程序,而且只有几十行百来行。或者编了几个程序,都只有七八行。如果你编了几个大程序,每个几千行,你再回来看看半年前的那个,你试试。

  我记得98年我刚学Visual Basic时,我把小时候玩过的游戏《华容道》和在其它电子玩具上的游戏《黑白棋》移植到了计算机里,过了没多久,我再看我的《华容道》时,我已经看不懂了。——注意,我是有注释的,但还是看不懂。所谓看不懂,并不是看不懂其中的语句,而是看不懂某一个语句在整个程序段里起的是什么作用。

  后来,我就继续把注释做得更详细些。比如

◆说明每一个变量所表示的内容,取值范围
'------------申明变量-------------
Dim ShiFouYouQiZi(0:63) As Byte '某个位置是否有棋子的标志,取值0-2
                '1表示有玩家的棋子
                '2表示有电脑的棋子,
                '0表示没有棋子

 

◆说明每个过程的功能,参数,返回值
Public Function MakePath(ByVal OldPath As String) As String
  '一般情况下,可以用App.Path & "shuju.dat"来表示当前路径下的shuju.dat
  '但是如果用户把程序装在一个驱动器的根目录下,就会出错,
  '比如C盘,上例将返回“c:shuju.dat”
  '这个过程的功能是将不以“\”结尾的路径后添加“\”
  'OldPath是没有处理过的路径字串
  '返回处理过的路径字串
  '使用方法:MakePath(App.Path)&"shuju.dat"
  MakePath=OldPath
  If Right(MakePath,1)<>"\" Then MakePath=MakePath+"\"
End Function

 

◆说每一个程序分支的情况
'-----------If-Else-End if结构---------
If Rs.EOF Then
  '没有查到相应的用户信息,没有符合条件的用户
  Msgbox("查无此人!")
Else
  '有符合条件的用户记录
  '以下语句略
End If

四、要用结构化

  也许有人要问:现在的语言都是结构化的,我想不用还难呢,你这不是白说了?
在这里我要说的结构化,是两个方面的内容:一是同一级语句尽量对齐,不同级语句要有缩进;二是尽量多用子程序(即过程)。

  比如下面的程序段(这次以ASP为例)

'--------用户登录程序---------
If Resquest.form("UserName")="" then
  '用户直接输入地址进入,必须将其引导到Login.asp
  Response.Redirect "login.asp"
Else
  '从表单进入
  If Resquest.form("TeacherPass")="1234567" then
    '教师身份
    Application("Teacher")=Application("Teacher")+1
    Session("TeacherNumber")=Application("Teacher")
    Response.Redirect "main.asp"
  Else
    '学生身份
    Application("Student")=Application("Student")+1
    Session("StudentNumber")=Application("Student")
    Response.Redirect "main.asp"
  End if
End if

  以上这个ASP程序段是我写这篇文章时随手写的,没有什么功能。从这段程序中,我们可以看出其中的缩进,给日后修改时减少了许多麻烦。

继续阅读
程序员与妓女完全版
一个程序员的大学十年路程
java程序转成exe文件
C#中水晶按钮的程序生成
用Delphi制作以浏览器为界面的应用程序
C++大师Lippman对中国程序员的忠告
写程序应注意的事项
维护 ASP 应用程序的安全 [2]
维护 ASP 应用程序的安全 [1]
发表评论

昵称:
最新评论
暂时没有评论!