<分区>
Possible Duplicate:
How many lines of code should a function/procedure/method have?
Out 团队有一个结构不佳的 ansi-c 代码项目。我想使用一些 CC 技术来整理代码库。
至于 C 代码,我们有很多指针和很多 NULL 指针陷阱需要捕捉。因此有很多看起来很相似的片段。这就像
if (pointer == NULL)
{
function1();
function2();
}
无处不在。然后有大量的函数将以相同的方式相互调用,只是有一些变化,比如
function1();
function2a();
function3();
和
function1();
function2b();
function3();
无处不在。
我想将这些 block 提取为单个函数以减少 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();
}
我想知道这是否是好的风格..也许..感谢您的提示!