在 ASP.NET MVC 应用程序和 Java Web 应用程序中,有一种常见的做法是将业务逻辑保存在单独的包/dll 中,并将数据库和交付机制(Web 应用程序、Web 服务、本机移动或桌面等)视为插入的细节。
我可以说这种结构的一些优点是:
- 使用不同的交付机制或持久层重用业务逻辑
- 无需加载 Web 框架或连接到数据库即可运行业务逻辑的验收和单元测试;测试非常快
- 考虑应用程序的本质,而不是交付方式
但这种做法在 Rails 社区中并不常见;我没有看到任何 Rails 应用程序将业务逻辑保存在 gems 中,并且主要的 ORM 都将持久性逻辑和业务逻辑联系在一起。Ruby 是否有一些东西使我提到的结构化应用程序变得不必要?