2013-04-28 44 views
2

我最近很受12Factor应用程序的诱惑,因为它是强烈的指导方针,我应该强制自己遵循。 因此,在我正在研究的项目中,我决定使用它们。 虽然我对我的代码结构有疑问:12应用程序代码库因素我应该拆分

我有一个网站,只是创建新的工作,人们可以咨询那里的工作结果。作业排队进入分布式队列(ftm Redis),工作人员完成每项作业并执行它们。 我决定拆分2中的代码库:

  • 将排队作业和用户将访问结果的实际站点。
  • 完全自治的工人。

中间有一个节点包,用于封装通信(排队等),节点之间的唯一通信是通过Redis进行的。

所以我只是想确定这与12factor一致,因为我正在构建一个分布式系统。 如果不是我应该使用一个启动脚本启动一个或另一个在一个代码库中构建所有内容?

THX对您有所帮助

回答

3

保持简单,但并不简单,然后才有意义。如果你更简单的将它全部保存在一个代码库中,那么就开始吧。开发是一个反复的过程,假设你做错了,并准备在事物开始变得笨拙时做出改变。

不成熟的代码(或工作流)优化(或抽象)总是不明智的。

+0

这是真的。但是,将其放在单个代码库中会使其依赖于不存在的依赖关系(例如,我正在考虑express)。但确实有一个代码库会让事情变得更简单,包括部署。 – charly 2013-04-28 21:56:17

+0

我想我会从一开始,当你发现你可以将它们作为一个应用程序系统而不是一个应用程序来分开。我们经常在heroku上做到这一点。我们将开始编写一些东西,然后注意到应用程序组件之间存在不必要的耦合,并在重构它们时将它们分成应用程序系统。 – 2013-04-28 22:03:44

1

我决定在分裂代码库2

好了,12个因素网站上的第一项说:“一个代码库跟踪的版本控制,多展开时”

从你的描述来看,我不认为有可能告诉你遵循指引的程度。

+1

如果两者都可以作为独立的软件使用,并且可以这样维护,那么将它们区分开来可能是有意义的。 – 2013-04-28 21:48:24

+0

是的让我犹豫的是:“如果有多个代码库,它不是一个应用程序 - 它是一个分布式系统。分布式系统中的每个组件都是一个应用程序,并且每个组件都可以单独遵循十二个因子。 – charly 2013-04-28 21:51:24

+1

是的,这是一个权衡,没有正确的答案。列出您可能接下来要添加的功能列表。有多少人需要触摸两个代码库?如果它是其中的大部分,那么请考虑将它们加入1回购。 – BraveNewCurrency 2013-04-29 02:36:31