我认为这种情况有两个基本问题,可能是三个。
- 不需要的SDK升级使其成为源代码,可能会对产品产生负面影响。
- 从一个问题开始:执行了不必要的升级的贡献者不知道之前是否做出了不升级的特定决定。
我认为,其中第一个是最严重的。如果不需要的SDK升级可以使其纳入代码,那么其他问题也可以。
有人建议添加一个单元测试用例,如果检测到升级,该用例将失败。虽然它将阻止升级的发生,但我认为这是一条危险的道路,随着时间的流逝会导致熔岩流。似乎不可避免地会在将来的某个时刻对SDK进行升级,以引入新功能或错误修正,或者是因为不再支持旧版本。想象一下,当这样的单元测试失败时,会发生头疼甚至是争论。
我认为最通用的解决方案是调整开发过程。对于git,请使用拉取请求过程。 对于Subversion和较旧的工具,请使用branch和diff。但是,有一些过程可以使高级开发人员在将这些问题纳入代码库并影响其他开发人员之前就可以捕获这些问题。
如果在您的情况下使用了拉取请求过程,并且每个拉取请求都狭窄且具体,则不会浪费太多时间。将会提交升级SDK的请求请求,并拒绝提供不需要升级的评论。没有其他人会受到影响,并且现在无需还原SDK升级。
但是要直接回答最初的问题,我同意其他人的看法,即希望所有开发人员都完整阅读代码的整个修订历史记录,发行说明等,因为这样的通知是在浪费宝贵的时间。一封简短的团队电子邮件怎么了?
可能的第三个问题:为什么首先不希望升级?显然,至少有一个开发人员认为升级将是一件好事。有很多好的理由推迟升级,但也有很多不好的理由。小心避免熔岩流(不必要的向后兼容代码)和货运狂热(“我们无法升级,但我不知道为什么”)反模式!