代码整洁之道笔记
动机
最近在回顾自己之前写的代码时,发现之前的惨不忍睹。最大的问题是,几个月前自己写的居然都看不懂。 有些问题自己能避免,例如有意义的变量命名问题,但是由于当时英文卡住了,直接就随便命名了,当时以为自己看得懂,以后就能懂,最后发现是自己想多了。
刚好今天没事翻了一下之前买的书籍《代码整洁之道》,看到下面一段话,引起了我的共鸣,所以我决定,记录一下自己的心得,以形成一套自己整洁的代码风格。
是的,我们就是一群代码猴子,上蹿下跳,自以为领略了编程的真谛。可惜,当我们抓着几个酸桃子,得意洋洋坐到树枝
上,却对自己造成的胡乱熟视无睹。那堆“可以运行”的乱麻程序,就在我们的眼皮底下慢慢腐坏。
什么才是整洁的代码
能通过所有的测试
没有重复代码
体现系统中的全部设计理念
包括尽量少的实体,比如类,方法,函数等
我追求的代码是这样的,它像一篇满分作文一样,不啰嗦但是又极具表现力。所以如何提高代码的表现力,是我接下来学习的事情,我目前离这条路还有很远,加油努力!
变量
变量命名
(1)采用驼峰式命名,第一个字母小写;
(2)变量都是单词的组合,很明显的可以用缩写,例如:addr (地址)
(3)单词都是名词形式
(4)单词不能有歧义,例如 addedNumber (add可以是添加,也可以是插入)
函数
函数命名
(1)同上,但是函数名第一个单词是动词,例如deletePage
(2)能用函数名说清楚的事情,尽量不要用注释,函数名字长一点为所谓,eg.
deletePagaAndAllReferences()
个人感觉,最关键的是取一个好的名字,但是这需要很强的描述技巧和英文表达能力。这个还是要多看源代码,多联系。
函数组织方式
(1)函数要短小,一个函数只负责一件事件
(2)if,else,switch语句后面应该只能是一句话,例如
|
|
(3)函数参数尽可能少,最理想是没有参数,一个,二个,三个都还可以。超过三个就考虑是否弄一个类了。
函数参数尽量不要使用bool型的变量,如果是这种情况,可以考虑写两个函数,一个是True情况下的,一个是false情况下的。
(4)try/catch错误处理的情况应该单独弄一个函数,而不是要放在主函数里面,这样会弄乱主函数的代码结构。
(5)对于大函数,遵循只有一个return的原则
小函数,可以出现多个return (if里面)
语录: 大师级程序员将系统当做故事来讲,而不是当程序来写。
注释
注释出现的目的:注释是因为代码不能很好的表达我们的意图的时候,采用的一种弥补方式。所以要尽可能的避免注释(不是不用),因为代码而且会变,但是注释不能跟着变,而且不同人表达的可能不同。
(1)注释应该是对意图的解释
(2)注释可以是一些警告
(3)TODO注释
(4)不要出现无意义,多余的注释
(5)不要注释代码,如果不要直接删除,但是要做好版本控制
代码格式
代码格式就像文章的排版,同样非常重要。
(1)用空行分割出不同逻辑的代码
(2)相关函数尽可能放到一块,并且按照调用顺序从上至下,以方便可读性
(3)赋值=左右两边有空格隔开;函数参数之间用空格隔开;同时出现乘法和加法,乘法不用空格隔开,例如:
|
|
(4)一行if代码尽量避免,也使用缩进形式