- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚通过 NDepend 运行我的一个项目,报告将我的程序集置于痛苦区域的角落。我只是想知道这是否是我应该担心的事情。
疼痛区的真正含义是什么?是不是说耦合度很高,事情不是很容易改变的。
我最近删除了很多接口(interface)并密封了很多类,因为我不希望用户扩展 API(仅在某些地方)。它是 com 对象的 .NET 包装器,因此用户不需要扩展任何东西。
有哪些好方法可以让我脱离痛苦地带?
谢谢
最佳答案
Zone of Pain 的理念是检测以下组件:- 是具体的(即他们的用户与类而不是接口(interface)绑定(bind))- 很受欢迎(即它们被许多其他组件使用)。
流行指的是稳定性的概念。如果一个组件在更改时会破坏许多正在使用它的其他组件,那么它就是稳定的。一句话:流行=稳定
另一个想法是接口(interface)比类更不容易发生变化。这就是为什么人们普遍认为使用接口(interface)而不是类更可取,你被“静态”破坏的机会更少+你被“语义”破坏的机会更少,因为你的代码不应该是与任何实现细节(高度可能发生变化)绑定(bind)。
因此,具体 + 稳定会使组件面临一些潜在的开发痛苦:它很容易发生变化 + 每次变化都可能破坏大量代码。
在您的情况和其他一些情况下,处于痛苦地带不一定是坏事。重要的是要意识到这个事实 + 如果你的组件确实引发了痛苦,那么将你的代码回滚到接口(interface)。
关于.net - 退出痛苦地带 - NDepend,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1118582/
我以前从未使用过 wxWidgets,我很想尝试一下,但我在开始时遇到了一百万个问题。 我在 Visual Studio 2010 上使用 wxWidgets 2.9.1。我已经完成了批构建以在每个配
这个问题在这里已经有了答案: Xcode: code loses syntax coloring (15 个答案) 关闭 4 年前。 我在使用 Xcode 4 (4.3.1 - 4E1019) 时遇
以下代码加载演出,清除演出事件集合,然后添加新事件。 Data.LinqToSQL.Gig dbGig = DBContext.Gigs.Where(x => x.ID ==
我正在尝试将 FontAwesome 用于我开发的 jQuery 灯箱插件上的一些控制图标。对于我的一生,我无法让图标在 IE7 中显示。我按照这里的建议reload the IE7 styleshe
使用sqlite3、python 我有一个蹩脚的旧文件legacy_sales: item | year | week | mon | tue | wed | thu | fri | sat |sun
似乎我整个成年生活都被 VC++ 链接器提示或犹豫所折磨,因为各种库不同意使用哪个版本的运行时库。我从来没有心情去掌握那个令人沮丧的主题。所以我只是试着弄乱它,直到它起作用。错误消息永远不会有用。微软
我有 Auto Complete Mode为 Emacs 安装。 首先:当我输入声明时,我会得到正常的自动完成行为: 所以我点击了 Tab 来完成——没问题。但后来我点击了 ;: 它会立即尝试完成某些
伙计们,我对添加对 Microsoft.Web.Infrastructure.dll 的引用感到非常痛苦,也许有人可以帮我解决这个问题。 我正在尝试添加对 Microsoft.Web.Infrastr
我正在尝试使用 docker-compose 构建一个简单的待办事项应用程序,该应用程序具有 3 个容器:一个带有 sqlalchemy 和 marshmallow 的 Flask Rest API、
我一直在努力部署一个相对较大的 Rails 应用程序(Rails 2.3.5),最近做了一些负载测试,我们发现该站点的吞吐量远低于预期的流量水平。 我们在标准的 32 位服务器上运行,使用 Cento
我已经完美地完成了这个练习: import acm.program.*; import acm.graphics.*; import java.awt.event.*; public class Pr
我是一名优秀的程序员,十分优秀!