编程领域有两个最难的地方,第一个是缓存,第二个就是命名。可见往往被我们忽视的命名是多么的重要的。

编码体系怎么写(编码命名规范)(1)

缓存难是因为,在复杂的系统中有一个很重要的指标就是缓存命中率,这个值如果想要提高一个点,付出的代价也是非常巨大的,几乎整个架构上的每一步都可以优化,每一步都非常复杂,在大型是系统中尤为如此,比如淘宝的系统,所以缓存的难,体现的是背后的系统架构。

命名难不是因为名字难起,而是命名的背后反映了更多的程序设计,模式,架构,等等问题,这些体现在命名上面,好的命名反映了程序设计的逻辑结构清晰,易懂,有时候一个贴切的命名使程序一看就懂,可读性大大提高,降低了后期维护成本,而一个不好的命名则使程序看起来比较混乱,即使代码写的再怎么精巧,也称不上是精美,这样的代码无疑会给整个系统的后期维护带来很多麻烦,所以好的命名规范,命名规则是多么的重要。

命名是抽象的

或者说是抽象与具体结合的,但其实,具体也是抽象的,世间万物都是抽象的。

我们来看人名,比如说,马蓉这个名字:

马为姓名,表示她姓马,从而可知他爸爸姓马,可能还能知道是什么笔派的。

蓉为名,一岁一枯荣,蓉是花的意思,一般只有女孩的名字才会出现这个字。父母给她起这个是希望她健康,像花儿一样成长,成长环境,家庭的熏陶决定了孩子的性格,所以根据这个名字基本可以猜测这个女孩的性格了。

名字是抽象的,你可以说它有意义,也可以说她没意义,在于你怎么理解。

根据上下文关系,情景,我们把一些词归为,动词,名词,形容词,主谓宾,其实这些概念就是人们创造出来的,创造出来的那么它的本质就是抽象的,世间万物本是不存在的,世间万物其实都是抽象的,**为什么要抽象,因为要具体**,人们希望对事物更加了解,具体,所以才抽象出来很多东西,形成共识,这就是我们掌握知识的基础。

命名时首先列出这个事物的几个关键对象,比如侧边,关联,容器,记录,关联操作等等,先找出这些关键对象,在对它进行抽象。


工具推荐

命名这么重要,这么复杂,有没有好的工具推荐呢?

当然有。

[CODELF](http://unbug.github.io/codelf/):变量命名神器,你值得拥有

[百度翻译](http://fanyi.baidu.com/)

[有道翻译](http://fanyi.youdao.com/)

[海词词典](http://dict.cn/)

可以装几个翻译的浏览器插件,实时划词翻译。


参考

- [PHP书写规范 匈牙利命名法 驼峰法命名 - lighthouse](https://my.oschina.net/u/2403409/blog/478191)

- [php的命名规范 - 毅栈 - 博客园](http://www.cnblogs.com/wolfwows/p/5931181.html)

,