VB6编码规范

给项目组写的VB6编码规范

----

VB6编码规范

为了便于维护和开发,以及后续的维护人员少走弯路,制订此编码规范。

本规范为娱乐版规范。

在阅读编码规范之前,先思考下面几个问题,如果不知道答案,请上网搜索,这样有助

于加深记忆

1. Dim i, j, k As Integer和Dim i As Interger, j As Interger, k As Interger有

何区别?

2. Option Explicit的含义是什么?

3. Sub和Function的区别?

4. 在一个模块(Modula)中,Dim、Private、Public申明的变量有何区别?

5. 什么情况下使用属性Property?

VB6规范正式出场:

1. Dim i, j, k, l As Integer

k说:我有2个爱好

一是和其他变量站在同一行

二是穿上variant的外套,逢人就问“猜猜我是谁”

ps:每行只申明一个变量

2. Mid$与Mid。这是一对孪生兄弟,返回值的类型不同。虽然有人说Mid$比Mid快,但

实际的速度差不多。另外,考虑到VB代码升级到VB.NET的过程中,VB和VB.NET代码会共

存一段时间,不带$的版本更便于代码比较。所以使用Mid这种不带$的版本即可。

3. Dim f as Form

f=new Form1

f.DoWork

f=new Form2

f.DoOtherWork

f说:f1, f2,傻傻分不清楚,其实我像F4

ps:定义变量时,尽量使用明确的类型

4. Option Explicit大叔说:查户口,查户口,没有户口的都去昌平挖沙子;但是微软

不让我主动出击,你请我查户口,我才查户口

ps:在每个文件的开头,写上“Option Explicit”

或者Tools->Option->Editor->Require Variable Declaration 前面打勾

5. Function foo()

If ... Then

Function = CInt(1)

Else If ...

Function = "I'm a String"

Else If ...

...

End If

End Function

foo说:Jolin的《看我72变》是从我这里获取的灵感,至于你们信不信,我反

正是信了。不信的话,我变给你看

ps:有返回值的函数,要明确定义返回值的类型

6. Sub说:Hi,我是Function 72变之一,我最大的特点是吃葡萄不吐葡萄皮

ps:没有返回值的函数,使用Sub进行定义

7. sql语句较长,需要分开写在多行时,每行的开头和结尾都加一个空格,以减少出

错,如" select * from "

8. sql="select * from table where name=" & userName

数据库说:缓存一直被刷新,从未被使用。要想快,请走VIP通道。

黑客说:连SQL注入都不能防范的代码,是对我的能力的侮辱。

ps:sql语句中的变量,尽量使用参数化的方式,而不要直接拼字符串——无

论从性能的角度,还是安全的角度

9. 不要重复发明轮子。需要实现一个功能之前,先查找现有的代码

10. 将经常用到的功能写成模块,提高程序的通用性和易维护性

工具:

夫欲善其事,必先利其器。好的工具,会极大地提高工作效率,省下来的时间上微博挖

8g多好

1. 安装VB6 SP6

2. 安装CodeSMART 2009。

VB6会自动改变变量的大小写,所以,务必使用以下流程:

1. 备份代码

2. 编写代码、修改bug

3. 用CodeSmart的Review功能检查代码

4. 用Beyond Compare比较代码,将VB6自动改变大小写的变量改回来

5. 提交代码到CVS、SVN、CC等代码管理服务器上

参考资料:

VB6 编码规范

http://www.360doc.com/content/06/0822/10/6002_187392.shtml

http://www.bianceng.cn/VBjc/jyjq/jy1.htm

VB6 SP6

http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=9ef9bf70-

dfe1-42a1-a4c8-39718c7e381d&DisplayLang=zh-cn

VB6 SP6累积更新

http://support.microsoft.com/kb/957924/en-us

CodeSMART功能介绍

http://www.axtools.com/products-codesmart-vb6.php

使用绑定变量的方法(Oracle SQL共享的机制)

http://blog.csdn.net/yspoplar/article/details/5904644