语义版本控制(中断更改)



在语义版本控制中,运行时错误是否被认为是一个破坏性的更改?

假设我有一个名为WelcomeToUse(字符串hellow(的方法,然后我将该方法的逻辑更改到现在引入运行时错误的地步,我已经意识到了这一点。我认为这种情况是一种突破性的改变吗?

方法的公共接口保证了什么?你的图书馆使用范围有多广?我将假定";运行时错误";意味着抛出异常。

文档应该说明是否以及何时应该抛出异常,如果您能够保持在文档行为中,那么从技术上讲,您不会更改公共API,只是纠正公共API未实现的错误。

如果没有明确的文档,那么您可能需要考虑开发人员应该期望什么,以及新异常产生实际问题的可能性有多大。如果您的方法在某些情况下已经抛出异常,那么在大多数情况下,添加它抛出的另一个事例的效果可能不会太大。

这也将取决于图书馆的使用次数。对于一个小型的内部图书馆来说,这可能没有那么重要,因为受影响的人群非常有限。另一方面,如果库是windows的一部分,你可能会激怒数百万用户和数千名开发人员,因此你可能会决定永远保留实际的错误,因为大量的软件已经开始依赖这些错误。

请注意,决定更改是小更改还是大更改可能不如决定何时进行更改重要。如果我使用图书馆,我希望它尽可能稳定。过于频繁地进行破坏性的主要发布几乎和在非主要发布中进行破坏性更改一样糟糕。

最新更新