假设有两个产品,产品A和产品B。
现在是扳手。产品A取决于产品B。当内部测试人员正在测试产品A的开发版本时,产品A将检查产品B的开发版本。
我的问题是:这是产品B中版本控制的最佳方法吗?这方面的行业标准是什么?如何才能改善这种情况?
对于我们来说,产品B的版本控制在很大程度上是可以的。我们只需要确保在对产品B进行更新时,我们不会对它做任何破坏性的更改。至于更好的版本控制系统,我有一些想法。
你们都怎么想?
发布于 2023-01-19 08:14:23
最“用户友好”的解决方案是在A和B之间建立一个最稳定的接口,并在较长的时间内保持B与部署到web的任何新版本尽可能向后兼容。
这通常不会妨碍您在B中实现新特性,即使只有较新版本的A可以使用它们。您可以实现一个机制,其中A可以询问B是否有某个特性可用,并且只在这种情况下在A的UI中提供相关功能。
向后兼容性使A的用户有机会尽可能地使用他们满意的版本。它还让他们有机会切换回一个旧版本的A,当它的新版本有一些恼人的错误,你的团队将只修复下一个版本,将于下个季度发布。
当然,这是有缺点的。随着时间的推移,您将在B中生成一些遗留代码,您希望早晚摆脱这些遗留代码,但您必须牺牲向后兼容性。当然,当只有5%的用户仍然使用旧版本时,您可能倾向于不支持A和B的五年前版本。因此,您应该跟踪A的哪个版本确实在使用,是的,A应该始终将其版本号发送到B。这使您有机会检查是否真的需要支持B中的不推荐功能,以及有多少用户可能因为强迫他们升级而受到干扰。
它还将使您有机会实现到更新版本的平稳过渡过程。例如,当A将其版本号发送给B时,B可能会发送一条答复消息,例如:“您仍在使用1.0版本,服务B下个季度将不再支持该版本。请要求管理员安装5.0或更高版本。”--这样A就可以向用户显示此消息。
然而,我只会强迫用户升级到一个更新的版本,当他们真的必须,你肯定负担不起保持向后兼容了。我不能告诉您这种强制升级的合理时间间隔在您的情况下,但是当安装升级涉及用户公司外部IT部门的一些手工工作时,更好地计划几年,而不是季度。
https://softwareengineering.stackexchange.com/questions/443479
复制相似问题