什么是软件的重大变化?

Sur*_*nut 12 architecture

在我们公司,我们有一个突破性变化的定义.

这是一个变化

 - that changes a method signature.
 - that changes the behavior of a method.
 - that changes settings, configuration.
 - that adds dependencies to a module, assembly etc..
Run Code Online (Sandbox Code Playgroud)

你会说这是对突破性变化的一个好的/完整的定义吗?有什么遗失的吗?您是否会考虑对数据库模式进行更改(例如新列或新表)?

提前致谢.

编辑:刚刚发现这是一个关于.NET中的API破坏性变化的权威指南

Oli*_*ews 10

第一点是决定英语中"突破性变化"的含义*.在某些地方,它只是阻止代码编译/运行的东西.

到目前为止,从您的列表中,我认为您的意思是需要其他人进行相应更改的更改.在这种情况下,因为你的产品的每个模块应该有一个定义良好的接口(这是其他模块,公共REST接口,系统的文件系统,一个图形用户界面,web应用程序等),然后打破变化是什么,删除什么从其中一个接口(或添加一个新的使用要求) - 实际上,如果您不能采用产品的先前版本并更改模块,那么它是一个破坏的.

所以,是的,数据库更改通常会破坏更改(除非有自动升级的代码,并且可能根据需要自动降级).

重点是什么不是一个突破性的变化 - 模块内的变化或未记录的接口(即不应该使用的变化)不会破坏变化.如果这样的东西确实打破了你的产品,那么封装就会失败.

*或您选择的(人类)语言.