检测依赖项的兼容性中断 来自C++,对JavaScript相当新颖,我发现自己推理如何验证第三方依赖的稳定性。例如,我目前正在升级一个现有的WebGL引擎,它使用Three.js作为一个方便的框架,我发现在过去的版本中,引擎依赖的多个对象属性和功能被删除
IIUC,除非被删除的功能或属性被积极使用,否则没有先验的方法来检测此类中断-这对我来说是有意义的,因为您只能在运行时知道实际访问的内容,因此在以某种方式使用某个属性之前,无法确定该属性是否实际存在。第一个问题:这个假设正确吗 如果是这样,我能想到的自动验证API稳定性(或指出中断点)的唯一方法(我在功能和对象属性方面都指API)是维护一套单元测试(或类似测试),基本上使用实际代码使用的所有内容,并且每次更新第三方依赖项时都使用。根据代码库中使用的不同API的数量,这可能会非常、非常迅速地变得单调乏味 由于单元测试目前根本不存在,因此我目前的方法是手动遍历变更日志,查找所有对已删除API的引用,并尝试找出如何替换现有功能,而不破坏更多功能。这显然很糟糕 我希望项目尽可能地保持兼容性,并为此安装策略,如,但在做了一些初步搜索后,我没有在这个主题上找到太多内容(或者我使用了错误的关键字) 最后,我发现自己提出了以下问题:检测依赖项的兼容性中断 来自C++,对JavaScript相当新颖,我发现自己推理如何验证第三方依赖的稳定性。例如,我目前正在升级一个现有的WebGL引擎,它使用Three.js作为一个方便的框架,我发现在过去的版本中,引擎依赖的多个对象属性和功能被删除,javascript,Javascript,IIUC,除非被删除的功能或属性被积极使用,否则没有先验的方法来检测此类中断-这对我来说是有意义的,因为您只能在运行时知道实际访问的内容,因此在以某种方式使用某个属性之前,无法确定该属性是否实际存在。第一个问题:这个假设正确吗 如果是这样,我能想到的自动验证API稳定性(或指出中断点)的唯一方法(我在功能和对象属性方面都指API)是维护一套单元测试(或类似测试),基本上使用实际代码使用的所有内容,并且每次更新第三方依赖项时都使用。根据代码库中使用的不同API的数量,这可能会非常、非常迅速地变得单
- 社会上对如何处理这个问题是否有共识 在上面
- 是否存在实现解决方案的工具
- 这些解决方案是可伸缩的吗
r78
,r79
等等。次要版本和补丁级别对他们来说似乎并不重要。:)