当前位置: 首页 > news >正文

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

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

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

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

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

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

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

http://www.lryc.cn/news/229087.html

相关文章:

  • 微信小程序display常用属性和子元素排列方式介绍
  • 设计模式—结构型模式之代理模式
  • C# PDF转HTML字符串
  • el-table解决数据过少小于高度有留白的问题
  • vue实现无感刷新token
  • 竞赛选题 深度学习的动物识别
  • Python高级语法----Python C扩展与性能优化
  • 行业洞察:分布式云如何助力媒体与娱乐业实现创新与增长?
  • 【多线程 - 05、后台线程】
  • C语言之文件操作(剩余部分)
  • 【PC】开发者日志:竞技比赛验证系统强化
  • c++用map,创建类似于python中的字典
  • VuePress介绍及使用指南
  • Spring-Security前后端分离权限认证
  • Django中Cookie和Session的使用
  • 云原生周刊:KubeSphere 3.4.1 发布 | 2023.11.13
  • 逐帧动画demo
  • Mongodb 中,与索引相关的监控指标
  • 图论14-最短路径-Dijkstra算法+Bellman-Ford算法+Floyed算法
  • OpenCV 实现透视变换
  • ChinaSoft 论坛巡礼|开源软件供应链论坛
  • VUE 组合式API
  • 尝试使用php给pdf添加水印
  • ubuntu上安装edge浏览器
  • 动态切换 Spring Boot 打包配置:使用 Maven Profiles 管理 JAR 和 WAR
  • 微信小程序使用阿里巴巴矢量图标
  • 使用JAVA pdf转word
  • 成都瀚网科技有限公司抖音带货的正规
  • windows服务器热备、负载均衡配置
  • samba服务器搭建 挂载远程目录 常用配置参数介绍