在我们公司,我们有一个突破性变化的定义。
这是一个改变
- that changes a method signature.
- that changes the behavior of a method.
- that changes settings, configuration.
- that adds dependencies to a module, assembly etc..
您是否认为这是对突破性变化的良好/完整定义?有什么遗失的吗?您是否会认为数据库架构中的更改也发生了重大变化(例如新列或新表)?
提前致谢。
答案 0 :(得分:8)
第一点是决定英语中“突破性变化”的含义*。在某些地方,它只是阻止代码编译/运行的东西。
到目前为止,从您的列表中,我认为您的意思是需要其他人进行相应更改的更改。在这种情况下,由于产品的每个模块都应该有一个定义良好的接口(无论是其他模块,公共REST接口,系统的文件系统,gui,webapp等),那么突然改变就是从其中一个接口中删除某些东西(或添加一个新的要求供其使用) - 实际上,如果你不能使用以前版本的产品并交换只是< / em>具有更改的模块,然后它是一个破坏的模块。
所以,是的,数据库更改通常会破坏更改(除非有自动升级的代码,并且可能根据需要自动降级)。
重点是什么不是一个突破性的变化 - 模块内的变化或未记录的接口(即不应该使用的变化)不会破坏变化。如果这样的事情确实破坏了你的产品,那么封装就会失败。
*或您选择的(人类)语言。