第二章 - 有意义的命名 - 读书心得

1. 让代码会说话。

- C/C++, python, Java...各种不同层次的编程语言,我首先强调“语言”这两个字。

- 编程语言和我们日常交流用于其实并没有实质性的区别。都是一种表达方式。

- 好的程序写出来也需要像日常交流一样能够正确清晰的表达自己。

2. 名副其实

- 何为名副其实,简单来说就是写的和做的一样。

- 如果一个变量/函数定义出来之后仍然需要加额外的注释去注解。那么显然这个命名是失败的。

3. 避免误导, 有意义的命名,命名出来的名字可读

4. 有意义的命名区分

①命名有很多,如何区分不同的命名?

- 1. 不要用简单添加数字(a1, a2)来区分变量

- 2. 不要使用Info, Information这样的意义想同或相近的词来区别

- 3.不要在变量名中加入不必要的信息(e.g. val, arr, i... 做前缀或者后缀)

- ...

②如何来避免命名的重复

C++中

- 1. 合理使用namespace

- 2. 更高层次的抽象

- 3. 重载,重写...

- 4. 类中的私有函数

5. 其他规则

- 命名要可以读出来

- 命名要可以索引

- 不要在命名中使用编码

- 前缀(这里:鲍勃大叔不推荐前缀,但是我认为有些前缀还是值得用的,例如成员变量m_xxx,全局变量g_xxx)

- 类的命名(这里:鲍勃大叔不推荐前缀,个人感觉类名定义成CXXX,接口定义成IXXX比较舒服)

- 类名应该是名词或者名词性短语,避免使用Manager,Processor,Data,Info这样的类名

- 方法名为动词和动词短语(E.g.  对链表操作,NodeInsert 和InsertNode虽然都能正确理解,但是动词+名词更符合英语语法,更合适)

- 每种概念对应于一个词,不要出现fetch,get,retrieve...相同含义的词语混用

- 别用双关语,命名语意要明确清晰,不要给人不同的解读

- 采用代码所涉及领域的专有名称

- 适当增加一些有意义的语境做为前缀,(e.g. 我们会在一些配置参数前加radXXX,会在资源参数前加rrmXXX),当然这只能适当添加


最近做了坑爹的中文听力和阅读理解,12到选择题(答案只有:对,错和不确定),结果只对了一半。

当中挖坑之处不少,读一句都要细细揣摩。

做完之后,感概万千,沟通交流切记语意明确,涵义清晰。写代码也一样。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章