Bac*_*cks 4 domain-driven-design client-server
由于我们的域模型和过程,我们正在寻找客户端和服务器之间的共享模型.我们的客户真的很厚.有没有关于这种架构,利弊的信息?
从理论上讲,如果您的Domain层完全脱离(从持久性,演示,基础架构等),它可以很容易地在不同的地方重用为库.
然而,正如阿德里安指出的那样,这引发了一些实际问题:
安全性:特别是在客户端应用程序中分发域名可能存在风险.如果客户端是桌面应用程序,那么解决方法就是混淆二进制文件.
平台不匹配:您可能无法在客户端和服务器上使用相同的技术/语言.这将导致您的域名的翻译,基本上将初始工作量,维护成本和容易出错的情况加倍.
版本控制:即使重用相同的库,客户端和服务器上的版本也必须保持同步以防止不兼容.
此外,除非您正在开发一个完全克隆桌面版本的Web版本,否则我认为域重用最多也是部分的.在单个客户端/服务器应用程序的情况下,我很想知道为什么你会在两个层上使用相同的域...通常你在客户端拥有的数据结构可能看起来有点像域实体,但为UI调整,没有任何行为.在这种情况下,在客户端重用整个域层意味着拖拽一个庞大的对象图,可能部分地做你需要的东西,但也有大量其他不需要的东西.
也许你需要的是来自领域驱动设计的有界上下文的概念- 相同的类名,但客户端上下文和服务器上下文中的类略有不同.
| 归档时间: |
|
| 查看次数: |
1519 次 |
| 最近记录: |