Architecture 实践中的应用程序体系结构-Bob叔叔

Architecture 实践中的应用程序体系结构-Bob叔叔,architecture,software-design,Architecture,Software Design,根据Bob叔叔的说法,每个用户故事都应该有单独的“集成器/控制器”。这听起来不错,因为班级规模很小,只做一件事 但在现实世界中,我没有看到建筑以这种方式组织起来。如果有eg AccountController,它总是包含与Account相关的所有方法。在Bob叔叔的“方式”中,应该这样设计: +Controllers ---+Account ------+DepositMoneyIntoAccount ------+WithdrawalMoneyFromAccount ------+Transf

根据Bob叔叔的说法,每个用户故事都应该有单独的“集成器/控制器”。这听起来不错,因为班级规模很小,只做一件事

但在现实世界中,我没有看到建筑以这种方式组织起来。如果有eg AccountController,它总是包含与Account相关的所有方法。在Bob叔叔的“方式”中,应该这样设计:

+Controllers
---+Account
------+DepositMoneyIntoAccount
------+WithdrawalMoneyFromAccount
------+TransferMoneyToAccount
或者我误解了鲍勃叔叔?但如果不是,你们中有人看到过这样的架构吗?它在现实世界中实用吗


而言,它当然是实用的,并且是大型复杂系统的优秀工具。我将实体/边界/交互器(控制器的instaead以避免与流行的web界面混淆)放在顶层目录中,将整个通信系统放在子目录中(如z_rails、z_sinatra等)。例如,使用Rack,可以直接使用各种通信框架交付web解决方案,而只需最少的额外工作。例如,查看github.com/wizardwerdna/avdi和github.com/wizardwerdna/bobbit,了解这些方面的初步实验。

你是对的,这就是他希望项目的样子

还记得他的演讲吗?架构应该描述它的意图(还有什么比用例更好?)

一开始我也有点困惑,但如果我们考虑BDD,它的理念是要确保我们制作可理解的软件

我看了几次视频,可能还会看,因为这是一个新概念,需要研究。 对我来说,最重要和更具挑战性的部分是为其他模块创建插件,他谈到了一个请求和响应模型,以保持前端和数据库等外围层完全独立于软件

这样做的最终目标是,我们的软件可以轻松地替换任何附加组件,如数据库或UI

我想再提一件事,我想你可能会感兴趣。 最后,他透露他的下一本书将是关于我们正在讨论的新方法论的

更新

我在评论中看到,您正在谈论使用边界、交互者等名称调用包

这完全可以,在他的书中,一些开发人员在某些情况下使用模式的名称来命名类或包。。。这是正确的,因为这是开发人员应该熟悉的技术术语。同样,通过读取类的名称或包,您可以知道类是构建器或工厂,您也可以知道什么是交互者或边界。
根据清洁规范,这是正确的

你有参考Bob叔叔的话吗?你也可以查看这篇文章来澄清和改进你的问题@达林顿,当然,看看这个,我们是这样组织我们的项目的。我们为我们的服务使用实体-绑定-控制模式,每个交互者只实现一个用例。这会导致一些开销,但通过这种方式,我们可以独立于边界测试业务逻辑,甚至可以测试后端和访问后端的逻辑。@andih thx以获取答复,但您是否可以告诉我您是否真的有名为“Interactiors”、“Bounders”等的目录?