Clean Code
整洁代码的原则
- 代码大部分时候是用来维护的,而不是用来实现功能的
- 优秀的代码大部分是自描述的,好于文档注释
说下比较适合写注释的两种场景:
- public interface,向别人明确发布你功能的语义,输入输出,且不需要关注实现。
- 功能容易有歧义的点,或者涉及比较深层专业知识的时候。比如,如果你写一个客户端,各种config参数的含义等。
- 设计模式只是手段,代码清晰才是目的
当你的系统内大部分抽象只有一个实现的时候,要好好思考一下,是不是设计有点过度了,清晰永远是第一准则。
整洁代码的常见方法
- code review
- 勤于重构
- 静态代码检查 (Sonar)
- 多阅读开源代码和身边同学优秀的代码
整洁代码的常见技巧
通用技巧
- 单一职责
- 优先定义整体架构
在一个功能流程开发中,优先定义好类、以及方法的归属。方法可以不着急实现,这样开发的代码可读性很高
- 清晰的命名
- 避免过长的参数
- 避免过长方法和类
- 让相同长度的代码段表示相同粒度的逻辑
面向对象技巧
- 贫血与领域驱动
- 一个好的系统,一定离不开一套好的模型定义。梳理清楚系统中的核心模型,清楚的定义每个方法的类归属,无论对于代码的可读性、可交流性,还是和产品的沟通,都是有莫大好处的。
- 为每个方法找到合适的类归属,数据和行为尽量在一起
- 警惕static
- static真正适用的场景:工具方法,而不是业务方法。
- 巧用 method object
- 面向接口编程
- 正确使用继承和组合
代码复用技巧
- 模板方法
- extract method
- 责任链
- 为集合显式定义它的行为
整洁代码存在的问题
- 整洁代码会影响性能,甚至导致程序慢15倍。我们需要在代码可维护性和高性能上进行权衡,说到权衡其实整个软件从架构层面的选择到整洁代码的优化,都是在权衡。通过本身丰富经验,技术的广度来选择合适的方案。没有最好,只有适合。