Skip to content

认知负荷才是最重要的

今天看到了一篇文章:《认知负荷才是最重要的》。大致是讲解了在开发过程中,市面上有许多流行的术语和最佳实践,但更重要的是关注开发人员在浏览代码时的困惑程度。高认知负荷会导致混乱,浪费时间和金钱。因为阅读和理解代码占据了大部分时间,我们需要不断审视是否在代码中引入了过多的认知负荷。

认知负荷

认知负荷指的是开发人员为了完成任务需要思考的量。过高的认知负荷会导致理解代码变得困难。因此,我们应该尽可能减少项目中的认知负荷。

新加入的开发人员的困惑程度可以反映代码的复杂性。如果新人在理解代码时连续困惑超过40分钟,那么代码就需要改进。

认知负荷的类型

  • 内在性:由任务固有的难度引起,无法降低。
  • 无关性:由信息呈现方式引起,可以大大减少。

实际例子

  • 使用有意义的变量名称可以减少认知负荷。
  • 避免嵌套的 if 语句,优先使用早期返回。
  • 避免继承噩梦,优先使用组合而不是继承。
  • 太多小方法、类或模块会增加认知负荷,深层模块通常比浅层模块更好。

最佳实践

  • 保持代码简单,减少不必要的抽象层。
  • 使用自描述的字符串而不是数字状态码,以减少认知负荷。
  • 谨慎使用 DRY 原则,避免过度抽象。
  • 避免与框架过度耦合,以减少新开发人员的学习负担。
  • 不要为了架构而添加抽象层,遵循基本的设计原则。

领域驱动设计

  • 领域驱动设计(DDD)关注问题空间而非解决方案空间。理解领域的见解并提取边界可以有效减少认知负荷。

向巨人学习

大型科技公司的设计原则包括:

  • 清晰性:代码的目的和原理对读者来说很清楚。
  • 简单性:代码以最简单的方式实现其目标。
  • 简洁性:代码易于辨别相关细节。
  • 可维护性:未来的程序员容易正确修改代码。
  • 一致性:代码与更广泛的代码库一致。

结论

理解和解决问题领域的认知负荷需要勤奋和战略性的方法,优化心理能力分配非常重要。我们应该减少任何超出工作本质的认知负荷。

Released under the MIT License.