c++ - 分解/重构程序

标签 c++ refactoring

术语“分解不良”和“重构”程序是什么意思?你能举一个简单的例子来理解基本的区别吗?

最佳答案

重构是一种通用技术,可以指代许多任务。它通常意味着清理代码、去除冗余、提高代码质量和可读性。

分解不良代码的一个非常简单的例子:

do_task1("abc");
do_task2(123);
do_task3(7.43);
...
//100 lines later:
do_task1("abc");
do_task2(123);
do_task3(7.43);
...
//80 lines later:
do_task1("abc");
do_task2(123);
do_task3(7.43);

看到同一组 3 行是如何一遍又一遍地重复的吗?

重构这段代码可能会得到:

procedure do_tasks1to3(x,y,z)
    do_task1(x);
    do_task2(y);
    do_task3(z);
end

do_tasks1to3("abc",123,7.43);
...
//100 lines later:
do_tasks1to3("abc",123,7.43);
...
//80 lines later:
do_tasks1to3("abc",123,7.43);

重构后的代码使用一个过程来执行重复的任务,如果需要添加一个do_task4,它只需要在过程中完成,而不是在4个单独的地方,比如之前。

还有其他方法可以重构它,当然,如果您需要对 do_taskn 函数进行变体,这可能行不通,但这通常是您开始的方式...

关于c++ - 分解/重构程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5600257/

相关文章:

c++ - std::invoke_result 在具有自动返回类型的模板函数中不起作用

api - 将微服务内部错误代码组合在一起?

python - 帮助将一个大类一分为二的工具

mysql - 我应该如何将redis帐户信息移动到mysql?

c++ - 添加到文件名前面

c++ - Xcode 文件夹和组混淆

c++ - 内部模板类继承

c++ - 字符数组转int

python - 如何在 emacs 中使 ropemacs 更快?

delphi - 如何/如果仅使用表单和数据模块重构 Delphi 程序