名副其实 use intention-revealing names

  变量、函数或类的名称应该已经答复了所有的大问题。它该告诉你,他为什么会存在,他做什么事,应该怎么用。我们应该选择都是致命了计量对象单位的名称。

避免误导 avoid disinformation

  必修避免留下演示代码本意的错误线索。应当避免使用与本意相悖的词。例如:hp、aix和sco都不该用做变量名,因为它们都是UNIX平台或类UNIX平台的专有名称。不要用accountList来命名一组账号,除非它真的是List类型。可以用accountGroup、bunchOfAccounts代替。还要提防使用不同之处较小的名称。以同样的方式拼写出同样的概念才是信息。拼写前后不一致就是误导。误导性名称是必须不能存在的。如避免用小写的l和大写的O作为变量名,他们看起来很像常量1和0.

做有意义的区分 make meaningful distinctions

  同一作用范围内两样不同的东西不能重名,你可能有时随手改掉其中一个名称,有时干脆已错误的拼写充数,这样很容易导致更正拼写错误后导致编译器出错。光是添加数字系列或是废话远远不够,若名称必须相异,其意思也应不同。以数字系列命名是依意义命名的对立面。这样的命名纯属误导,完全没有提供正确信息,没有提供导向作者意图的线索。只要体现出有意义的区分,使用a和the这样的前缀就没错。如可以把a用在域内变量,而把the用于函数参数。Variable一词永远不应当出现在变量中。Table一词用于不应当出现在表名中。

  Number-series naming is the opposite of intentional naming.

  Noise words are another meaningless distinction.Noise words are redundant.

  Note that there is nothing wrong with using prefix conventionslike a and the so long as they make a meaningful distinction.

  Noise words are redundant.The word variable should never appear in a variable name.Name is better than nameString.

使用读得出来的名称 use prononceable names

  不要盲目的使用缩写,要使用能够知道明确意思的词来命名。

使用可搜索的名称 using searchable names  

  单字母名称和数字常量有个问题,就是很难在一大篇文字中找出来。e也不是便于搜索的好变量名,他是英文中最常用的字母,在每个程序,每段代码中都有可能出现。由此可见,长名称胜于短名称,搜得到的名称胜于用自造编码代码写的名称。单字母名称仅用于短方法中的本地变量。名称长短与其作用域大小相对应。

  My personal preference is that single-letter names can only be used as local variables inside short method.The length of a name should correspond to the size of its scope.If a varible or constant might be seen or used in multiple places in a body of code, it is imperative to give a search-friendly name.

避免使用编码 avoid encoding

  把类型或作用域编进名称里面,徒然增加了解码的负担。

避免思维映射 avoid mental mapping

  不应当让读者在脑中把你的名称翻译为他们所熟知的名称。这种问题经常出现在选择使用问题领域术语还是解决方案领域术语时。

  One difference between a smart programmer and ad professional programer is that the professional understands that clarity is king.Professional use their powers for good and write code that others can understand.

类名 class names

  类名和对象名应该是名词或名词短语。A class name should not be a verb.

方法名 method names

  方法名应当时动词或动词短语。属性访问器、修改器和断言应该根据其值命名,并依Javabean保准加上get、set和is前缀。重载构造器时,使用了描述了参数的静态工厂方法名通常好于使用默认的构造器。

  Complex fulcruPoin = Complex.FromRealNumber(23.0);

better than:

  Complex fulcrumPoint = new Complex(23.0);

别扮可爱 don't be cute

  不要使用俗话或俚语来命名。

每个概念对应一个词 pick one word per concept

  给每个抽象概念选一个词,并且一以贯之。使用fetch、retrieve和get来给多个类中的同种方法命名,很容易忘记哪个类中的哪个方法使用的是fetch、retrieve或get。

别用双关语 don't pun

  避免同一单词用于不同的目的。比如使用add来命名函数,表示通过该方法把两个现存值增加起来来获取新值。当一个类中有了要添加一个新的方法,如把单个参数放到群集中,此时不应该把该方法叫做add,应该用add或append之类的词来命名才对。

  add meaningful context

使用解决方案领域名称 use solution domain names

  只有程序员才会读你的代码。所以尽量用那些计算机科学术语、算法名、模式名、数学术语。

使用源自所涉问题领域的名称

  如果不能使用程序员熟悉的术语来给手头的工作命名,那么就采用从所涉及问题领域而来的名称。

  Choosing technical names for those things is usually the most appropriate course.So go ahead and use computer science terms, algorithm names, pattern names, math terms and so froth.

添加有意义的语境 use problem domain names

  很少有名称是能自我说明的。你需要有良好命名的类、函数或名称空间来放置名称,给作者提供语境。若没有这样做,给名称添加前缀就是最后一招了。

  When there is no  'programmer-eese' for what you'er doing, use the name from the problem domain.

  Seperating solution and proble domain concepts is part of the job of a good programmer and designer.

Add meaninful context

