一、业务检查

1. 业务流程正确性

代码实现的业务流程是否合理,是否按照产品需求设计,或者是否对之前的业务流程有影响。

2. 业务流程交互

业务流程的交互是否合理,即一个服务的多个接口的调用顺序是否符合用户习惯。

3. 业务的可拓展性

如某项业务数据的存储和结构是否能够支持未来业务的变化,如现在是统计A项数据,而未来可能统计与A相关的B项数据。

二、设计检查

1. 接口和方法设计
  1. 传参是否合理,如是否存在冗余传参,参数数据类型是否合理;
  2. 方法内部的相关判断和边界检查是否合理,如是否有考虑可能为null,0等情况;
  3. 方法内部的数据类型选型是否合理,是否可能存在潜在问题,如可能存在并发的地方使用了hashmap,而不是concurrenthashmap;
  4. 方法的数据字段的作用域是否合理,是否存在内存泄露风险,如静态集合类内部包含的对象会存在内存泄露的风险;
  5. 方法涉及是否考虑了异常处理,异常打印是否包含了接口核心参数的打印;
  6. 方法是否引入的新的第三方包的使用,第三方包是否存在风险,不同版本是否存在差异,如jackjson序列化包不同版本针对日期Date类型的序列化方式存在差异。
2. 数据库和缓存设计
  1. 数据表是反应业务逻辑的,故表的字段类型,长度等是否合理,是否存在溢出风险;表之间的关联是否合理;字段是否存在冗余,冗余是否是有益的;
  2. 分布式缓存和本地缓存是否合理,缓存失效和更新策略是否合理,是否存在缓存崩溃,缓存穿透问题;
  3. 表名,字段名,缓存key的命名是否合理。
3. 可读性和可维护性
  1. 注释与命名:关键设计是否有注释,接口、方法、字段命名是否能够反应业务含义;
  2. 方法是否存在太大问题,如果逻辑太多,可以考虑拆分为多个小方法;
  3. 代码风格问题,如缩进是否统一。

Code Review的基本思路相关推荐

  1. Google是如何做Code Review的?| CSDN原力计划

    作者 | 帅昕 xindoo 编辑 | 屠敏 出品 | CSDN 博客 我和几个小伙伴一起翻译了Google前一段时间放出来的Google's Engineering Practices docume ...

  2. 刚进美团,就被各种Code Review,真的有必要吗?

    点击关注公众号,Java干货及时送达 众所周知,Code Review是开发过程中一个非常重要的环节,但是很多公司或者团队是没有这一环节的,今天笔者结合自己所在团队,浅谈Code Review的价值及 ...

  3. 刚入职,就被各种 Code Review,真的有必要吗?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:juejin.cn/post/ 6882333635 ...

  4. 有必要做 Code Review 吗???

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料!作者:梨香 链接:https://juejin.im/pos ...

  5. 你太菜了,竟然不知道Code Review...

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:宝玉   来源:http://1t.click/aA4h 我 ...

  6. 作为CTO,我为什么必须要求代码进行Code Review!

    来源:宝玉 链接:https://cnblogs.com/dotey/p/11216430.html 我一直认为Code Review(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量, ...

  7. 万字详文告诉你如何做 Code Review

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|机器学习实验室 前言 作为公司代码委员会 golang 分 ...

  8. 在腾讯,如何做 Code Review?

    作者:cheaterlin,腾讯 PCG 后台开发工程师 前言 作为公司代码委员会 golang 分会的理事,我 review 了很多代码,看了很多别人的 review 评论.发现不少同学 code ...

  9. Code Review最佳实践

    我一直认为Code Review(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题.包括像Google.微软这些公司,Code Review都是基本要求,代 ...

最新文章

  1. 4.通过三个交换机实现VLAN间通信
  2. poi向word插入图片_如何使用word裁剪图片图形?如何使用word修整图片?
  3. windows编译libevent时报告“缺少print_winsock_errors.obj”的解决
  4. c++语言 tcp例子,C++中TCP通信实现文件传输
  5. html getelementbyid 修改图片_如何使用HTML、CSS和JS轻松构建桌面应用程序
  6. mysql5.045_数据库升级后goldengate报错,ORA-04045
  7. Linux 内核版本号查看
  8. HashMap,TreeMap,Hashtable,LinkedHashMap的区别
  9. Paper-----文献引用格式
  10. 【科技素养题】少儿编程 蓝桥杯青少组科技素养题真题及解析第16套
  11. 计算机重启删除了应用怎么办,电脑文件被删除怎么恢复?电脑总是无故重启怎么办...
  12. 连续翻页浏览器面临的共同问题
  13. 理解JDBC/JPA/Mybatis/Hibernate
  14. 手游测试常见10个坑及填坑建议
  15. vue 实现上拉加载下拉刷新(思路贼清晰)
  16. 利用微信小程序实现web监控界面
  17. 十大低代码开发平台排行榜,低代码开发平台哪个好用?
  18. [经验] 轻松解读PID控制算法的三种参数的自整定方法
  19. C语言 | 函数实现比较大小
  20. 使用matlab实现ISD悬架离散仿真分析

热门文章

  1. Pyecharts数据可视化之折线图(阶梯图、平滑曲线图、面积图)、K线图、常用配置项
  2. STM32F10xxx20xxx21xxxL1xxxx Cortex-M3程序设计手册 阅读笔记四(1):关于STM32核心外设
  3. 关于CSS九宫格展示图片写法
  4. centos-sftp
  5. Python实现猫脸识别 | 喵主子福利
  6. 【饭谈】【测试圈相亲平台开发流程】:页面样式开发心得【工匠、智者、航海家】
  7. 12V转5V,3.3V和24V转5V,3.3V的芯片功能介绍
  8. php-fpm error 慢执行,php-fpm的pool、php-fpm慢执行日志、open_basedir、php-fpm进程管理
  9. springboot 自定义日期出入参
  10. 前端代码规范之代码格式化配置