可能重复:
一个函数/过程/方法应该有多少行代码?
Out 团队有一个结构不完善的 ansi-c 代码项目。我想使用一些 CC 技术来整理代码库。
至于 C 代码,我们有很多指针和很多 NULL 指针陷阱要捕捉。因此,有很多看起来相似的片段。就像是
if (pointer == NULL)
{
function1();
function2();
}
到处都是。然后有很多函数将以相同的方式相互调用,只有一些变化,比如
function1();
function2a();
function3();
和
function1();
function2b();
function3();
到处都是。
我想将这些块提取为单个函数以减少 LOC 和复制粘贴。但这不仅会创建一个(有点)正交层,还会创建一些功能或多或少相同,除了一些细节。更糟糕的是,它会创建同时做很多事情的函数。
那么,什么是好的策略呢?更重要的是,高层的精益代码、低层的精益功能还是精益架构?哪个原则胜过另一个?关注点分离还是 DRY?
我想重构那个野兽,但不知道从哪里开始。
为了解释下面的示例并输入相同的名称。假设我们有
morningBath();
drinkCoffee();
if (checkMail())
{
answerMail();
}
并将其放入morningRoutine() 中。现在我们有
drinkTea();
morningBath();
if (checkMail())
{
answerMail();
}
并称之为 sundayMorningRoutine()。但是有重复的代码。或将 morningRoutine(day) 展开为
if (day == sunday){
drinkTea();
morningBath();
} else {
morningBath();
drinkCoffee();
}
if (checkMail())
{
answerMail();
}
或许
if (day == sunday){
drink(Tea);
morningBath();
} else {
morningBath();
drink(Coffee);
}
if (checkMail())
{
answerMail();
}
我想知道这是不是很好的风格……也许……谢谢你的提示!