分享个人对养成良好的代码命名习惯的看法
下面分享个人对养成良好的代码命名习惯的看法,仅供参考
- 对自己的严格自律,自己写代码时要有一种希望把每个名称都命名好的强烈意识和严格的自律意识;
- 要努力分析和思考当前被你命名的事物或逻辑的本质;这点非常关键,思考不深入,就会导致最后对这个事物的命名错误,因为你还没想清楚被你命名的事物是个什么东西;
- 在有自律意识和一定的分析能力基础之上,注意命名的方法技巧;要知道何时用动词,何时用名词;以及形容词放哪里,动词放哪里,名词放哪里;也就是小学时的主谓宾要会用;
- 你的任何一个属性的名字都要和其实际所代表的含义一致;你的任何一个方法所做的事情都要和该方法的名字的含义一致;
- 从代码的命名可以看出写代码的人编程时思路是否清晰,如果你对一个名字的命名不准确,很可能体现出你还没有理解这个名字背后的东西;
- 要让你的程序的每个相似的地方的命名风格总是一致的。不要一会儿大写,一会儿小写;一会儿全称一会儿简写;一会儿Pascal命名法,一会儿camel命名法或匈牙利命名法;
- 不要出现重复的命名;因为通常名称都有嵌套关系,比如类在命名空间里,方法在类里,所有如果一个概念在命名空间里表达了,那就不必再类上再表达一次;
- 对于属性或类名,应该总是名词在最后面,名词决定了这个属性代表什么,前面的部分都是用于修饰这个名词;比如,假如现在你有一个服务,然后又是一 个关于订单的服务,那就可以命名为OrderService,这样命名就是告诉我们这是一个服务,然后是一个订单服务;再比如 CancelOrderCommand,看到这个我们就知道这是一个Command,即命令,然后是什么命令呢?就是一个取消订单的命 令,CancelOrder表示取消订单;
- 对于方法,应该总是动词开头,名词结尾;比如Order.AddItem(orderItem);这个,表示订单类有一个添加订单项的方法,Add是动词,表示添加,Item是名词表示订单项;
- 在C#中,我们一般用camel以及Pascal命名法,而不是匈牙利命名法。我觉得主要是两个原因:1)VS强大的智能感知提示的存在,我们没 有必要突出变量的类型了,但这个我觉得只是一个次要原因;2)真正的原因,我上面有提到,一个变量,名词是放在最后的,这个名词决定了这个变量代表什么。 比如有个变量叫totalCount,我们一看就知道这是一个count,然后count一定是一个int或者long,所以就不需要在强调它的类型了。 再比如,remotingRequest, httpRequest,这种,我们也一看就知道他们是请求,一个是remoting的请求,一个是http的请求。remoting,http是用来修 饰request的。request决定了这个变量是什么(同时就意味着我们知道了他的类型了),然后remoting,http这种是进一步说明该 request的业务含义或当前上下文。就像disabledButton,我们一看就知道这是一个button,然后是一个什么Button呢,就是一 个已禁用的button。所以,好的名称,本身就会让我们很容易知道该名称是什么东西,它的类型是什么,具有什么业务含义,所以没有必要再加类型缩写作为 前缀;
- 多学习英文,多看国外优秀开源项目中的命名技巧,会对我们命名有很大帮助;
想学习更多编程语言教程知识可登录e良师益友网。