What is a breaking change in software?
在我们公司里,我们有一个什么是突破性变化的定义。
这是一种改变
1 2 3 4 | - that changes a method signature. - that changes the behavior of a method. - that changes settings, configuration. - that adds dependencies to a module, assembly etc.. |
你会说这是一个好的/完整的突破性变化的定义吗?有什么东西不见了吗?您是否认为数据库模式中的更改也是一个破坏性的更改(例如新列或新表)?
事先谢谢。
编辑:刚刚发现这是一个关于在.NET中破坏API更改的明确指南
第一点是决定英语中的"破坏性变化"是什么意思。在某些地方,它仅仅是一些阻止代码编译/运行的东西。
从您的列表中,我认为您的意思是一个需要其他人进行相应更改的更改。在这种情况下,由于您产品的每个模块都应该有一个定义良好的接口(无论是对其他模块、公共REST接口、系统的文件系统、GUI、webapp等的接口),那么一个突破性的更改就是从这些接口中删除某些内容(或添加新的使用要求)的任何内容,实际上,如果您不能接受P上一个版本的产品和交换只是模块中的变化,然后它是一个突破性的。
所以,是的,数据库更改通常会破坏更改(除非有自动升级的代码,并且可能会根据需要自动降级)。
主要的一点是什么不是破坏性的更改-模块内的更改或未记录的接口(即不应使用的接口)的更改不会破坏性的更改。如果这样做确实破坏了您的产品,那么封装就失败了。
*或者你选择的人类语言。