首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为“企业”客户分叉应用程序

为“企业”客户分叉应用程序
EN

Software Engineering用户
提问于 2014-05-12 18:41:25
回答 2查看 175关注 0票数 4

注:这主要是一个技术性的问题,但我必须首先解释业务背景。

业务部分

我手头上有一个非常有趣的情况,至少对我来说很有趣。

在过去3.5年中,我一直在构建一个名为Snip沙龙软件的业务/应用程序。这是美发沙龙的调度软件。值得注意的是,我专门针对美发沙龙,而不是美甲沙龙或日光浴沙龙,它们有不同的需求。

这个企业已经经历了一定程度的成功,但到目前为止还没有什么惊人的成就。我有6家沙龙在我的本地地区使用该产品。

一段时间前,有几位在发廊行业的企业家来找我,他们和美发沙龙有不同的日程安排需求。(美容行业是一个令人惊讶的复杂空间!)这些家伙基本上希望我给我的产品贴上白色标签,这样他们就可以把它作为“盒子里的生意”型包装的一部分来销售,他们提供给刚起步的鞭笞技术人员。

技术部分

所以我面临的挑战是:

  • 我不想有一个应用程序服务于发廊和鞭子沙龙。我想很快就会变成噩梦。
  • 我不想让应用程序运行大部分相同的代码。那就太傻了。

而且这不仅仅是功能-所有的品牌,等等几乎肯定将是不同的每个版本。

所以我认为我想做的是首先分叉代码库,并为睫毛沙龙应用程序设置单独的托管等等。然后,随着时间的推移,也许我想把常见的部分(例如约会提醒邮件)分解成模块(我使用Rails,所以我在谈论Rails引擎),然后让我的应用程序的每个分叉使用每个模块的相同副本。当然,我会定位它,以便每个引擎只包含应用程序的两个分支所共有的功能。

我的问题:从技术角度看,您将如何处理这种情况?

在商业方面也可以随意插话。

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2014-05-12 22:33:36

从业务角度来看,我认为您应该采用最简单的方法拆分代码库,然后逐步重新加入它们。从技术角度来看,重新设计和重写你的核心应用程序听起来可能是最好的,但是,如果你不完全确定鞭子项目将是一种有利可图的长期业务关系--据你所知,它们可能会在6个月内消失--否则,把所有这些工作都摆在前面是没有意义的。

票数 2
EN

Software Engineering用户

发布于 2014-05-12 19:02:04

我会采取相反的方式--而不是让公共部分成为一个可重用的库,您应该实现一个插件体系结构,并为不同类型的沙龙创建插件。

您将拥有主要的应用程序代码,其中包括通用代码库和插件的一些基础设施(例如,要在插件中实现的接口),插件本身将是不同的项目。您还应该使创建application+specific插件包成为可能,这样,睫毛沙龙的家伙就可以拥有一个对他们的客户来说很容易安装的睫毛房车包。

与共享模块体系结构相比,插件体系结构的主要优点是,主应用程序需要有大量的模板代码来编排不同的模块\插件。在共享模块体系结构中,您必须在每个分叉中复制样板代码,但是在插件体系结构中,您只需要在主应用程序中使用它一次。

票数 6
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/238841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档