1

我可以做上述陈述吗?是对还是错?模块化和依赖关系是不同的东西还是相互关联的?帮助...

4

3 回答 3

1

它们是不同的东西,但显然它们是相关的。例如,如果你有两个(所谓的;-)组件 A 和 B,但 A 依赖于 B B 依赖于 A,那么它们并不是真正不同的组件——它们是显然仍然是一个单一的组件的奇怪拆分零件。为了实现真正的模块化,必须牢记依赖关系——依赖反转是实现干净、正确依赖关系的关键技术之一。我也强烈推荐这本经典书籍——虽然如果你选择的语言是 C++ 最相关,但它确实包含大量适用于许多其他语言的建议。

于 2009-11-25T05:00:07.483 回答
0

我同意亚历克斯的观点——如果模块纠缠不清,那么你就没有真正的不同模块。与更可见/本地化的内部结构相比,外部的、模块间的依赖关系更难控制。事实上,它们最常被忽视。

此外,虽然缠结是一种客观的、可衡量的反模式,但您应该考虑哪些依赖规则对您的特定项目和流程有意义。这些更主观,只能由您定义。

关键是,无论您决定什么约束,开发人员应该很容易知道它们的存在以及是否/何时破坏它们,并且如果违规进入集成/构建,则会警告高级人员。

Structure101支持所有这些,您可能还想查看LattixSotoArc 和 SonarJ。Jdepends 是一个开源项目,可以检测周期等。但是现在开始使用一些东西 - 代码永远不会随着时间的推移而变得不那么纠结!

于 2009-11-25T12:54:29.007 回答
0

假设我有一个巨大的单体代码。它不依赖于它之外的任何代码。我认为我们不会将其称为模块化。

假设我有一个清晰、精简、苗条的代码体,另一方面,它依赖于 60 个外部代码体。同样,我认为我们也不会称其为模块化。

因此,我认为模块化更多地是关于我们人类的认知限制,而不是其他任何事情。

所以:

  1. 依赖项的数量应该是可管理的。耦合?
  2. 发生依赖关系的位置应该很容易找到。PIN 的隔离(Atul Apte 的集成点)?
  3. 依赖于其他人的代码的大小也应该是可管理的。凝聚?
于 2012-12-09T05:41:02.953 回答