《编写可读代码的艺术》读后随笔

这本书目前读了前 3 章,共鸣的地方还是不少的,比如:tmp 这种“不知道怎么命名时的命名”,对自己平常的工作危害是蛮大的;长名字和短名字的取舍困惑;get方法通常代表轻量级的方法,乱用会导致性能问题等等的坑,自己都掉进去过。


这里总结几点比较印象深刻的:

1. tmp 的使用应该尽可能带后缀 描述场景,并且只用在生命周期较短的时候,且“临时性是其主要因素”的时候;

2. 循环迭代器,通常用 i,j,k 等,但在大段代码里面,多个同时使用往往会降低可读性,如:


for (int i = 0; i < clubs.size(); i++)
	for (int j = 0; j < clubs[i].members.size(); j++)
		for (int k = 0; k < users.size(); k++)
这时候可以用 club_i, members_i, users_i 来避免混淆,或者简化形式:ci, mi, ui

3. 带单位的值,max_length ===> max_chars

4. 长命名和短命名:在小作用域里面,用短命名;在大作用域用常命名

5. 不要用 filter 这种有歧义的名字:究竟过滤掉,还是过滤了然后剩下的;用 min、max 来表示极限(包含边界); first 、last 来表示首尾(含); begin 、end(表示[a,b) 这种包含/排除模式的)

6. 布尔值命名:加上像is、has、can、use或should这样的词,可以把布尔值变得更明确,同时注意不要用反义的,比如:disable_xxx

7. 名字应该承载更多信息,Height(), NumNodes() 比 Size() 更好

8. get*() 这种一般是轻量级的操作,不要随便使用这种命名,比如 getCost 如果流程复杂,性能消耗大的话,应该用 ComputeCost();此外 get*() 的泛滥使用是个坏习惯,比如: GetPage(),无法描述 page 的获取方式,来自数据库? 互联网?,如果是互联网, FetchPage()、DownloadPage() 更好。

Via:

《编写可读代码的艺术》



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值