我目前正在为大约 90 KLOC 的保险经纪人开发一个数据库繁重的业务线 Rails 应用程序——其中大部分是通过业务交易进行数据操作,以及汇总所有数据的多个报告。
我们是一个非常小的团队,代码库的大小和复杂性开始超出我们管理它的能力。正因为如此,我们正在研究驯服它的方法,其中之一是将其转换为面向服务的架构——即将其拆分为几个较小的应用程序。
这种方法的问题在于报告方面:我们的报告通常涉及最多 7 个连接的表,过滤器在此过程中作用于多个表。如果我们放弃服务共享表的可能性(多篇文章都指出这是一种反模式),是否有可能以一种不会对性能造成太大影响的方式连接所有这些数据?
那么,SOA 是针对这类问题推荐的方法吗?还是它带来的问题多于解决的问题?
虽然我们的专长主要在于 Ruby(Rails 和 Sinatra)和 Python(Plone 和 Grok),但我也想知道其他技术(.NET、Java)周围的社区通常如何处理这个问题。
提前致谢!