怎样写好代码

怎样写好代码

本文是《201 principles of software development》和《代码简介之道》关于如何写好代码部分的感悟。


一 让变量和注释清晰可读


好的变量命名与注释是保证代码简洁、具有可读性性的第一步。
能在变量命名和函数命名中清楚体现出代码的意义的话,就不必要写冗余的注释。在python这样的语言中,强调简介和良好的可阅读性,最好做到代码即文档。
Simple is better than complex. Readability counts.
有这样一个小例子:

d = 0 #流逝的时间,按天计算

这个变量命名貌似进行了详细的注释,但是不是一个好的命名。如果在另外的地方出现这个变量,读者可能早忘了它的注释意义。
把这个变量命名为elapsedDays或者elapsedTimeInDays才符合代码即文档的思想。
在变量命名是要清楚的表明这个变量的意义。注释应该阐述你的设计思想、有意义的说明、对读者的提示等,不要放啰嗦的法律申明。

关于清晰的一点体会是尽量显示的用代码表达你的意思,建议少用匿名函数,下面可以做些对比,这是功能相同的代码:

symbols = 'abd&^*'
beyond_ascii = list(filter(lambda c: c > 50, map(ord, symbols)))
beyond_ascii = [ord(s) for s in symbols if ord(s) > 50]

>>> beyond_ascii
[97, 98, 100, 94]
显示的表达让代码更清晰。Explicit is better than implicit.

二 简洁优美


代码简洁优美我们追求的下一个层次。下面是一个简单的统计单词出现次数的字典。下面有2种写法,功能相同。
但第二种写法更简洁优美,并且执行效率更高。

if word in count_dict:
    num = count_dict[word]
    num += 1
    count_dict[word] = num
else:
    count_dict[word] = 1
count_dict[word]=1 + count_dict.setdefault(word,0)

三 暴露bug,快速失败


在程序设计的时候,不要让bug溜走,要快速失败fail fast。
让程序快速崩溃,这听起来似乎违反直接。其实不然,
让程序快速失败可以让开发者迅速的得到反馈,从而改进代码。如果开发者没有注意到一些潜在的问题,
程序可能处于一种不正常的状态,而表面上看起来还流畅运行,这其实增加了程序的危险性,同时让bug更难调试。
所以在写try except时,try的代码模块要尽量小,一般只有一行。
不要try一大堆代码,这不符合尽量暴露bug的原则。

四 代码中没有奇迹


如果项目延后了,只剩下2天时间。这两天时间只够进行各程序模块开发,而没有时间联调测试。
要不要赌一把?争取2天开发完成,联调没有bug,成功运行!
代码开发中没有奇迹,错误难免且很多。充分的联调测试必不可少。
期待奇迹赌一把,反而会在最后关头把事情搞砸。还不如提前通知相关方,老实告诉项目延后了。

总结,个人体会如果要让代码更好,一定让变量和注释清晰可读,尽量让代码简洁优美。在代码开发测试中没有奇迹,一定要充分暴露bug,充分测试。

猜你喜欢

转载自blog.csdn.net/zhangqiangbeijing/article/details/81507565