首页 > 解决方案 > 如果行为保持不变,更改函数返回的类型是否构成向后不兼容的更改?

问题描述

如果我在我的 apiresolve的版本中具有类似的功能并返回,并且期望得到响应,如果我要更改为返回并响应,这是否需要对我的 api 的主要版本产生影响?还是因为行为方式与我只能增加次要的方式完全相同?1.0.0resolveSomeObjectSomeObject#success?#failure?resolveSomeNewObjectSomeNewObject#success?#failure?SomeNewObjectSomeObject

需要注意的是,这个 api 是一种非强类型语言(Ruby)

标签: semantic-versioning

解决方案


限定符是它是否可以破坏代码。严格来说,重大更改是一种可能会破坏那些使用您的 API 的代码的更改。在非强类型语言中,如果您可以保证对象足够相似,那么如果任何适用的代码SomeObject也适用于SomeNewObject,那么这不是一个重大更改。

在强类型语言中,类型的更改将自动归类为重大更改,因为类型化的变量SomeObject将无法接收 type 的对象SoneNewObject。例如,如果您添加了一个新功能,则不会发生重大变化。


推荐阅读