如何写出简洁的代码

语录摘自《代码整洁之道》

3.12 如何写出这样的代码

写代码和写别的东西很像。在你写论文或者文章时,你先想到什么就写什么,然后再打磨他。初稿也许粗陋无序,你就斟酌推敲,直至达到你心目中的样子。

我写函数时,一开始都冗长而复杂。有太多的缩进和嵌套循环。有过长的参数列表。名称是随意取的,也会有重复的代码。不过我会配上一套单元测试,覆盖每行丑陋的代码。

然后我打磨这些代码,分解函数、修改名称、消除重复。我缩短和重新安置方法。有时我还拆散类。同时保持测试通过。

最后,遵循本章列出的规则,我组装好这些函数。

我并不从一开始就按照规则写函数,我想没人做得到。

回顾过去写代码的习惯就是,按照文档规定的接口定义函数名,或者自己按照功能定义函数名。然后一个函数一通到底,功能测试能做就可以。由于时间问题,不会去考虑代码的可读性,简洁性。

看完本书之后,尝试修改了过去自己写过的代码,发现过去有很多不规范的函数定义,很多函数违反了[单一职责原则(single responsibility principle,SRP)],也违反了[开放闭合原则(open closed principle,OCP)]。导致回头去优化自己的代码的时候,发现不知道自己之前这个代码是用来做什么的了,代码的业务逻辑上也变得模糊。

写代码应该像语录中那样,先根据业务逻辑实现功能,然后打磨代码,使之变得整洁。“让营地比你来时更干净。”

关于如何写出简洁的代码,目前的经验是:一、分解函数,遵守单一职责原则,尽量让每个函数只做一件事儿;二、简化参数列表,无参,单个参数(容易理解),两个参数(较难理解),三个参数(容易出错,无法准确的确认参数顺序),当参数超过三个以上时,说明参数应该封装成类了;三、抽离try/catch代码块,让异常处理只做异常处理,使用异常代替返回错误码;四、消除冗余,面向切面编程或者面向组件编程,结构化编程。

在这里打个断点,等看完剩余的部分再来总结。

猜你喜欢

转载自www.cnblogs.com/liyy7520/p/How_to_write_clean_code.html