首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >维护-平衡何时以及是否进行更改的问题

维护-平衡何时以及是否进行更改的问题
EN

Stack Overflow用户
提问于 2009-03-05 18:14:57
回答 3查看 103关注 0票数 1

我为其他人维护了几个库。在经历了几个版本之后,如果我必须重新做一次,我会做一些不同的事情。

问题是:我应该从头再来一遍吗?我想我们都面临着这样的两难境地--如何平衡维护活动的帮助和变化的破坏性影响。

显然,对于bug来说,改变是势在必行的。没有进退两难的局面。对于新功能,这是一个效用与增加的复杂性的问题。我对处理这个问题感到很舒服。

我问的是bugfix和新特性之间的模糊空间。一个例子是维护以符合框架设计指南或CLS遵从性。对于一个库,我写它时没有考虑到CLS兼容性,然后人们要求它。结果,我不得不修改接口,将uint换成int。这是一个颠覆性的变化,但几乎没有收获(对大多数人来说)。

另一个问题: FxCop合规性。为了让FxCop高兴,我不得不更改一些方法的参数名。但这些更改实际上只影响使用反射的人-类型没有更改,只有参数的名称。

我现在要处理的问题是:框架设计指南。关于事件的指导方针说,事件应该有一个带有两个参数的签名:(Object source,EventArgs e)。但是我那天缺席了我的框架设计课程;)。我的库中的事件目前只有一个EventArgs参数。

我现在正在向库中添加新事件。新事件是否应该遵循框架设计指南?或者已经在库中建立的模式?如果我使用新事件的设计指南,我是否应该修改现有事件以也符合设计指南?如果是这样,如何进行迁移?我应该使用过时属性吗?有多少个版本?

更广泛地说,我对这个介于bugfix和新特性之间的模糊区域的维护问题感兴趣。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-05 18:22:42

与其修改旧的代码,不如弃用它。使用适当的设计开始您的新代码,并使用旧设计为各个部分编写替换代码。最终,你会得到一个系统,所有系统都使用了适当的设计,但这不会是一个非常破坏性的变化。

票数 1
EN

Stack Overflow用户

发布于 2009-03-05 18:25:31

如果你计划做出突破性的改变,你肯定要进行大量的沟通。即使你将以版本2重新启动你的库,你也必须告诉你的用户,版本1只会在未来修复错误,你将走向版本2的开发,在那里他们可以找到所有的新功能。

但我想我会走这条路。支持版本1用于错误修复,并移植新版本2用于破坏性更改。

票数 0
EN

Stack Overflow用户

发布于 2009-03-05 18:27:29

如果我尝试遵循一些我以前没有遵循的准则,我会在新的代码中这样做。对于现有的代码,我将修复它们,除非它们被损坏。但是,如果您在现有代码中发现一些错误,最好在修复这些错误的同时应用指南。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/615906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档