我是以下的忠实粉丝http://highscalability.com/ http://highscalability.com/并且一直在我当前的开发中沿着功能边界分解我的应用程序,作为能够扩展服务器端(特别是数据库层)的途径。这涉及到将应用程序的不同功能组件(我们有几个客户可以使用的独立模块)实现为服务器上自己的独立应用程序,联系服务器的客户端知道它需要联系不同的数据的不同服务,因此向用户呈现统一的视图。
当不同组件中的数据之间存在链接时,即一个组件保存所有用户数据,但另一个组件需要将用户引用为某条数据的所有者时,就会出现问题。我目前通过保存链接每一侧的主键信息来做到这一点(就像它们都位于单个数据库中一样),但是此链接表需要存在于两个组件中,以允许在无论哪个方向,即“获取特定用户拥有的东西”和“获取该特定东西的所有者”都将使用不同的组件。另一种方法是将链接数据仅存储在其中一个组件中,但反向查找将需要 2 次调用,而不是 1 次。
我的问题是,这些链接表的重复是否是我应该避免的某种代码味道,或者这就是当您沿着这样的功能线拆分应用程序时的情况?
功能分解是一种糟糕的设计策略。
考虑尝试使用功能分解来构建厨房搅拌机。为了搅打、混合、搅拌和混合,你需要四个碗、四个电机、四个刀片、四个开关、四个电源和四个底座来容纳每个“功能”。
功能分解用于需求分析。它不是为了设计。
在分析过程之后,您必须进行综合过程来组装公共组件、公共框架元素和公共数据模型。您最终应该得到一个支持多种功能的数据模型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)