我正在考虑一个列表,我可以将其推荐给其他开发人员,例如:
- 一个构建脚本,例如makefile,将构建和测试整个项目
- 构建系统所需的所有组件都需要源代码控制
有人有这样的清单吗?按优先顺序?
更新 - 添加了一些仅供参考的细节
有问题的系统由 C++ 和 makefile、Java 和导致 WAR 的 ant 以及 powerbuilder 和 C# gui 组件组成。所有代码都是强制的。
所以我正在寻找通用以及特定语言的最佳实践。
我正在考虑一个列表,我可以将其推荐给其他开发人员,例如:
有人有这样的清单吗?按优先顺序?
更新 - 添加了一些仅供参考的细节
有问题的系统由 C++ 和 makefile、Java 和导致 WAR 的 ant 以及 powerbuilder 和 C# gui 组件组成。所有代码都是强制的。
所以我正在寻找通用以及特定语言的最佳实践。
对我来说,#1 规则是这样的:
主分支是神圣的——它必须始终是可构建的,能够通过 BVT,并且基本上是可用的。
任何允许进入导致构建或 BVT 中断的主分支的代码都会暴露过程中的错误。该过程应允许伙伴构建/测试单个分支系统,或要求子分支在合并到主分支或其他此类保护措施之前构建并通过 BVT。
这在很大程度上取决于您在什么环境中构建?
这些中的每一个在方法和设置上都不同。因此,在您获得帮助之前,我们需要了解您的设置。
系统必须自己构建,自己测试,自己下载+构建依赖。我有一个 makefile 下载、构建和部署运行时环境,该环境已为我的主干版本“认证”。这个 makefile 也被提交到存储库中。
请记住提交另一个非常重要且最容易被忽视的事情(一共三个):
作为一名 SCM 经理,我可以在这个问题上给您的最佳答案是“这取决于”。您的列表和列表中项目的重要性顺序将取决于您的项目要求、您使用的语言和开发人员级别。
在您放在一起的任何列表中,您可能想要考虑对我很重要(或 #1)的一件事是,您的工具的主干或主分支受到非常严格的控制,只有极少数人有权导入或提交更改它。这将在发布时省去很多麻烦。
可以在您放在一起的任何列表中的项目是:
该列表可以继续,具体取决于您的具体要求,但我认为您对这里的内容有所了解。
如果您通过了“乔尔测试”中的这些问题,那么您应该走在正确的道路上:
你使用源代码控制吗?
你做日常构建吗?
你有错误数据库吗?
在编写新代码之前你会修复错误吗?
我的 #1 是:您可以一步构建吗?
“获取最新”和“构建”的整个过程应该是顺畅、轻松、快速和可靠的。
如果不是,开发人员往往会跳过获取最新版本并继续处理他们过时的副本,这是您要避免的事情。
这或多或少是迈克尔所说的——但我想强调的是,除了分支是神圣和稳定的——整个过程应该快速而简单
有点像 Google 的理念,即下载\安装应该快速简单