在阅读代码时,没有什么比正确的注释更有帮助了。然而,并不是所有的注释都是有用的。有时候,需要注释可能表明应该重构代码了。。

如果我们不能使写出的代码不言而喻,那默认就是注释上场的时候了,可以首先尝试以下一种方法:

  1. 多用一个变量解释用意

bad:

// 从价格中减去折扣
const finalPrice = (numItems * itemPrice) - (numItems * itemPrice * 0.1);

good:

const price = numItems * itemPrice;
const discount = numItems * itemPrice * 0.1;
const finalPrice = price - discount;

2. 提取方法

bad:

// 过滤敏感词
for (const word of words) { ... }

good:

function filterOffensiveWords(words) { ... };

3. 使用更具有描述性的变量名称

bad:

const width = ...; // 像素宽度

good:

const widthInPixels = ...;

4. 如果代码有假设,最好添加一个检查

bad:

// height肯定大于0
return width / height;

good:

assert(height > 0);
return width / height;

在某些情况下,注释可能会有所帮助:

  1. 说明意图:解释为什么要这么写(而不是常规操作)
// 仅计算一次,因为它很耗性能
if (computed) return

2. 防止将来善意的同事错误地“修复”了代码

// 必须创建新的Foo实例,因为单例Foo是不安全的
return new Foo()

3. 说明在code review的时候出现的问题或源码阅读者可能遇到的问题

// 请注意,顺序很重要,因为...
wash()
brush()

4. 解释使用看似不正确做法的理由

(name as number).toFixed() // name是number类型,是因为...

另一方面,避免只重复代码功能的注释,这些只是画蛇添足

// 获取所有用户
userService.getAllUsers();

// 检查名字是否为空
if (isEmpty(name)) { ... }

原文:https://testing.googleblog.com/2017/07/code-health-to-comment-or-not-to-comment.html

static代码块什么时候运行_健康的代码:什么时候该注释?相关推荐

  1. java代码块是对象吗_面向对象(Java中普通代码块,构造代码块,静态代码块区别及代码示例)...

    //静态代码块:在java中使用static关键字声明的代码块.静态块用于初始化类,为类的属性初始化.每个静态代码块只会执行一次.由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行. ...

  2. java中static代码块_static怎样在java中修改代码块?

    代码是我们每个学编程的小伙伴都接触的内容,在代码块的修改上有很多方法,那么在java中又需要使用哪种方式来对代码块进行变动呢?哦们最近在学关键字的版块,其中有一个static用来修饰代码块的效果非常不 ...

  3. python代码块使用缩进表示-python中的代码块使用缩进来表示。

    [填空题]Python 运算符中用来计算整商的是( ). (2.0分) [判断题]python中的多行语句可以使用反斜杠来实现. (2.0分) [填空题]在python中,int表示的数据类型是( ) ...

  4. html 显示代码块,使用Pre在文章中显示代码块 - 文章教程

    作为技术博客,难免会在文章中插入一部分代码块,代码具有一定的格式,所以很自然就会使用 标签,其在使用上与 等其他标签没有太大区别,但由于其会保留标签中所有的空白与换行,因此在使用时还是有几个地方是需要 ...

  5. 为什么单片机的代码在Flash中运行,单片机的代码运行位置跟电脑有什么不同?

    1. 单片机与电脑,在代码运行空间的区别 单片机与 电脑/Linux嵌入式 在代码运行的空间上不同.大多数单片机,代码都是在Flash中运行的.而电脑/linux嵌入式,是将代码从存储介质(可能是硬盘 ...

  6. 用来表示python代码块的是什么_三分钟带你用简单的Python代码深入理解Python中的元类...

    互联网的数据爆炸式的增长,而利用 Python 爬虫我们可以获取大量有价值的数据 类也是对象 在理解元类前,需要先掌握Python中的类.在大多数编程语言中,类就是一组描述如何生成对象的代码段.在Py ...

  7. vb代码在mysql里运行_请问VB能否在程序运行过程中将变量的值赋给数据库的字段? - VB6论坛 - 编程论坛...

    谁说ADO只能读取文本框的东西了? 那是ADODC控件,而不是ADO对象,况且ADODC也可以赋值啊,ADODC也不只有用绑定控件这种笨办法,大可以这样啊:Text1.Text=ADODC1.Reco ...

  8. java floyd_百度百科里面的floyd算法java的代码,总是无法运行。请问是代码有问题吗,如何编译啊?...

    展开全部 不能编译运行的说法是错误,但是结果是否正确,我就32313133353236313431303231363533e59b9ee7ad9431333335303539不知道了,我不懂这个算法p ...

  9. python用一行代码编写一个回声程序_一行python代码实现树结构

    树结构是一种抽象数据类型,在计算机科学领域有着非常广泛的应用.一颗树可以简单的表示为根, 左子树, 右子树. 而左子树和右子树又可以有自己的子树.这似乎是一种比较复杂的数据结构,那么真的能像我们在标题 ...

最新文章

  1. ansible之playbook
  2. PHP shell_exec()与exec()
  3. 5、Java Swing JButton:按钮组件
  4. 云炬60s看世界20211122
  5. python函数参数定义顺序_Python函数定义-位置参数-返回值
  6. Akka笔记–演员介绍
  7. 网站访问过程HTML
  8. Quartus13.1全编译出现引脚错误(神级bug)
  9. 如何让select选项的那个请选择不被选中
  10. 一个项目中能提出哪些数据库优化_阿里资深技术专家曲山:优秀的数据库存储引擎应具备哪些能力?...
  11. 数组是逻辑结构还是存储结构_逻辑结构?存储结构?傻傻分不清……
  12. 数据总线技术框架说明
  13. 123hoo.com网摘中国开发手记(一)都是些简单的东西!:)
  14. thinkphp5.0的查询方法 where in 性能问题以及优化措施
  15. Word 设置标题编号
  16. 防抖debounce立即防抖和延时防抖(二)
  17. Linux _ Shell编程 — 循环语句
  18. matlab中用高斯-赛德尔(Gauss-Seidel)迭代法解线性方程组
  19. 隐藏win32控制台程序的窗口
  20. VBA学习记忆点小记:www.51zxw.net

热门文章

  1. 网易致歉了,是为了员工还是为了舆论压力?
  2. 微信公众帐号开发教程第15篇-自定义菜单的view类型(访问网页)
  3. Kinect学习笔记(五)——更专业的深度图
  4. jQuery基础 - 常用基本属性
  5. 今年美国什么工作最吃香?程序猿薪酬超医生
  6. UVA1583 UVALive3355 Digit Generator
  7. React 源码剖析系列 - 解密 setState
  8. eclipse使用maven tomcat插件部署无法关联源代码
  9. php $_post多个,使用PHP检查多个$ _ POST字词
  10. 信息学奥赛一本通(1410:最大质因子序列)