客户端 - 服务器代码应该写在一个"项目"还是两个?

Ric*_*ket 8 java language-agnostic client-server

我一直在开始客户端 - 服务器应用程序.起初我自然地在Eclipse中创建了两个项目,两个源代码控制存储库等等.但我很快就发现两者之间有一些共享代码可能会从共享中受益(在同一个项目或共享库中)而不是复制.

另外,我一直在学习和尝试测试驱动开发,在我看来,基于真实的客户端组件进行测试会更容易,而不是只需要设置大量的代码来模拟某些东西,代码可能主要在客户端.在这种情况下,似乎将客户端和服务器放在一个项目中,由根包(org.myapp.client.*和org.myapp.server.,也许是org.myapp.shared.)进行了细分.

然而,我在合并客户端和服务器时最关心的是安全性; 如何确保代码的服务器部分不会到达用户的计算机?当Eclipse捆绑一个JAR时,我必须选择特定于服务器的位,并希望我不会错过任何一个,对吧?

因此,特别是如果您自己编写客户端 - 服务器应用程序(尤其是在Java中,尽管如果您想在其他语言中分享您的体验,这可能会变成与语言无关的问题),您保持什么样的分离?您的客户端和服务器代码之间?它们只是在不同的包/命名空间中,还是使用共享库完全不同的二进制文件,还是完全不同的东西?您如何一起测试代码然后单独发货?

Chr*_*ava 3

两者都不。应该是3个。(公共、客户端和服务器)但是,它不一定需要是三个“项目”。我使用 Maven 在主项目下创建了三个子模块。您可以使用 Ant 执行类似的操作。