开发部的开发规范简明列表
完整版: http://rdtrac.pc.com.cn/tracteam/wiki/Spec
代码开发规范
- 源码文件的编码统一使用GBK。
- 代码中使用常量而非直接数字。
- jsp服务器端代码不超过150行。
- 尽量增加http缓存使用范围和时间。
- 尽量缩小Cookie设定范围。总容量不要超过100个字节,不能设置中文内容。生存时间不要超过4个小时。
- EL表达式需指定最小作用域去获取。
- 前台页面不允许使用session。
- 静态资源应统一放在www静态服务器上。
- MC的key不能包含英文字母 + 数字 + 下滑线外的其他符号。
- 在服务端,要对用户提交的数据进行检验;对非查询性质的请求,采用POST方式;对敏感数据接口,应添加网站referer的检验和内网ip的授权。
- SQL语句须使用绑定变量的方式赋值。
- 数据显示时转换非法字符。
- 受限页面需要获取授权后才可以使用;风险过大工具类页面禁止编写;代码中不能含有密码等敏感信息配置。
- 不能轻易改变数据库和缓存服务器的默认的最大连接数设置
- 在一个稳定后访问请求中,对MC的总请求数不能超过100次
- 对于内部应用之间采用R系统的调用。
- 文件和信息管理须使用合理和统一的文件结构。
- 报错信息要进行加工转换后才可以显示
- 统一使用checkstyle插件及其默认配置去检查和调整各自代码的编码风格。
数据库规范
- where 条件中,限制数据量最严格的字段作为复合索引的前导字段,若相近则把访问最频繁的字段作为前导字段。
- 索引应该具有高选择性。
- Pg数据库在同一个表上可以使用到多个索引,mysql 与oracle 上不建议;pg更适合于一个sql搞定所有的事情。
- Mysql 数据库建议把嵌套sql 拆解为多个单表查询的sql进行
- group by 或者order by 的字段应该设置为前导字段。
- 视图中不允许order by 排序。
- Mysql中order by 字句的字段名不建议落在不同的表上。
- Mysql 使用order by null 避免排序操作执行,PG 不支持该操作,oracle 10g 默认是不排序的了。
- 针对mysql的字符类型字段的查询可以考虑添加前缀索引。
- 索引列不建议参与运算,除非建立函数索引。
- 针对高并发的WEB应用,避免使用外键。
- 注意where条件中数据类型的一致性.
- PG 数据库针对java jdbc 的游标使用,必须设置autocommit=off
- mysql的sql语句中应该禁止使用运行时求值的函数。
- 涉及到实时入库应先写内存,然后批量入库。
- 对某个字段的修改,建议单独设置函数/方法处理。
- Sql语句的编写,应该使用绑定变量。
- 优先考虑基于主键分页方式。
- Mysql数据库的二级索引,在字段的列表的最后,加上primarykey 字段。
- 对表字段进行distinct 操作 最好能转换成group by 操作。
![(please configure the [header_logo] section in trac.ini)](http://www1.pconline.com.cn/hr/2009/global/images/logo.gif)