2010-02-02 48 views
0

在我们的大多数Web应用程序中,我们使用三层体系结构:Controllers/ViewHelpers,Service和DAO层。然而,其中一些项目是一个非常多的样板代码。例如:大多数应用程序数据库模式都有自己的部门表(称为T_DEPARTMENT),在代码方面这需要部门的模型类,DepartmentDAO类等。使用Web服务调用替换自定义DAO代码

我想要做的是创建一个适用于所有应用程序都可以访问的所有部门的通用模式(是的,应该已经是这种情况,但不是......)。然后,我想在应用程序服务器上打一个简单的Web服务,其唯一的工作是访问该公用表。而不是自定义的DAO代码,专用模型对象等,信息将简单地通过web服务调用来检索,可能是JSON格式。

但是...我需要的答案知道一些问题:

  1. 这真的是一个具有成本效益的想法?我们可能会为公司的每个财政年度(旧版或重写旧版应用程序)执行大约10个小型到中型项目。
  2. 如果DepartmentDAO主要由Save(),Delete()和FindByName()/ FindById()方法组成,那么将代码/工作量用Web服务代码替换会大大减少吗? (请注意,必须编写代码来执行诸如将JSON结果转换为选择框之类的内容)
  3. Web服务调用的安全隐患会是一场噩梦吗?

总之,这在人力成本/可维护性等方面是否值得呢?

回答

1

为所有系统创建通用模式通常是不现实的。

虽然您正在开发,但也可能会发生变化,但进行更改的成本最终会很高,以至于无法进行任何更改。

了一个解决方案的模式是“限界上下文”,有这样的埃里克埃文斯领域驱动设计书

+0

一个很好的说明我同意,不会为复杂的要求工作。但是,该用例适用于包含ID和名称的简单对象。即使添加了更多的属性,开发人员也可以忽略他/她不需要返回的任何内容。 – Jason 2010-02-05 18:53:01