看了一些网上的VB.NET C#等的编码规范,感觉只是一些命名与定义上的规范而已,并不是一个完整的开发规范。
请大家看看以下的现象:
实现同一个功能,比如说编辑一行数据,并把数据保存到数据库中。
这个功能,给三个程序员,可能会出三种编码结果,实现的功能都一样。
但是,当互相查看对方的代码时,很不习惯,谁都能讲出对方那种编码方式的不足之处
但是,倒底哪种方式是最优的呢,也可能是按不同情况下,哪编码方式是最优?
似乎,国内大多数设计人员,并不注重这些问题,但我认为,这确实是一种很严肃的问题。我想各位同仁也有和我一样的感觉。
我想集本坛众多经验丰富的好手,共同总结出一种对于实现常规功能最优的设计方案。
我不知道我的想法大家能否认同,不知道做这件事是否有意义。
请大家批评指正,也请志同道合的同仁一起讨论。
join_gu@hotmail.com
顾君彦
应该没有这样严格的规范。
不可能也不现实来实现这种规范:
1)规范应该是简单明了的,定义道函数级别,太多,并且也很容易不全。
2)编码本身每一个人都有自己的特点,在容易理解的继承上,个人可以保持自己的一些优秀的风格,没有必要所有都雷同。
3)太多了,记不住。并且太多规范版本的升级,对于一个稍微大一点的规模来说,是一种灾难。
按照我的经历,大约可以从几个方面来克服这个问题:
1)有一套言简意赅的编码规范就够了,不要指望你的开发人员能想当年背诵毛主席语录一样熟练。
2)每一个阶段完工以后,都有一个riview meeting, 比如High Level Design完毕之后,拿出来riview一下,大家看看有什么问题,提一提意见,有问题回去修改。Coding完了之后,有code review,同样的方法。所有的review recond都要保留,每一个reviewer都同意之后,大家才可以通过,大家对质量都负有责任。
如果每一个人都开放一点,大家的水平很容易就上去了。
我觉得最好的大家有相近的命名规范
在实现上可是仁者见仁,智者见智
这就所谓技巧了吧
一、总体要求
1、必须严格执行本规范以确保源代码的可读性及可维护性。
2、所有的程序文件都必须有注释文字,并严格按照本规范中的“注释规范”书写。
二、命名规范
1.1 概述
1、必须使用语标准英文单词,不允许使用中文拼音。
2、如果有名词,必须使用单数形式。
3、使用大小写混合格式,将连接的几个单词首字母大写。
4、必须在3至30个字母以内。
5、如果使用缩写,必须使用本规范附录的缩写范例。
1.2 文件命名规范
1、文件命名采用主谓结构,首字母大写。
2、文件和文件夹的名称应该精确地说明它们的用途。
1.3 函数命名规范
1、函数名和方法名以动词开始,首字母大写,如 SaveFileLog。
2、在命名函数时包括返回值的说明,如 GetFileName。
3、类名和属性名以名词开始,首字母大写,如 EmployeeName。
4、在不同的类中的属性,如果它们有相同的作用,则必须使用同样的名称。
1.4 变量命名规范
1、所有变量都必须有前缀,前缀使用2—4个字母,全部小写。
2、避免与数据字典中的数据元素名相同。
3、避免与函数名、方法名、类名和属性名相同。
4、避免使变量名为另一个变量名的一部分。
5、布尔变量名应该包含 Is,如 blnFileIsFound。
1.5 常量命名规范
1、常量所有字母都应该大写,单词之间用下划线连接。
三、注释规范
2.1 概述
1、注释必须使用中文及中文的标点符号。
2、每行注释的最大长度为100个字符。
3、将注释与注释分隔符用一个空格分开。
4、不允许给注释加外框。
5、编码的同时书写注释。
6、重要变量必须有注释。
7、变量注释和变量在同一行,所有注释必须对齐,与变量分开至少两个Tab键。
8、典型算法必须有注释。
9、在循环和逻辑分支的地方必须写上注释。
10、程序段或语句的注释在程序段或语句的上一行。
11、在代码交付之前,必须删掉临时的或无关的注释。
2.2 文件与函数的注释
1、文件和函数的头部都必须有概述注释信息。
2、文件和函数的概述注释应缩进1个空格。
3、文件概述注释信息必须包括以下内容:
(1) 文件名
(2) 属性
(3) 创建人
(4) 创建日期
4、函数概述注释信息必须包括以下内容:
(1) 功能
(2) 输入参数,标明意义和类型
(3) 返回值,标明意义和类型
(4) 作者
(5) 日期
四、程序书写格式
3.1 空格、空行与缩进
1、在操作符的前后必须使用空格。
2、在分隔数组下标和函数参数的逗号后面必须添上空格。
3、一个程序段上下必须使用空行。
4、变量定义部分与程序语句之间必须使用空行。
5、利用缩进来显示程序的逻辑结构,缩进量一致并以Tab键为单位,定义Tab键为4个空格字符。
6、以下情况使用缩进:
(1) Function - End Function
(2) Sub - End Sub
(3) Do While - Loop
(4) If - Else - End If
(5) Select Case - End Select
(6) For - Next
3.2 SQL语句书写规范
1、写SQL语句时,关键字必须使用大写,
数据元素必须按照数据字典书写;
2、把每个SQL子语句分开放在不同的行中。
3.3 其它规范
1、不允许使用纯粹的不带语意的数字或字符串。比如:for index=1 to 7;
而应该使用定义过的常量,比如:for index=1 to NUM_DAYS_IN_WEEK。
五 编程准则
4.1 变量使用规范
1、不允许随意定义全局变量。
2、一个变量只能有一个用途;变量的用途必须和变量的名称保持一致。
3、所有变量都必须在类和函数最前面定义,并分类排列。
4.2 数据库操作规范
1、查找数据库表或视图时,只能取出确实需要的那些字段。
2、使用无关子查询,而不要使用关联子查询。
3、清楚明白地使用列名,而不能使用列的序号。
4.3 对象使用规范
1、尽可能晚地创建对象,并且尽可能早地释放它。
4.4 模块设计原则
1、不允许随意定义公用的函数和类。
2、函数功能单一,不允许一个函数实现两个及两个以上的功能。
3、不能在函数内部使用全局变量,如要使用全局变量,应转化为局部变量。
4、函数与函数之间只允许存在包含关系,而不允许存在交叉关系。
即两者之间只存在单方向的调用与被调用,不存在双向的调用与被调用。
附1:主要名词/动词汉英对照表
附件 Attach
一览 List
详细 Detail
编辑 Edit
修改 Modify
变更 Alter
如果有这样的规范的话,那么必然会产生按照这些规范写的函数
后来这些函数成了规范,于是大家都开始用这些函数
那还有什么规范可言呢。
这是我的拙见,有什么问题请指教
是啊
其实规范就是好的编程习惯了
看看PSP吧 软件工程的
个人意见:
没有意义。
1。 如你说三个人有三种编码方式。你想统一一种好的,最优的。你怎么知道不会出现第四种,而它才是最优的。所以可以讲只有更好,没有最好
2。 程序员是人不是机器,大量的规范让他遵守,按模板来编程。这应该是CASE做的事,而不是程序员。我认为编码也是一种创造性劳动。
我认为有命名的编码规范就够了,只要开发人员互相之间能看懂就行了。