代码之家  ›  专栏  ›  技术社区  ›  Allain Lalonde

清理代码会破坏二进制兼容性

  •  2
  • Allain Lalonde  · 技术社区  · 16 年前

    我正在做一个项目,这个项目被许多我不认识的人使用。我们在降低CheckStyle警告方面做得相当好,而且在不破坏二进制兼容性的情况下,它会达到很低的水平。

    除非开发人员正在编写一些利用这种疏忽的非常糟糕的代码,否则如果我们添加它们,他们的代码就不会崩溃。

    目前版本号为1.2.1。您是应用更改并转到2.0,还是应用更改并将其作为1.3推出。这似乎是一个很小的变化,需要一个完整的2.0版本。

    4 回复  |  直到 6 年前
        1
  •  4
  •   Mr. Shiny and New 安宇    16 年前

    一旦你准备好发布一个包含所有漂亮新功能的主要版本,就可以继续进行你认为必要的二进制兼容性更改,在这种情况下,如果有什么东西坏了,也就不足为奇了。

    如果你想变得聪明,你可以实现一个预处理器并编译代码两次,一次有期末考试,一次没有期末考试。这可以作为进入真正决赛的垫脚石,但与此同时,维护成本会很高。

        2
  •  3
  •   DigitalRoss    16 年前

    我相信你已经知道了,但我怀疑这归结为“这是一个安全/简单/无忧”的升级吗?

    • 点释放被认为是安全和常规的。它们应该完全由某些项目中的错误修复组成。其他项目将包括新功能,如果它们不太可能造成问题。
    • 新的主要版本发布包含可能需要适应的进化变化
    • 新专业 x.0 版本发布被老练的用户视为高度可疑:-)

        3
  •  2
  •   Tom Hawtin - tackline    16 年前

        4
  •  0
  •   OscarRyz    16 年前

    除非开发人员正在编写一些利用这种疏忽的非常糟糕的代码,否则如果我们添加它们,他们的代码就不会崩溃。

    比如创建不再工作的先前非最终类的子类?

    我认为它应该是2.0,你应该继续支持1.x系列

    此外,这里还有一个关于API的有趣视频:” How to design a good API and why it matters “作者Joshua Bloch,Java核心库的创建者,目前正在谷歌工作