我们有一个在多个层中实现的 java 系统。在最低级别,有一些服务抽象了一系列基础设施组件,例如数据库、blob 存储、处理队列等......最重要的是,我们有实现使用其中一个或多个的工作流的域层服务(使用命令和复合命令模式)。最后还有一个基于 jax-rs (jersey) 的层,它提供了一个根据领域层的工作流实现的 REST 接口/协议。
我对 Scala 的经验有限,但我怀疑它可能是编写更具表现力的领域层版本的好工具,因为 Java 代码非常冗长且有时难以调试。部分原因是命令组合和执行的控制是由由具体命令扩展的基类处理的。事后看来,这可能不是一个理想的设计选择。
我希望这个非常高级的描述能够说明我正在努力实现的目标。让我知道是否需要更具体。我最感兴趣的是如何在 Scala 中构建领域层,同时保留基于 Java 的服务层。此外,关于如何在域层之上实现 http/REST 协议以便可以将其部署在 Java Web 应用程序容器中的建议也将非常有趣。