《代码整洁之道》读书笔记2

现在开始读第二章的内容了,第一章是总体的概念介绍,第二章开始就是详细额各种方法了。然后发现悲剧出现了,文章中的主要的例子的都是Java的,而本人主要用C/C++,Java只限大学上过点课,虽然阅读上没什么问题,但是感觉不习惯... 虽然我知道这样是不好的,但是还是不习惯... (贱人就是矫情-_-),写博客不好意思直接抄书上代码,我自己也尽量不用书中的例子,自己编点例子(C/C++的...),下面正题。


第二章 有意义的命名


这章就是讲变量函数等的命名,个人感觉主要常用的知识点如下:

1.不要使用无意义或者有歧义的命名:

比如一个字母,或者意义不明的的非常用字母缩写,d(这货是啥?),ad(这货是地址?还是加数?),list1(这货是list1!但是事啥的list啊!)

2.使用能区分开的命名:

比如拷贝字符串函数,可以写成下列的形式:

char * strcpy(char *a,char *b); //要看代码才知道a,b是什么,换个大家不认识函数,可能就不知道了。

char * strcpy(char *s,char *d); //这个会清楚很多,至少配合上strcpy这个函数名应该不会有歧义,这个就和i用来计数的例子相似了。

char * strcpy(char *src,char *dst);//这个基本就很清楚了,换到别的函数也没啥问题,如果要是别的函数,可以加些扩展让代码更清晰,srcName,如果用sName可能会有些歧义,这里的s可以是src,也可以是string的代码,这时候就要注意统一命名风格了。

3.使用可读的名称:

书中的例子是把生成日期写成,genymdhms,读起来很搞笑,这点也就是说不要自以为是的造词。

4.使用可搜索的名称:

注意是一些字母和数字搜索比较复杂,所以推荐用变量或者宏代替,比如用WORK_DAYS_PER_WEEK,代替5,其实这样写不只好搜索,修改也容易很多。

5.不要使用”编码命名规则“(翻译的就叫编码,个人感觉不清晰):

就是不要用些繁琐的命名规则,这些都是名称长短都很重要的时代的产物,已经过时了,比如Fortran的命名法,匈牙利标记法等。其实用m_表面这是个变量,确实有他的作用,但是现在时代不同了,你为啥不去找个有高亮的编译器,或者说现在的编译器基本有这种功能了,咱们应该善于使用。

6,避免思维映射:

其实就是别自以为是,有些缩写简写你知道不代表别人知道,无论什么情况最好别用,在不能确定的情况下,一个好办法就是请别人读下你的代码。

7,类名不能是动词,方法名应当是动词:

为啥?想想类是什么编程方式的产物,面向对象!动作只能是摸个对象的行为,也就是方法,而不是对象本身。

8,少卖萌:

别用些卖萌的命名,“砍死那些卖萌的”。

9,命名的唯一性:

例如同时用controller和manager,add和append,写代码不是写高考作文。

10,先考虑程序员能读懂的命名,其次是领域专家能读懂得的:

你要知道谁会去读你的代码,请忽视有些叫自己程序员的外行,或者要要看代码的客户。

11,注意语境的使用:

比如第二条提到的例子,再特定的情况下,srcName,copyName是更好的命名方式,但是不要添加多余的内容,在能确保区分性和明确性的情况下,用越少的语境词语越好。

12:,别用中文名称:(这条我自己加的,作者外国人不会考虑这个的,不过这个可以算可读性的特例了)

原因不解释,不过下列情况下,你到时可以使用中文:1你的代码一辈子只有自己会看。2中文成为世界通用语言。3你是某个中文编程语言的开发者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值