审查核心:如何阅读与分析代码变更(Diff)
审查核心:如何阅读与分析代码变更(Diff)上周排查一个线上问题,系统在特定负载下会概率性崩溃。查了半天日志没头绪,最后翻出某次合并请求的diff,发现有人“顺手”改了个缓冲区大小的宏定义,从1024调成了512。就是这个看似无关的改动,在高并发时把栈挤爆了。这件事让我再次意识到:读diff不是看热闹,是破案。一、先看上下文,再看改动打开diff别急着盯绿色红色,先扫一眼这次改的是哪个模块、哪些文件。是业务逻辑层还是底层驱动?是修复bug还是新增功能?心里有个地图,才知道这些改动在全局的位置。我习惯先拉取变更文件的完整版本,左右分屏对比看。光看diff片段容易误解,尤其是那些只显示几行的上下文。有一次同事改了个状态机判断条件,diff只显示了三行,看起来没问题。后来拉出整个函数一看,那个条件在循环里,改完直接死循环了。二、警惕“顺手”修改这是最隐蔽的坑。有人修一个变量命名,顺手“优化”了相邻的几行逻辑;有人加个日志打印,把静态缓冲区改成动态分配。这些改动往往不会写在提交说明里,但破坏力可能比主线修改还大。重点盯这些区域:宏定义和常量修改(开头那个坑就是)全局变量或静态变量的初始化错误处理分支的返回值内存分配和释放的配对线程锁的持有范围上次看到个提交说是“修正拼写错误”,结果把mutex_unlo
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2523386.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!