我有一个基于Java的服务器,通过TCP / IP将数据从许多远程设备传输到一个应用程序。我需要开发它的几个版本。如何开发然后居住它们而不需要编写2个项目?我不仅要求该项目,还要求不同的方法。
答案 0 :(得分:1)
如果行为不同,请执行“data driven”行为 - 通常通过将驱动器的行为数据外部化到运行时/启动时读取的属性文件。
目标是拥有一个二进制文件,其行为因运行时环境中的属性文件而异。
Java通过Properties类支持这种模式,它提供了加载属性的便捷方法。实际上,大多数网站都以这种方式运行,例如生产数据库用户/通行证细节永远不会(应该永远不会)在代码中。系统管理员将编辑在启动时读取的属性文件,该文件受操作系统的文件权限保护。
其他选项是使用数据库来存储驱动行为的数据。
它可能是一个非常强大的模式,但它也可能被滥用,因此建议有一定的自由裁量权。
答案 1 :(得分:0)
通过重用代码库,配置和任何其他资产,制作基于之前版本的任何其他版本。如果一次应该有多个版本,请使用配置管理实践。您可能应该在服务器端考虑一些路由活动和客户端版本检查。这是“向后兼容性”发挥作用的地方。
答案 2 :(得分:0)
主要方法是首先查找并提取不会从一个版本更改为另一个版本的代码。最好的方法是最大化这部分,以分享最大的代码库并简化维护(纠正错误,一方面纠正所有错误)。
然后它取决于从一个版本到另一个版本的真正变化。最好的是,在主项目中,您可以使用一些抽象类或接口,您可以为每个特定项目实现这些类。
答案 3 :(得分:0)
我认为您需要阅读源代码管理(SCM)和版本控制系统(VCS)。
我建议设置一个git或Subversion存储库,然后将代码最初添加到trunk,然后将其分支到分支数量(您将要处理的版本)。
不同版本的想法是这样的:
您正在开发代码并将其放入SCM的trunk
(或称为HEAD
)。在某些时候,您认为代码足够稳定以便发布。因此,您创建了tag
(我们称之为版本1.0
)。你不能(不应该)对标签进行更改 - 它们只是作为你的标记。如果您的客户的版本为1.0
并报告了您要修复的错误,则可以根据branch
的副本创建tag
。生成的版本(通常)为1.x(1.1
,1.2
等)。完成修复后,再次标记并发布新版本。
通常,大多数开发都发生在trunk
上。
当您准备好某些修补程序或知道某些修补程序已应用于trunk
时,您可以根据需要将这些更改合并到其他分支。