搜狐媒体产品技术中心编码规范
- HTML、CSS、Javascript 全部使用2格缩进。
- 文件名采用
REST
风格,使用复数名词,小写,如存在层级关系则放入子目录中,使用-
分割单词,例如:- users.html
- users/(index|create|update|delete|list).html
upload-to-cdn.js(尽量避免,可以使用upload.js代替)
- 变量名全部使用全写,禁止使用拼音。
- 文档全部使用采用
Markdown
编写。 - (不强制)尽量保持80列宽。
- 代码风格基本沿用npm's "funny" coding style。
- 字符串一律使用单引号。
特别说明:
- 类、变量与字段的命名规则
- 避免使用复杂的继承,类名使用驼峰规则,并以大写字母开头,例如:
UpperCamelCase
。 - 代码中声明的变量使用驼峰规则,并以小写字母开头,例如:
lowerCamelCase
。 - 从数据库、接口输入或输出的字段使用下划线分割的规则,并全部小写,例如:
field_from_database
。
- 避免使用复杂的继承,类名使用驼峰规则,并以大写字母开头,例如:
- 异步与回调
- 异步的方法与回调,传入与传出的参数尽量不要超过3个。
- 异步的方法中最后一个参数应是回调。
- 回调中第一个参数应是
Error
的子类或null
。
- 不强制使用逗号前置的规则。
- 提交代码前应删除所有
console.log()
,使用debug保留必要的log。 - 模板引擎使用ejs。
- 缓存(redis/memcache)的键名应使用REST风格,并以
:
作为分隔符。 - HTTP接口返回的状态码应该清楚明确,出错时应该能讲客户端错误与服务端错误明确的区分开,详见: Status Code Definitions。
- 禁止使用状态码301。
- 提交代码前应删除所有
console.log()
。 - 模板引擎使用doT,模板所在
<script>
标签应标记type="text/x-template-dot"
。 - 需要双向绑定时,使用angular。
- 第三方依赖项应使用bower安装,并将目录加入到
.gitignore
中。
- 类名全部使用小写,减号
-
分割。 - 避免使用
id
选择器。
- 使用
location.hash
对前端页面进行路由。路由规则采用REST
风格,并以#!/
开头,例如:- users.html#!/1
- users.html#!/1/update
- 避免使用
id
和页内锚点。 - 错误页应以HTTP状态码命名文件,例如:404.html。
- 自定义的标签属性,以
data-
开头,减号-
分割,例如:data-user-city="beijing"
。