重读《重构 2》- 提取函数
6.1 提取函数
只提取函数,容易造成大量 private 函数;private 函数是坏味道,比如不能写单元测试,这时应该使用 7.5 提炼类,将 private 函数提炼到新类中,比如一些工具类。
最终结果是:每个类几乎没有 private 函数,代码阅读起来没有函数跳转,很顺畅,类比函数更灵活,扩展性更好。
提取函数需要培养的直觉有:
1、函数越短越好,小而美
2、意图大于实现,且要分开;意图稳定,实现易变
3、命名要自描述,凸显意图,而不是描述实现
4、体现层次感,而不是一坨
5、如果难以提取函数,说明实现方法不对,尝试换种实现
案例学习:
语言标准库中,如 str 提取的函数,https://doc.rust-lang.org/std/primitive.str.html
这些是正向的输入,多体会,能感觉到脑回路在改变,直到遇到适合的场景能零秒思考;
假如有的 str 库未实现这么多方法,你遇到问题时,也是先实现所需的方法-如 trim-end,然后再用该方法实现功能需求;就说明你已经更新了自己的思维模型。
代码阅读困惑:代码看了,但难以搞懂代码在做什么。
原因就是:没有从实现中提取足够层级的意图,让代码变得有层次感。
增加一个直觉/思维:
多提取永恒的函数,像语言的标准库一样,十年如一日,不会改变。
需求变化时,让旧的只读,追加新的。
版权声明: 本文为 InfoQ 作者【顿晓】的原创文章。
原文链接:【http://xie.infoq.cn/article/4224829d8c94571d04546438e】。文章转载请联系作者。
评论