针对`Code View`友好的代码重构方法
针对Code View
友好的代码重构方法
本文记录在开发过程中,写出对 Code ReView
友好代码的若干方法。
抽取函数
将较为独立的语句抽取为函数,是一种很常见的重构手段,本文在此基础上,进一步改进,形成对 Code Review
友好的代码组织。
一句话概括:将抽取后的函数放在原函数较远处,而不是直接放在原函数的上下。
下面来举例说明:
假设有以下函数:
void ExtraceData(std::string& strInfo)
{
int a = 100;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1; // 模拟有很多操作
a += 1;
a += 1;
a += 1;
strInfo = std::to_string(a);
}
中间一大串可认为是对数据进行加工,最后赋值给输出参数。如果将中间一段抽取为函数,按照现在重构工具的调性,会将抽取后的函数直接放在原函数之上,将抽取处替换为对新函数的调用,形成下面的效果:
int Add(int a)
{
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
a += 1;
return a;
}
void ExtraceData(std::string& strInfo)
{
int a = 100;
a = Add(a);
strInfo = std::to_string(a);
}
从代码上看,这样一点问题也没有。但提交查看代码改动时,却是这样的:
从左右改动对比上看,要努努力,仔细看,才能看出来 Add
函数是重构提取的函数。出现这样的原因是代码对比工具是按行对比的,当前后行内容未改变时,会认为未改变。
现在换另一种做法,将重构后的函数放在距离原函数稍远处,会得到这样的效果:
这种做法,可以将从视觉上,分离抽取函数的动作以及函数内部细节。从代码对比结果上,一眼看出,本次改动是将左边这块代码抽取为名为 Add
的函数,后续看到该函数,就有一个心理预期,如果不关心函数内部细节,可直接忽略。
- 对他人来说,提高代码阅读效率
- 对自己来说,减少出错的可能
对人对己都有好处。
至于将重构后的函数,具体放在哪个位置,按照一般从上往下的代码阅读顺序来,放在原函数的下方比较合理。这会让阅读者先看到该函数的使用场景,往下再看到具体实现,较符合认知,至于具体实现细节,有需要就关心,没需要直接略过。
具体放多远,看个人喜好,只要能从代码前后对比中,分离调用和实现就行。
小结
本文提出从代码提交的角度,提出一种重构代码的组织方法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2021-08-18 ETF业务知识
2021-08-18 Git学习总结2
2021-08-18 Git学习总结1