保理/重构程序

use*_*324 4 c++ refactoring

"计算不良"和"重构"这个术语的含义是什么意思?你能举一个简单的例子来理解基本的区别吗?

Fru*_*ner 8

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

一个非常简单的例子,不好因式分解的代码:

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);
Run Code Online (Sandbox Code Playgroud)

看看同一组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);
Run Code Online (Sandbox Code Playgroud)

重构的代码使用一个过程来执行重复的任务,如果do_task4需要添加,它只需要在过程内完成,而不是像以前那样在4个不同的地方完成.

还有其他方法可以重构这个,当然如果你需要对do_taskn函数有所不同,这可能不起作用,但这通常是你开始的方式......


ddi*_*rov 5

不良因素意味着包含冗余,或以一种使核心依赖难以看到的方式组织.该术语最初来自数学:

Factoring: Finding what to multiply together to get an expression.
Run Code Online (Sandbox Code Playgroud)

有许多方法来表达表达式,就像有很多方法来编写一个实现相同结果的程序一样.我们都知道形式代数,找到一个合适的因子可以使整个方程更容易解​​决.

  • +1,因为这是解释保理实际含义的唯一问题。 (2认同)