代码之家  ›  专栏  ›  技术社区  ›  Aheho

重构以将业务逻辑与代码隐藏分离

  •  2
  • Aheho  · 技术社区  · 15 年前

    我继承了一个ASP.NET项目,发现代码隐藏页包含很多业务逻辑。

    我已经决定,在大多数情况下,与其尝试进行大规模重构,不如将工作代码留在原地。但是,有些页面执行的功能可以在用于批处理的命令行实用程序中重新使用。我想把精力集中在这些页面上,重构业务逻辑,并在其他实用程序中引用它们。

    我目前正在寻找重构这个特定的页面,它在代码后面有6200行代码。我发现,要找到代码隐藏和页面特定对象之间的依赖关系是一项非常繁琐的工作。

    我想知道是否有人知道一个工具,一个vs特性,或者一个方法,可以让我系统地定位和攻击这些依赖性?它允许我识别代码中引用视图状态、文本框、面板、下拉列表等的任何区域,这样我就可以将这些引用移动到方法参数,并最终将此功能移出page类。

    3 回复  |  直到 10 年前
        1
  •  3
  •   Dave Anderson    15 年前

    我首先检查任何不遵循 Single Responsibility Principle 把它们分解,这样它们就可以了。完成后,您应该能够处理代码的功能,并且能够更容易地对代码进行分组,并将其移动到专门的类中,以便这些组创建必要的对象,以便在您进行时使用。我发现 ReSharper 是一个非常有用的工具来帮助完成这一切。最终,在成功重构之前,您将始终需要对代码中的基本原理有一个扎实的了解。

    我们都曾在某个时刻出现过,我对你深表同情,但你愿意尝试这一切,意味着你已经朝着正确的方向前进了。祝你好运!

        2
  •  0
  •   this. __curious_geek    15 年前
        3
  •  0
  •   Zeus    15 年前

    哇,首先很抱歉。任何将6000行代码放在代码后面的人都应该受到打击:)

    现在我已经完成了这种重构。我将分几个步骤来处理:

    (1)创建逻辑区域和结束区域 类似-保存方法、加载方法或 (2)查看您是否可以基于业务中的这些区域创建物理业务对象 层 (3)完成后,只需将所有代码引用到适当的类。

    我知道你想找个工具把这一切都干掉,但我担心这样做你会挖到坑里的北斗七星。理解代码并逐个移动它会让您更好地理解代码。