内部项目:是否稳定发布?
假设我们在一家具有许多独立开发项目(独立编码器)但彼此依赖(独立代码)的中型软件公司工作。
如果由我们决定,我们是否可以确保每个项目都产生稳定的分支,以便其他项目可以更可靠地使用这些分支,或者我们是否鼓励项目直接使用其他项目中的最新可用代码?
对我来说,稳定发行版的优势很明显,就是依赖项可以按广告方式工作。但是,我也看到了避免稳定发行版的一些好处,每个项目要做的工作都少了一些,而且代码会一直自动更新,因此我们可以对影响每个人的错误做出快速反应。例如,假设在一个内部库中的时间戳X处存在一个细微的安全漏洞,直到该代码被广泛使用,它才会被注意到。如果我们使用的是稳定的发行分支,则必须让其他所有项目修改其依赖项才能实现安全修复。如果没有发行分支,则将在所有其他项目的下一个版本中立即获取此修复程序。
如果有人对这两种选择都有行业经验,我会特别感兴趣。
解决方案
从其他项目来看,在我看来,我们提出的问题是通过拥有安全分支来解决的。例如。 Debian软件包。这样,我们将继续在整个项目中使用稳定分支。出于我们提到的原因,测试/正在进行的分支机构承担太多风险。
认为它真正分解为软件的任务关键性。如果我们可以忍受轻微的崩溃以及可能的一些数据损坏,并且可以轻松推入新版本,则运行不稳定的代码可能是首选。现在,如果生活或者声誉取决于一切都能正常工作,或者如果推销新产品是一个主要过程,那么经过测试的稳定版本是唯一的选择。
与往常一样,每种选择都有其优缺点。
使用分支可能会更稳定,但是当我们需要更新到较新的分支时,它需要更多的维护。当分支与主干合并时,还需要他们的开发团队花费额外的时间。
另一方面,使用主干可能会迫使我们处理其他人的错误,并编写混乱的解决方法代码来解决该问题。如果遇到无法固定到特定库(或者我们自己的代码)的奇怪的OutOfMemory / Performance问题,它可能会变得特别混乱。请记住,这不是代码,并且我们可能没有人力来帮助他们进行质量检查。
因此,我想这最后的话要取决于它。我建议考虑以下因素:
- 我们正在使用的API是否会更改?
- 处理"干净的代码"是否很重要,还是可以让自己弄弄别人的错误?
- 应用程序使用库的"最新"版本是否至关重要?
附带说明一下,根据经验,我可以告诉我们,我们的一位程序员错过了几个晚上的睡眠,因为他在分支机构工作,而升级到较新的分支机构则更改了整个API和逻辑。 :)
高温超导