运筹帷幄之中决胜千里之外 菜鸟初识代码编程规范二 命名规范
良好的命名规范可以为团队合作开发推波助澜,无论在项目开发,还是产品维护上都起到了至关重要的作用。应该说命名规范是一种约定,也是程序员之间良好沟通的桥梁。另外古人相信只要知道一个人真正的名字就会获得凌驾于那个人之上的不可思议的力量。只要给事物想到正确的名字,它就可以带来比代码更强的力量。如果所有的命名都与其自然相适合,则关系清晰,含义可以推导得出,一般人的推想也能在意料之中。
命名规范
在vb的学习当中介绍:
•程序代码常常要引用控件和变量,在复杂的过程中,很难完全理解代码中出现的所有元素。
•如何确定某个语句是引用一个变量还是控件呢?如果没有某种约定将变量与控件区分开来,代码就很难阅读。
•例如:
TotalDue=LineItemTotal-Discount+TotalTax
•软件开发人员从数据类型后缀改为使用单字符前缀
•例如
–Dim Iwidth As Long
–Dim iHeight As Integer)
D i m strNameAs String
•3个字符可以实现充分的多变性,并使前缀合乎逻辑和直观。再一次观察一下前面给出的代码语句:
TotalDue = LineItemTotal – Discount + TotalTax
相等价的语句
txtTotalDue.Text =
curLineItemTotal –txtDiscount.Text + curTotalTax
curTotalDue =
curLineItemTotal – curDiscount + curTotalTax
txtTotalDue.Text =
txtLineItemTotal.Text – txtDiscount.Text + _txtTotalTax.Text
•这些前缀使得代码语句更加容易理解。
总体规则
Ø 名字应该能够标识事物的特性。
Ø 名字一律使用英文单词,而不能为拼音。
Ø 名字尽量不使用缩写,除非它是众所周知的。
Ø 名字可以有两个或三个单词组成,但不应多于三个,控制在3至30个字母以内。
Ø 在名字中,多个单词用大写第一个字母(其它字母小写)来分隔。例如:IsSuperUser。
Ø 名字尽量使用前缀而不是后缀。
Ø 名字中的单词尽量使用名词,如有动词,也尽量放在后面。例如:FunctionUserDelete(而不是FunctionDeleteUser)。
在具体任务开发中,如果有特定的命名约定,则在相应的软件开发计划中予以明确定义及上报质量管理部审计组。
命名规范
Variable)命名
Pascal: 大小写形式——所有单词第一个字母大写,其他字母小写。
camel: 大小写形式——除了第一个单词,所有单词第一个字母大写,其他字母小写。
在.NET编码规范中所有变量都用camel命名形式,而不是用数据类型和m_来作前缀。
用有意义的,描述性的词语来命名变量
- 别用缩写。用name, address, salary等代替nam, addr, sal
- 别使用单个字母的变量象i, n, x等.使用index, temp等
用于循环迭代的变量例外:
for ( int i = 0; i < count; i++ )
{
...
}
- 变量名中不使用下划线 (_)。
- 命名空间需按照标准的模式命名
在程序中,明确变量的作用范围是很有必要的,所以规定:
- 全局变量命名:加前缀‘g’表示(global)。
例如:string gstrName; int giID;
- 局部变量命名:变量类型+变量名。
例如:string strName; int iID;
- 静态变量命名:加前缀‘s’表示(static)
例如:static string sstrName; static int siID;
- 只读变量命名:加前缀‘ro’表示(readonly)
例如:readonly string rostrName; readonly int roiID;
补充说明:
针对异常捕获过程中的Exception变量命名,在没有冲突的情况下,统一命名为exp;
如果有冲突的情况下,可以用“exp”+标志名称,如:expSql。
Try
{
//your code
try
{
//code
}
catch(Exceptionexp)
{
//your code
}
}
catch(ExceptionexpSql)
{
//your code
}
补充:如果捕获异常不需要作任何处理,则不需要定义Exception实例。
例:
try
{
//your code
}
catch( Exception exp)
{
}
Ø 鉴于大多数名称都是通过连接若干单词构造的,请使用大小写混合的格式以简化它们的阅读。每个单词的第一个字母都是大写.
Ø 即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。仅对于短循环索引使用单字母变量名,如 i或 j。
Ø 在变量名中使用互补对,如 min/max、begin/end和 open/close。
Ø 不要使用原义数字或原义字符串,如 For (i = 1;i <= 7;i++)。而是使用命名常数,如 For (i = 1;i <= NUM_DAYS_IN_WEEK;i++)以便于维护和理解。
常量名也应当有一定的意义,格式为NOUN或NOUN_VERB。常量名均为大写,字之间用下划线分隔。
例:
Private constbool WEB_ENABLEPAGECACHE_DEFAULT =true;
privateconstint WEB_PAGECACHEEXPIRESINSECONDS_DEFAULT = 3600;
private constbool WEB_ENABLESSL_DEFAULT =false;
注:
变量名和常量名最多可以包含 255个字符,但是,超过 25到 30个字符的名称比较笨拙。此外,要想取一个有实际意义的名称,清楚地表达变量或常量的用途,25或 30个字符应当足够了。
Class)命名
a)名字应该能够标识事物的特性。
b)名字尽量不使用缩写,除非它是众所周知的。
c)名字可以有两个或三个单词组成,但通常不应多于三个。
d) 使用Pascal,所有单词第一个字母大写。例如 IsSuperUser,包含ID的,ID全部大写,如CustomerID。
e) 使用名词或名词短语命名类。
f) 少用缩写。
g)不要使用下划线字符 (_)。
例: public classFileStream
public classButton
public classString
Interface)命名
和类命名规范相同,唯一区别是 接口在名字前加上“I”前缀
例:
interface IDBCommand;
interface IButton;
Method)命名
a)和类命名规范相同。
b)方法名需能看出它作什么。别使用会引起误解的名字。如果名字一目了然,就无需用文档来解释方法的功能了。
(NameSpace)命名
和类命名规范相同。
运筹帷幄之中决胜千里之外 菜鸟初识代码编程规范二 命名规范相关推荐
- Python代码规范和命名规范
http://www.imooc.com/article/19184?block_id=tuijian_wz#child_5_1 Python代码规范和命名规范 前言 Python 学习之旅,先来看看 ...
- python3编码命名规范_Python代码规范和命名规范
Python代码规范和命名规范 zoerywzhou@163.com 作者:Zhouwan 2018-4-1 Python之父Guido推荐命名规范包括如下几点: 1.文件名.模块名和包名采用小写字母 ...
- Python:代码规范和命名规范
Python:代码规范和命名规范 所有命名规范都要准守这三条: 1.命名只能以字母或者_下划线开头: 2.名字不能包含空格: 3.名字不能与关键字重合.不能将字符l(小写字母l),'O''o'(大小写 ...
- java 代码书写规范_代码书写规范和命名规范
上一篇给大家分享了一下,关于文档编写的几个概念.这篇文章阐述如果编写代码书写规范以及命名规范文档.[以java语言为例] 1.代码书写规范 代码书写规范,能够让不同的人,写出相同风格的代码.很多人都看 ...
- 运筹学试题-运筹帷幄,决胜千里之外!
- 代码整洁之道--命名规范
给代码命名真的是一件很头疼的事情,对于命名规则,有一些基础的编码者,都会知道使用驼峰命名,比如userName,designPattern这样的驼峰命名法,这很酷,还有命名的时候不要使用什么int a ...
- 转载:Java编程风格与命名规范整理
转载自:传送门 不想复制,点进去看喽23333333 转载于:https://www.cnblogs.com/Dumblidor/p/5394390.html
- matlab 数控插补实验,数控插补原理及G代码编程实验.ppt
数控插补原理及G代码编程实验 数控插补原理及G代码编程实验 机械工程实验教学中心 数控插补原理及G代码编程实验 ★ 二维插补原理实验 ★ 数控代码编程实验 1 实验目的 ★ 使学生掌握逐点比较法.数字 ...
- 10分钟了解代码命名规范(Java、Python)
前言 关于代码命名,我相信是经常困扰很多小伙伴的一个问题,尤其是对于强迫症晚期患者.怎么说呢,每次小编在写代码之前,总会在想啊想啊,用什么命名法好呢?对于经常在C++.Java.Python等主流语言 ...
- 代码命名规范是一种责任也是一种精神(工匠精神)
代码命名规范之美 规范概述 命名规范 管理类命名 Bootstrap Processor Manager Holder Factory Provider Registrar Engine Servic ...
最新文章
- 关于如何换肤、子类化的解决方案
- 数学推导+纯Python实现机器学习算法:逻辑回归
- vue中引用js_从JS中的内存管理说起 —— JS中的弱引用
- pro android学习笔记,Pro Android学习笔记(六八):HTTP服务(2):HTTP POST-Go语言中文社区...
- SpringBoot高级消息-RabbitMQ运行机制
- ZBLOG-ASP2.2如何给图片增加ALT标签说明文字?
- 坑爹!千万不要在生产环境使用控制台日志
- DWA论文解析(CurvatureVelovityMethod)(3)
- C语言自学《三》---- 条件判断
- nginx绑定IP的坑
- 计算机网络网络层重要概念
- Android视频桌面,动态桌面开发
- Solaris 设备状态检查常用命令
- elastic serach学习
- 解压war包和重新压缩war包
- 手机上最简单的计算机,怎么把手机文件传到电脑,才最简单又快速?
- 海量数据处理的 Top K算法(问题) 小顶堆实现
- 【从0到1搭建LoRa物联网】11、ASR6505 LoRaWAN通信
- php设计模式六大原则,设计模式六大原则是什么
- 数据分析让网络推广事半功倍
热门文章
- JDBC 加载驱动报错解决办法
- ElasticSearch之elasticsearch-users用法及修改集群密码
- cadence allegro - PCB线路敷铜渲染
- 海思mpp_sample例子详解
- unity材质球发光_Unity3D - 发光材质(Emissive Materials)
- 《勒索软件防护体系建设指南》发布|美创深度参编,入选代表性厂商
- Windows安全设置-当前的安全设置不允许从该位置下载文件
- 宣传单印刷价格明细报价的影响因素有哪些?
- linux 安装pkg文件,Linux的pkg-config命令
- 无形胜有形——0day破解组织探秘