使用层关系图稳定应用程序结构

当团队按少量递增的方式开发代码时,将会频繁地更改和扩展代码。 这些更改会导致更为复杂的依赖关系,使得以后更改代码变得更加困难。 团队可使用层关系图来设计和验证应用程序中的各个组件之间的依赖关系,以防止出现此问题。

通过使用层关系图,团队可查看应用程序的主要组件以及这些组件之间的依赖关系,但无法查看有关这些组件的工作方式和交互方式的详细信息。

团队还可使用层关系图来确保代码符合体系结构。 在 Visual Studio 中绘制层关系图时,可以将代码中的类组分配给每个层,并用箭头指定依赖关系。 然后,可以使用 Visual Studio 验证代码中的依赖关系是否实际遵循了您在层关系图中绘制的箭头。

团队可通过以下方式确保未来的更改始终符合体系结构:定义签入策略来验证层关系图,并在团队的持续生成中使用它。

层验证简介

团队可以遵循本节中所述的过程来开始使用层验证。

在编写新代码时使用层验证

  1. 在首次为应用程序编写代码之前,绘制一个层关系图来表示主要组件及其依赖关系。 在项目的应用程序开发过程中,您可能会更改关系图。

    有关更多信息,请参见层关系图:参考

  2. 在创建命名空间或类时,将它们分配到层。

  3. 在签入代码之前,右击层关系图,然后单击**“验证体系结构”**。

  4. 向签入和常规生成过程中添加层验证。

    有关更多信息,请参见如何:对照层关系图验证 .NET 代码

在更新现有应用程序时引入层验证

  1. 使用体系结构资源管理器和定向关系图浏览应用程序,部分地了解其结构。 下列步骤将帮助增强您的理解。

  2. 介绍主要组件和依赖关系。 有关更多信息,请参见如何:从项目中创建层关系图

  3. 通过从体系结构资源管理器或解决方案资源管理器拖动元素,将元素分配给层

  4. 右击层关系图,然后单击**“验证体系结构”**。

  5. 检查任何错误报告,并使用以下方法纠正任何错误:

    • 修复层关系图。 改进层关系图以更准确地表示现有代码,或将代码元素重新分配到其他层。

    • 修复代码。 如果您认为层关系图的设计比现有代码的更好,则您可能需要更新代码,使其与层关系图相匹配。

      有关更多信息,请参见本主题后面的重构现有代码以符合层关系图。

  6. 重复上述步骤,直到不再报告任何错误。

  7. 向签入和常规生成过程中添加层验证。

    有关更多信息,请参见如何:对照层关系图验证 .NET 代码

重构现有代码以符合层关系图

当团队开始使用现有应用程序时,可能会发现应用程序的结构比其应有的结构更复杂。 当您尝试绘制一个层关系图并向层分配元素时,您将会发现此情况。 如果不引入在逻辑上不需要的层和依赖项,或引入跳过层或产生循环的依赖项,则团队无法使用一种可验证的方式向层分配元素。 类似这样的缺点会导致代码难以理解和更改,并使代码对不同的用户有不同的行为。

通过重构代码以改进其设计,团队可更轻松地使用代码。 当团队决定重构代码以改进设计时,应考虑以下几点:

  • 将重构更改与其他更改分开。 重构更改不应涉及用户情景中的任何重要更改。

  • 向产品积压工作中添加每个建议的更改,并包含对更改和预期好处的说明。

    提示

    将仅需要几个小时来实现和测试的重构更改作为 Bug 进行处理。 应将较大的重构更改添加到产品积压工作中,并将其与积压工作中的其他项一起进行评估和设置优先级。

  • 在重构之前,编写测试以确保您正在处理的区域的功能未发生更改。

更新层模型

在第一或第二个冲刺 (sprint) 之后,层关系图应保持不变。 通常,应将层验证错误视为代码中的错误,而非层模型中的错误。

当必须更新层模型时,请与您的团队一起审查建议的更改。

对层模型进行的大多数更改都可归入以下类别:

  • 扩展。 向代码中添加更多组件,并希望添加与之符合的层。

  • 优化。 当前将很多代码元素分配给单个层。 您希望通过将单个层分为多个较小的层来改进层验证的效果。

  • 重构。 您希望改进现有代码的依赖项结构。 当前层关系图中反映了现有结构。 因此,您希望同时改进层关系图和代码。

相关主题