开发禁忌
- 禁止系统物理删除数据(可根据规范定期清理历史无效数据);
- 禁止在控制器写业务逻辑;
- 禁止在事务中调用接口;
- 禁止嵌套事务,嵌套事务不易掌控;
- 禁止提交本地日志、测试文件、测试数据到仓库;
- 禁止硬编码,使用 .env 配置文件(如:接口地址、环境参数);
- 大表禁止删除字段 —— 避免索引重建,通过备注说明字段“已失效”;
- 大表禁止更新字段名称、类型、减少长度 —— 避免索引重建;
- 项目内文件存储,非 OSS 存储对象,只存相对路径。
安全准测
- 服务启用 SSL,敏感信息必须使用 POST 请求;
- 接口一律使用 Oauth2 鉴权;
- 必须使用 PDO 库执行 SQL(避免 SQL 注入);
- 前端安全防范:XSS、CSRF;
- 文件上传必须校验格式并且重命名,文件目录关闭执行权限;
- 日志文件敏感数据过滤(登陆密码、交易密码、银行卡号、身份证号等);
- 敏感数据操作必须记录日志。
编码规范
- 业务配置流水化,历史数据关联配置快照;
- 涉及文件上传(如:图片、附件),使用 OSS 服务;
- 前端防止重复点击,接口防止重复提交;
- 并发控制使用 Redis 原子锁;
- 记录所有调用第三方接口的请求日志;
- 导入数据上传的文件需备份且记录关联的操作(可定期归档);
- 回调接口、消费端处理必须保证幂等性。
数据操作
- SQL 查询、删改条件必须使用索引;
- 数据导入导出异步处理;
- 尽量不做联表查询,杜绝两个业务领域的联表查询;
- 迭代 SQL 发布,支持提前执行(增量、幂等)。
心中秩序
- 注释、注释、注释,一定要写注释;
- 修改被人引用的代码、别人写的代码,通知相关人并加入注释。
编程规范系列
网友评论