唯's Blog

笔者是一个热爱编程的 Java 程序员。

0%

CleanCode

Clean Code

整洁代码的原则

  • 代码大部分时候是用来维护的,而不是用来实现功能的
  • 优秀的代码大部分是自描述的,好于文档注释

说下比较适合写注释的两种场景:

  • public interface,向别人明确发布你功能的语义,输入输出,且不需要关注实现。
  • 功能容易有歧义的点,或者涉及比较深层专业知识的时候。比如,如果你写一个客户端,各种config参数的含义等。
  • 设计模式只是手段,代码清晰才是目的

当你的系统内大部分抽象只有一个实现的时候,要好好思考一下,是不是设计有点过度了,清晰永远是第一准则。

整洁代码的常见方法

  • code review
  • 勤于重构
  • 静态代码检查 (Sonar)
  • 多阅读开源代码和身边同学优秀的代码

整洁代码的常见技巧

通用技巧
  • 单一职责
  • 优先定义整体架构

在一个功能流程开发中,优先定义好类、以及方法的归属。方法可以不着急实现,这样开发的代码可读性很高

  • 清晰的命名
  • 避免过长的参数
  • 避免过长方法和类
  • 让相同长度的代码段表示相同粒度的逻辑
面向对象技巧
  • 贫血与领域驱动
  • 一个好的系统,一定离不开一套好的模型定义。梳理清楚系统中的核心模型,清楚的定义每个方法的类归属,无论对于代码的可读性、可交流性,还是和产品的沟通,都是有莫大好处的。
  • 为每个方法找到合适的类归属,数据和行为尽量在一起
  • 警惕static
  • static真正适用的场景:工具方法,而不是业务方法。
  • 巧用 method object
  • 面向接口编程
  • 正确使用继承和组合
代码复用技巧
  • 模板方法
  • extract method
  • 责任链
  • 为集合显式定义它的行为

整洁代码存在的问题

  • 整洁代码会影响性能,甚至导致程序慢15倍。我们需要在代码可维护性和高性能上进行权衡,说到权衡其实整个软件从架构层面的选择到整洁代码的优化,都是在权衡。通过本身丰富经验,技术的广度来选择合适的方案。没有最好,只有适合。

参考文章:https://tech.meituan.com/2017/01/19/clean-code.html