## 文件 * .md 使用 4 空格缩进,文件名使用大驼峰用连字符分割 * .coffee, *.js, *.json, *.html, *.less, *.jade 使用 2 空格缩进,文件名使用全小写用下划线分割 * bin/*.coffee 文件名使用连字符分割;若 .coffee 的内容是一个类,则使用类名作为文件名 * 总是在文件末尾添加换行符 ## 依赖 * 加入依赖时注意检查必须允许发布闭源版本,即不能使用以 GPL 授权的依赖 ## 命名 * 尽量不缩写术语 * 总是使用 `callback` 命名回调函数 * 总是用 `t_` 前缀表示这是一个待翻译的字符串 ID ## 注释 * 复杂的函数前,以注释标出参数的结构,和回调函数的参数 * 其他部分如非必须,不写注释,注释只使用英文 ## JavaScript * 优先使用单引号,总是在行末添加分号 * 总是使用 underscore 来进行类型判断 ## Node.js * 只在初始化时使用 Sync 版本的 IO 函数 ## Coffee Script * `,`, `:` 之前不加空格,之后总是添加空格;`->` 前后均加空格 * 不可以出现空的参数列表 * 不在行末添加分号,不在一行内使用分号分割两行代码 * 类名使用大驼峰命名,如 `SampleClass` * 优先使用单引号 * 总是省略所有跨行的括号和花括号,尽可能省略掉函数调用的括号 * 变量名使用全小写用下划线分割,函数名使用小驼峰 * 若未处理回调函数的异常,添加 `console.error err if err` ## HTML * CSS class 和 ID 命名使用全小写用连字符分割 * 输入控件使用 `input-` 前缀,按钮和动作使用 `action-` 前缀 * 尽量使用 class 而不是 ID