不要添加没用的语境 don't add gratuitous context

  对于GasStationDeluxe类来说,没有必要在每个属性前面加上GSD。只要短名称足够清楚,就要比长名称好。

  Shorter names are generally better than longer ones, so long as they are clear. Add no more context to a name than is necessary.

有意义的命名 Meaningful names的更多相关文章

  1. clean code meaningful names

    ---恢复内容开始--- Meaningful Names: use Intention-Revealing Names //nice,Everyone who reads your code (in ...

  2. cleanCode[1]:有意义的命名

    为什么要有意义的命名: 我们都曾经说过有朝一日再回头清理那些糟糕的代码,然而最终总是弃之不顾.稍后等于永不,我们需要立即行动,写优雅的代码. 写代码的过程中,读占的比例很大,所以首先要让代码易读. 有 ...

  3. 编写高质量代码改善C#程序的157个建议——建议142:总是提供有意义的命名

    建议142:总是提供有意义的命名 除非有特殊原型,否则永远不要为自己的代码提供无意义的命名. 害怕需要过长的命名才能提供足够的意义?不要怕,其实我们更介意的是在代码的时候出现一个iTemp. int ...

  4. Clean Code – Chapter 2: Meaningful Names

    Use Intention-Revealing Names The name should tell you why it exists, what it does, and how it is us ...

  5. 15条变量&方法命名的最佳实践【转】

    原文地址:15 Best Practices of Variable & Method Naming 不同的代码段采用不同的命名长度.通常来说,循环计数器(loop counters)采用1位 ...

  6. python基础===15条变量&方法命名的最佳实践

    不同的代码段采用不同的命名长度.通常来说,循环计数器(loop counters)采用1位的单字符来命名,循环判断变量(condition/loop variables)采用1个单词来命名,方法采用1 ...

  7. 瞬间从IT屌丝变大神——命名规则

    为了避免命名冲突,命名规则如下: 公共组件因为高度重用,,命名从简,不要加前缀. 各栏目的相应代码,需加前缀,前缀为工程师姓名拼音的首字母,例如:海子前缀为“hz_”,分隔符为下划线"_&q ...

  8. 你不可不看的Android开发命名规范

    标识符命名法最要有四种: Camel(骆驼)命名法:除首单词外,其余所有单词的第一个字母大写,如:fooBar; Pascal命名法:所有单词的第一个字母大写,如:FooBar: 下划线命名法:单词与 ...

  9. Linux 小知识翻译 - 「版本号」的命名方式

    包括OS,所有的软件都有版本号信息.一般来说,版本号的增大表示软件的功能增强了或者修正了一些Bug,也就是表示软件更新了. 版本号的命名方式没有统一的标准.每种软件都不一样. 大部分情况下,版本号以「 ...

随机推荐

  1. [转载]SOAPUI压力测试的参数配置

    原文地址:SOAPUI压力测试的参数配置作者:goooooodlife The different Load Strategies available in soapUI and soapUI Pro ...

  2. Java 基础知识点(必知必会其一)

    如何将字符串转换为数字? package Day_2; /** * @author Administrator * 功能: 如何将字符串转换为数字? */ public class StringToI ...

  3. hduoj------2594 Simpsons’ Hidden Talents

    Simpsons’ Hidden Talents Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java ...

  4. 客户信贷管理&临时授信

    信贷额度的组成:假如某客户信用限额1万:开出销售订单时锁定1万:一旦发货1万,销售订单1万限额释放,变成发货锁定限额1万.一旦开票,发货1万限额释放,应收锁定1万限额.清帐成功,应收释放1万.信用限额 ...

  5. Objective-C(一简介)

    Objective-C简介 通常写作ObjC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言.它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统, ...

  6. PHP基本知识收集

    1.符号“@”的作用 @是可以屏蔽函数执行过程中遇到问题而产生的一些错误.警告信息,这样用户就看不到程序的出错信息.这样除了用户界面会友好一些外,更重要的是安全性,因为屏蔽了出错文件的路径等信息. 2 ...

  7. shell脚本流程搭建

    程序中删除文件夹即用rm -rf ${Dir} rm -f ${Dir}/* rm -f ${Dir}* 的时候要注意先检查路径变量是否有定义不为空. if [ ! -z ${LogDir} ]; t ...

  8. 用js创建XMLHttpRequest对象池[转]

    //使用literal语法定义一个对象:XMLHttp var XMLHttp = { //定义第一个属性,该属性用于缓存XMLHttpRequest对象的数组 XMLHttpRequestPool: ...

  9. Js笔试题之parseInt()和.map()

    parseInt()的几个例子 var b = parseInt("01"); alert("b="+b); var c = parseInt("09 ...

  10. Box2d引擎之元素

    主要包括: 简单形状的物体,如矩形.圆.多边形 复杂的由多个形状组成的物体 结合点,如连接多个物体的旋转结合点 接触监听器 一.简单形状的物体 矩形 function createRectangula ...