wiki:pc_standard

开发部的开发规范简明列表

完整版: http://rdtrac.pc.com.cn/tracteam/wiki/Spec

代码开发规范

  1. 源码文件的编码统一使用GBK。
  2. 代码中使用常量而非直接数字。
  3. jsp服务器端代码不超过150行。
  4. 尽量增加http缓存使用范围和时间。
  5. 尽量缩小Cookie设定范围。总容量不要超过100个字节,不能设置中文内容。生存时间不要超过4个小时。
  6. EL表达式需指定最小作用域去获取。
  7. 前台页面不允许使用session。
  8. 静态资源应统一放在www静态服务器上。
  9. MC的key不能包含英文字母 + 数字 + 下滑线外的其他符号。
  10. 在服务端,要对用户提交的数据进行检验;对非查询性质的请求,采用POST方式;对敏感数据接口,应添加网站referer的检验和内网ip的授权。
  11. SQL语句须使用绑定变量的方式赋值。
  12. 数据显示时转换非法字符。
  13. 受限页面需要获取授权后才可以使用;风险过大工具类页面禁止编写;代码中不能含有密码等敏感信息配置。
  14. 不能轻易改变数据库和缓存服务器的默认的最大连接数设置
  15. 在一个稳定后访问请求中,对MC的总请求数不能超过100次
  16. 对于内部应用之间采用R系统的调用。
  17. 文件和信息管理须使用合理和统一的文件结构。
  18. 报错信息要进行加工转换后才可以显示
  19. 统一使用checkstyle插件及其默认配置去检查和调整各自代码的编码风格。

数据库规范

  1. where 条件中,限制数据量最严格的字段作为复合索引的前导字段,若相近则把访问最频繁的字段作为前导字段。
  2. 索引应该具有高选择性。
  3. Pg数据库在同一个表上可以使用到多个索引,mysql 与oracle 上不建议;pg更适合于一个sql搞定所有的事情。
  4. Mysql 数据库建议把嵌套sql 拆解为多个单表查询的sql进行
  5. group by 或者order by 的字段应该设置为前导字段。
  6. 视图中不允许order by 排序。
  7. Mysql中order by 字句的字段名不建议落在不同的表上。
  8. Mysql 使用order by null 避免排序操作执行,PG 不支持该操作,oracle 10g 默认是不排序的了。
  9. 针对mysql的字符类型字段的查询可以考虑添加前缀索引。
  10. 索引列不建议参与运算,除非建立函数索引。
  11. 针对高并发的WEB应用,避免使用外键。
  12. 注意where条件中数据类型的一致性.
  13. PG 数据库针对java jdbc 的游标使用,必须设置autocommit=off
  14. mysql的sql语句中应该禁止使用运行时求值的函数。
  15. 涉及到实时入库应先写内存,然后批量入库。
  16. 对某个字段的修改,建议单独设置函数/方法处理。
  17. Sql语句的编写,应该使用绑定变量。
  18. 优先考虑基于主键分页方式。
  19. Mysql数据库的二级索引,在字段的列表的最后,加上primarykey 字段。
  20. 对表字段进行distinct 操作 最好能转换成group by 操作。