小编Sim*_*nHL的帖子

你如何重构一个庞大的混乱代码库?

我的代码很乱.不可否认,我自己写了一年 - 一年前.它没有得到很好的评论,但它也不是很复杂,所以我可以理解它 - 只是不足以知道从哪里开始重构它.

我违反了过去一年中我读过的所有规则.有些职责有多个职责,有间接访问(我忘记了这个术语 - 类似的东西foo.bar.doSomething()),就像我说的那样评论不好.最重要的是,它是游戏的开始,所以图形与数据耦合,或者我试图解耦图形和数据的地方,我制作数据public以便图形能够访问数据需要...

这是一个巨大的混乱!我从哪里开始?你会如何开始这样的事情?

我目前的方法是获取变量并将它们切换为私有,然后重构破坏的碎片,但这似乎不够.请建议其他策略来浏览这个烂摊子并把它变成干净的东西,以便我可以继续我离开的地方!


两天后更新:我一直在绘制类似UML的图表,并沿途捕捉一些"低挂水果".我甚至发现了一些代码是新功能的开始,但是当我试图减少一切时,我已经能够删除这些位并使项目感觉更清洁.在绑定我的测试用例之前,我可能会尽可能地进行重构(当然,只有那些100%肯定不影响功能的东西!),所以我不必重构测试用例.改变功能.(你认为我做得对吗,或者你认为,我更容易吸吮它并先写下测试吗?)

请投票选出最佳答案,以便我公平地标记!您也可以随意添加自己的答案,还有空间给您!我会再给它一天左右,然后可能将最高投票的答案标记为已接受.

感谢迄今为止做出回应的所有人!


2010年6月25日:我发现了一篇博文,它直接回答了那个似乎对编程有很好掌握的人的问题:(或者,如果你读了他的文章,可能不会:))

为此,当我需要重构代码时,我做了四件事:

  1. 确定代码的用途是什么
  2. 绘制所涉及的类的UML和动作图
  3. 四处寻找合适的设计模式
  4. 确定当前类和方法的更清晰的名称

language-agnostic oop refactoring

40
推荐指数
5
解决办法
6096
查看次数

mvc razor视图中的整数扩展

我是ASP.NET MVC和Extension方法的新手.

我创建了两个我希望在我的视图中使用的扩展:

public static class Extensions
{
    public static string ToYesNo(this bool value)
    {
        return value ? "Yes" : "No";
    }

    public static string MonthToString(this int value)
    {
        return (value >= 1 && value <= 12) ? CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(value) : "";
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以在视图中使用带有bool的ToYesNo,但我无法使用整数查看MonthToString.我明白了:

'int' does not contain a definition for 'MonthToString'
Run Code Online (Sandbox Code Playgroud)

扩展名在名为BitvaerkAdmin.Models的名称空间中,我在cshtml文件中引用它.

为什么我不能使用我的整数扩展名?

编辑:

我在我的视图中引用扩展名,如下所示:

@using BitvaerkAdmin.Models


<h3>
    @ViewBag.Month.MonthToString()
</h3>



@foreach (Order order in ViewBag.Orders)
{
    <td>
    @order.Valid.ToYesNo()
    </td>
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc integer razor

1
推荐指数
1
解决办法
2845
查看次数

标签 统计

asp.net-mvc ×1

c# ×1

integer ×1

language-agnostic ×1

oop ×1

razor ×1

refactoring ×1