咚咚技术团队
  • 首页
  • 文章
    • 前端
      • 0.1 + 0.2 精度丢失深究
      • IOS H5 视频无法播放
      • H5 播放 amr 音频文件
      • IOS 10.x 版本在 Taro 中的兼容性问题
      • 百度 UEditor 引发的 cross-iframe 问题解决方案
      • 访问 www.banchengyun.com 时发生了什么
      • decodeURIComponent 与特殊符号
      • 前端埋点
    • 后端
      • Swoole 相关
        • MAC 本地环境执行 GuzzleHttp 时导致 Swoole 进程异常退出
      • Hyperf 相关
        • 在 phpstorm 中调试 hyperf 代码
        • Hyperf 1.x Proxy 缓存失效问题
      • K8s 相关
        • 搭建 k8s 集群
        • 使用 docker-compose 快速搭建 Hyperf + Redis 开发环境
        • Kubernetes Autoscaler
      • 其它
        • 幂等性和原子性
    • 测试
    • 效能提升
      • 优秀开发者的第一步:始于需求分析
      • 优秀开发者的第二步:如何阅读他人的代码
  • 活动
  • 课堂
  • 知识库
    • 公共
      • 什么是流程型组织
      • 半城云集成产品开发流程
      • 阿⾥云 Codeup 代码平台使⽤ & 迁移指南
      • git 使用规范
      • 关于第三方与服务号授权的问题
      • 收不到消息的排查方法
      • 系统安全
      • 前端编码规范
      • 后端编码规范
      • 测试规范
    • 前端
      • 规范
        • 前端编码规范
        • 咚咚技术栈
        • code-review 规范
        • git 工作流
        • Tapd 文档
      • 复盘经验
        • 2021.01 效能、规范、技术债讨论会
      • Code Review
        • SCRM 2020-07
    • 后端
      • 复盘经验
        • SCRM 2020 年 8 月
      • Code Review
        • SCRM 2020-07
    • 测试
      • 复盘经验
        • SCRM 2020 年 8 月
  • 项目文档
    • 前端
    • 后端:小程序
    • 后端:企业微信
  • 接口文档
  • 兴趣小组
    • golang 小组
    • 增长小组
    • 前端小组
  • 书单推荐
  • 生产环境 分析会
    • NO.2022.01
  • 生产环境 可用性
  • 团队活动
    • OpenTalk
      • NO.2021.Q3
      • NO.2020.Q2
    • WalkTogether
  • 关于我们
  • GitBook 使用说明
由 GitBook 提供支持
在本页

这有帮助吗?

  1. 知识库
  2. 后端
  3. Code Review

SCRM 2020-07

【Code Review】SCRM后端2020-07-11

本期Review发现及总结以下事项:

1、不应把整个不明确的$param参数传到service层, 可读性差,维护难。

2、sql单条查询结果不能直接链式toArray(),如遇空记录集时会报错。

3、语法习惯(可学习),少用if(...){很长逻辑代码}else{很长逻辑代码}嵌套代码,多用if(....){跳出},后续再写逻辑代码。

4、语法习惯:少用if(...){xx=aaa;}else{xx=bbb;},多用xx=bbb;if(...){xx=aaa;},或用三目运算,让代码更简洁优雅。

5、多层for循环写库操作,应先循环到数组,最后才写库,减少数据库IO,提高效率。

6、注意锁的使用:lockForUpdate读写锁死,有可能导致前端读取阻塞。

7、返回接口的字段有些无需格式化,如时间,展示状态,交由前端处理。

8、方法名与变量名称不允许简写,命名要规范(驼峰),保证可读性。

9、try catch里的事务,应在catch里写回滚,不应在try里回滚。因为try里抛出了异常,没有执行到rollback。

10、新建表Model里必须声名主键。不声名的话,使用save方法将报错。

上一页Code Review下一页测试

最后更新于3年前

这有帮助吗?