一、最重要:这里定义代码审核必须检查的项目:
这些项目都涉及较严重破坏或者难以逆转的操作。
- SQL是否有慢查询 包括:
- 未使用索引的查询,或者忘记设置索引,或者索引不合理:比如没有给唯一数据设计唯一索引或者并发锁
- 查询数据量过多,大多数丢弃
- 频繁的或者很容易触发大分页查询或者大量数据排序,比如count。
- 在循环体内执行SQL
文件上传路径
任何涉及到文件上传路径的地方,要检查文件路径是否符合规范。 比如 勋章图片: 不合理:****.com/forums/1_icon.png 应该为:****.com/forums/medal/1_icon.png 可以使用ID作为图片名称的,都要使用ID。不要随意取名字。url命名不符合规范
相比变量、函数名不符合规范,url不符合规范,或者随意取名带来的破坏更大 难以修正,应该重视。- 输入输出
- 直接将用户输入输出到页面上(XSS),常见的地方如下
- 分页
- 搜索
- 输入直接注入到SQL中
- 直接将用户输入输出到页面上(XSS),常见的地方如下
- POST GET请求
- 容易忽略需要POST的情况如下: 投票、鲜花、鸡蛋、删除、关注、点赞、一键**、签到、验证
- 容易忽略需要GET请求的情况:API读接口
二、其次重要:容易被说成“坑”的一些问题
现有功能重新实现一套
就如字面上所说的,重复发明轮子问题。- 数据库设计问题
- 命名不规范 相比函数名,改数据库名往往更困难,特别有的还分表
- 类型不规范
为某些特定需求,修改通用代码库的问题
尽量避免
三、最后需要注意的内容
这个部分经常被当做最重要的部分,虽然如此,但是这个部分其实是最容易重构的部分,是改的动的东西,如果一定要分优先级,我还是建议放在最后检查。以为你前面的2项问题真的是很痛苦。
变量、函数等命名规范
相比其他代码,这个问题容易修复,发布后也可以重构,加上框架有命名限制,所以放在最后。代码逻辑问题
由于有测试和运营部门,所以代码逻辑问题出现概率较小,多数在测试过程中程序员会找到这些问题。代码优化
提升效率、简洁、清晰。