|
|
1
3
首先,很容易过度关注依赖关系和耦合。确保你没有把它复杂化。 有了免责声明,以下是我的建议。 依赖/耦合管理有三种不同的观点: 1) 物理结构(即组件依赖关系) 2) 逻辑结构(即命名空间依赖关系) 3) 实现结构(即类依赖关系) 对于大型应用程序,您至少需要检查所有3个,但通常可以确定优先级。 对于客户端部署的应用程序,数字1可能非常重要(即对于插件等)。对于部署在企业内部的应用程序(即asp.net),第1项通常并不那么重要(不包括跨多个应用程序重用的框架)。你通常可以很容易地部署整个应用程序,而不会为#1带来复杂结构的开销。 第2项往往更像是一个可维护性问题。了解您的层边界及其与名称空间的关系(即,您是为每个名称空间做一层,还是在逻辑级别进行不同的打包)。有时,工具可以通过查看逻辑依赖关系结构来帮助您强制执行层边界。 第3项实际上是关于做好课堂设计。每个优秀的开发人员都应该付出相当大的努力,以确保他只在类中承担适当的依赖关系。这说起来容易做起来难,而且通常是一项必须随着时间的推移而获得的技能。 为了更接近问题的核心,第1项实际上是关于VS解决方案中项目的布局。所以这不是一个需要衡量的项目。它更像是你在开始时设置并让它运行的东西。第2项是您可以在构建过程中使用工具检查的东西,以查看开发人员是否违反了任何规则。这实际上更多的是一种检查,而不是一种衡量。第3项确实是你想好好看看测量的一个。在你的代码库中找到具有高耦合度的类将是未来的痛点,确保这些类的质量。此外,在这个级别进行测量可以让你对代码库的质量(整体)有一些了解。此外,如果有人将一些非常粗俗的代码检查到你的代码库中,它可能会给你一个危险信号。 因此,如果你想确定优先级,请快速查看#1和#2。知道他们应该是什么样子。但对于大多数应用程序来说,第3项应该花费最多的时间。 当然,这个答案不包括大型框架(如.NET BCL)。这些婴儿需要非常小心地照顾#1。 :-) 否则,你最终会遇到这样的问题: “当前版本的.NET Framework包括各种基于GUI的库,这些库在Server Core中无法正常工作” http://www.winsupersite.com/showcase/win2008_ntk.asp 你不能跑的地方。NET在Windows Server 2008的无GUI安装上运行,因为该框架依赖于GUI库。.. 最后一件事。确保你熟悉良好依赖/耦合管理背后的原则。你可以在这里找到一个很好的列表: |
|
2
0
分发单元之间的耦合和依赖循环更“致命”,因为它会使部署程序变得非常困难,有时甚至会使编译程序变得非常难。 你基本上是对的,一个好的顶层设计将代码划分为逻辑包和清晰预定义的依赖关系,这将为你提供大部分帮助,唯一缺少的是将包正确地分离为发行版单元。 |
|
|
simply lemon · python上链表的添加方法 2 年前 |
|
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 2 年前 |
|
|
P N Singh · 在CPP Oops中调用对象而不创建它 2 年前 |
|
|
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 2 年前 |
|
|
Andy Votava · 从父类定义调用学生方法 2 年前 |