谷歌:编写干净的代码以减少认知负荷

您是否曾经阅读过代码却发现很难理解?您可能正在经历认知负荷!

认知负荷是指完成一项任务所需的脑力劳动量。阅读代码时,您必须记住变量值、条件逻辑、循环索引、数据结构状态和接口契约等信息。随着代码变得更加复杂,认知负荷也会增加。人们通常可以在短期记忆中保存多达 5-7 条独立的信息(来源);涉及更多信息的代码可能难以理解。 

阅读您编写的代码的其他人的认知负荷通常比您自己的认知负荷更高,因为读者需要理解您的意图。想想您阅读别人的代码并努力理解其行为的时候。进行代码审查的原因之一是让审查者检查代码的更改是否会造成过多的认知负担。善待你的同事:通过编写干净的代码来减少他们的认知负担。

减少认知负荷的关键在于简化代码,使读者更容易理解。这是许多代码健康实践背后的原则。下面是一些例子:

  • 限制函数或文件中的代码量。力求代码足够简洁,以便您能在第一时间将整个代码记在脑子里。尽量减少函数的数量,并尽量将每个类的职责限制在一个范围内。
  • 创建抽象来隐藏实现细节。函数和接口等抽象概念可以让你处理更简单的概念,隐藏复杂的细节。不过,请记住,过度设计代码,使用过多抽象也会造成认知负担。
  • 简化控制流。带有过多 if 语句或循环的函数可能难以理解,因为你很难将整个控制流记在脑子里。将复杂的逻辑隐藏在辅助函数中,使用提前返回来处理特殊情况,从而减少嵌套。
  • 尽量减少可变状态。无状态代码更易于理解。例如,尽可能避免可变类字段,并使类型不可变。
  • 测试中只包含相关细节。如果测试中包含与测试用例无关的模板测试数据,或者相关测试数据被隐藏在辅助函数中,那么测试就很难理解。
  • 不要在测试中过度使用模拟mock。模拟的不当使用会导致测试中出现大量调用,从而暴露被测系统的实现细节。

https://www.jdon.com/69722.html

你可能感兴趣的:(javascript,reactjs)