[如果我有类似resolve
的函数,并且在我的api版本1.0.0
中,并且resolve
返回SomeObject
,并且期望SomeObject
响应#success?
和#failure?
,如果我要更改[ C0]返回resolve
,SomeNewObject
响应SomeNewObject
和#success?
这是否需要对我的api的主要版本进行修改?还是因为#failure?
的行为与SomeNewObject
完全相同,所以我只能递增未成年人吗?
应注意,此api使用的不是强类型语言(Ruby)
限定符是是否可以破坏代码。严格来说,breaking change是可能会破坏使用您API的用户的代码的代码。在非强类型语言中,如果可以保证对象足够相似,那么如果任何与SomeObject
一起使用的代码也可以与SomeObject
一起使用,那么这并不是一个重大改变。
在强类型语言中,类型更改将自动归类为重大更改,因为类型为SomeNewObject
的变量将无法接收类型为SomeObject
的对象。例如,如果您添加了新功能,则为不间断的更改。