我们希望开始让我们的用户帮助我们在更广泛的版本发布之前测试我们的功能更改。我们的 rails 应用程序已经有了角色,但我不知道我们应该如何在不移动整个应用程序的情况下实现 beta 功能。
有些问题我想不出解决办法:
- Beta 功能可能需要数据库迁移。当它可能导致现有应用程序出现问题时,您如何处理?
- 更改模板和 css/sass 也可能会更改现有功能。
- 更改底层模型代码可能会破坏依赖它的现有控制器/接口。
一种解决方案(一个不好的选择)是在新功能中编写代码并将其包装在仅当用户具有“beta”角色时才显示/使用它的逻辑中。问题在于,当您最终将其上线时,您可能需要做很多放松/改变。这既浪费时间,又可能引入错误。
另一种解决方案是在子域之外运行应用程序的单独“beta”分支,并将具有 beta 角色的用户路由到它。这样做的问题是 ssl 证书、电子邮件链接和其他域相关问题的复杂性使得这有点维护痛苦(尽管没有第一个解决方案那么糟糕)。
我怎样才能最有效地提供这一点,以尽量减少额外的维护工作,然后将测试版切换到完整版?