“代码千万行,注释第一行;编程不规范,同事两行泪;”代码注释为啥很重要呢?如下是个人一些想法:javascript
《黑客与画家》里面有句话“程序写出来是给人看的,附带能在机器上运行”。既然是给人看的,我以为有两个方面就比较重要。1、代码写的好,好的代码依赖于coder的代码功底。要写出好的代码,须要多修炼内功。2、注释写的好。就像咱们上学的时候看文言文,字基本都认识,可是连在一块儿就是不知道什么意思。这个时候就依赖于注释了,注释能把文言文中难懂的词汇翻译成白话。代码注释也是同样的道理,用来解释代码的意义。html
若是须要和外部对接时,优秀的代码注释能够经过 jsdoc快速导出接口文档前端
9102了大部分IDE都能根据注释去分析,提供一写智能提示,提升代码编写效率,下降咱们代码的出错率。java
一个原则是“as short as possible,as long as necessary ”。代码注释是必须的,可是要避免注释过多过滥,不要为了注释而注释。咱们应该提升修炼好内容,提升代码自己的可读性。如下是一些须要添加注释的地方:编程
文件头部增长文件注释,用于描述文件的基本信息。便于阅读代码时,快速的理解该文件的功能。 主要包含如下字段:数组
/**
* @description 文件干啥用的
* @author CaiCai
* @date 2019-2-20 16:16:52
* @lastModifiedBy CaiCai·
* @lastModifiedTime 2019-2-25 20:07:43
*/
复制代码
使用ES的语法Class定义一个类,主要包含以下字段:bash
/**
* @description 一个参数用来描述类的主要功能
* @property {string} props - 类的属性
* @param {string} arg - 建立实例时的参数
* @extends Parent
*/
class Test extends Parent {
/**
* @description 这是个静态方法
* @returns { void }
* @static
*/
static testStaticMethod() {
}
constructor(arg) {
super()
this.props = arg
}
}
复制代码
JSDOC生成的接口文档:ide
Test类,经过JSDOC生成的接口文档函数
/**
* @description 保存用户信息
* @param { object } user - 用户
* @param { string } user.name - 用户名
* @param { number } user.age - 年龄
* @param { boolean } [user.isMarried = false] - 是否已婚
* @param { object[] } [exGirlFriends] - 前女朋友
* @param { string } exGirlFriends[].name 前女朋友名字
* @param { number } exGirlFriends[].age 前女朋友年龄
* @param { number } [id] - 用户ID
* @returns { (number|string) } 用户ID
* @example
* updateUserInfo({name:'CaiCai',age:26,isMarried:true})
* // => 1
*/
function updateUserInfo() {
}
复制代码
updateUserInfo方法,经过JSDOC生成的接口文档工具
标识关键的变量、关键常量、TODO、约定的特殊标识等。单行注释用“//”开头,单行注释符后留一个空格。
// 这是单行注释
复制代码
描述关键代码或解释复杂业务的实现逻辑,提升代码可读性。 多行注释用“/*”开始,用“*/”结束。 开头和结束的*对齐
/*
这是多行注释
这是第二行
*/
复制代码
以上是我对注释的一些思考,不适合全部人。你们能够在评论区,一块儿讨论“好的注释”。
参考文档:
注释那些事儿 - 前端代码质量系列文章(一)
JSDOC 官方文档
js/javascript代码注释规范与示例
Javascript注释规范