/guidelines

搜狐媒体产品技术中心编码规范

guidelines

搜狐媒体产品技术中心编码规范


通用项

  • HTML、CSS、Javascript 全部使用2格缩进
  • 文件名采用REST风格,使用复数名词小写,如存在层级关系则放入子目录中,使用-分割单词,例如:
    • users.html
    • users/(index|create|update|delete|list).html
    • upload-to-cdn.js (尽量避免,可以使用upload.js代替)
  • 变量名全部使用全写禁止使用拼音
  • 文档全部使用采用Markdown编写。
  • (不强制)尽量保持80列宽

Javascript

特别说明:

  • 类、变量与字段的命名规则
    • 避免使用复杂的继承,名使用驼峰规则,并以大写字母开头,例如: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中。

CSS

  • 类名全部使用小写减号-分割。
  • 避免使用id选择器。

HTML

  • 使用location.hash对前端页面进行路由。路由规则采用REST风格,并以#!/开头,例如:
    • users.html#!/1
    • users.html#!/1/update
  • 避免使用id和页内锚点。
  • 错误页应以HTTP状态码命名文件,例如:404.html。
  • 自定义的标签属性,以data-开头,减号-分割,例如:data-user-city="beijing"

可选资源