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