拥有软件的 2 个简单版本还是 1 个复杂版本更好?
Is it better to have 2 simple versions of a software or 1 complicated version?
这是一个简单的问题。拥有两个版本的代码还是一个版本更好?一个是未经 V&V 测试的工程版本,具有很多功能,另一个是经过严格监管和严格测试的精简客户版本。
我有一个简单的问题,我的代码库正在膨胀,因为需要新的工程功能。但是,核心客户代码极其简单。工程部分有时会导致客户代码中出现意想不到的错误。此外,每个工程错误都必须像客户错误一样进行调试和处理,从而延长发布时间。
我认为分裂有好有坏。首先,它允许快速制作和发布工程功能,而无需对软件进行 V&V 测试。第二个优势是面向客户的软件发布更少、质量更高。但是,这意味着需要维护 2 个(较小的)代码库。
这个问题的常见解决方案是什么?您决定分成两个版本的时间是否有限制?还是我应该学习更深入的组织技巧?我已经尽力遵循软件的最佳组织技巧并遵循 OOP 最佳实践。
截至目前,我会说我的代码库大约有 50% 的客户软件和 50% 的工程功能。但是,我刚得到一个新的(大型)engineering/manufacturing 项目要添加到软件中。
任何经验将不胜感激。
TL;DR: 拆分它。
您可以使用您提到的任一模型。这是关于您如何看待它在未来的发展以及它目前的设置方式。
如果您决定采用大型代码库路线,我建议您使用 MVC
体系结构,因为它可以有效地将大型代码库分类为更小、更易于管理的部分。这为工程师提供了一个抽象层,他们可以轻松地将问题缩小到自己的团队。这使得一个团队不必担心另一个团队如何实现功能;是:Graphic 团队无需担心数据如何存储在您的服务器上。
如果您决定使用多个代码库,则需要添加一个额外的 "difficulty" 层。您现在必须维护 "twice" 尽可能多的代码。您还需要确保这两个来源相互配合良好。这样做的好处是您可以将工程版本与生产版本完全隔离。
在您的情况下,既然您提到两个版本之间目前的比例是 50/50,我建议您将客户版本和工程版本分开。这将未测试的工程代码与经过适当测试的客户代码隔离开来。这确实给了你 "more" 代码来控制,但这个问题可以很容易地通过有 2 个团队来缓解,每个团队负责自己的版本。
这是一个简单的问题。拥有两个版本的代码还是一个版本更好?一个是未经 V&V 测试的工程版本,具有很多功能,另一个是经过严格监管和严格测试的精简客户版本。
我有一个简单的问题,我的代码库正在膨胀,因为需要新的工程功能。但是,核心客户代码极其简单。工程部分有时会导致客户代码中出现意想不到的错误。此外,每个工程错误都必须像客户错误一样进行调试和处理,从而延长发布时间。
我认为分裂有好有坏。首先,它允许快速制作和发布工程功能,而无需对软件进行 V&V 测试。第二个优势是面向客户的软件发布更少、质量更高。但是,这意味着需要维护 2 个(较小的)代码库。
这个问题的常见解决方案是什么?您决定分成两个版本的时间是否有限制?还是我应该学习更深入的组织技巧?我已经尽力遵循软件的最佳组织技巧并遵循 OOP 最佳实践。
截至目前,我会说我的代码库大约有 50% 的客户软件和 50% 的工程功能。但是,我刚得到一个新的(大型)engineering/manufacturing 项目要添加到软件中。
任何经验将不胜感激。
TL;DR: 拆分它。
您可以使用您提到的任一模型。这是关于您如何看待它在未来的发展以及它目前的设置方式。
如果您决定采用大型代码库路线,我建议您使用 MVC
体系结构,因为它可以有效地将大型代码库分类为更小、更易于管理的部分。这为工程师提供了一个抽象层,他们可以轻松地将问题缩小到自己的团队。这使得一个团队不必担心另一个团队如何实现功能;是:Graphic 团队无需担心数据如何存储在您的服务器上。
如果您决定使用多个代码库,则需要添加一个额外的 "difficulty" 层。您现在必须维护 "twice" 尽可能多的代码。您还需要确保这两个来源相互配合良好。这样做的好处是您可以将工程版本与生产版本完全隔离。
在您的情况下,既然您提到两个版本之间目前的比例是 50/50,我建议您将客户版本和工程版本分开。这将未测试的工程代码与经过适当测试的客户代码隔离开来。这确实给了你 "more" 代码来控制,但这个问题可以很容易地通过有 2 个团队来缓解,每个团队负责自己的版本。