2010-08-06 51 views
3

ActiveRecord通常太受限制。然而,就团队中每个成员在使用ORM方面所持的观点而言,我处于困难的境地。我们目前使用的是一个非常基本的ActiveRecord,遗憾的是我主要是用一些基本的代码编写的。我想为我们构建一个新的DAL,但避免了ActiveRecord的限制,所以DDD更是如此。但是我对作战的点(包括旧派开发商和我很年轻):要采取哪种DAL方法?

团队负责开发

  • 是赞成的存储过程,但不洽...一些就拿 一张表格SELECT * FROM公司和一些得到SELECT C. *,O.OtherTableValue FROM公司C ...(非常令人沮丧)
  • 真的不知道一些最新的ORM工具的好处
  • 不会承诺任何工具都是“太严格”,如果有问题,你会怎么做?

DBA

  • 不喜欢动态SQL
  • 不喜欢SELECT *

我并不是说上述是关闭的限制,其更convicing否则。我相信我们可以通过使用ORM来大幅提高效率,但是否则很难说服他们。如果我能为这些领域的某些领域提供证据,我可能能够说服他们,甚至通过在不知情的情况下实施,然后看到好处。

您可以给我什么建议来帮助我的情况?我相信很多开发者会遇到这个问题,不能选择他们想使用的架构。

回答

2

我认为您的团队领导需要承诺保持一致或在ORM研究项目上花费一些时间来提出建议。换句话说,一个不一致的和设定的团队领导者不应该担任这个角色。其次,我倾向于同意你的DBA出于多种原因。只要他/她足够灵活,就可以知道有些情况下动态SQL可以更好地解决问题。

针对您的具体情况,我想请您的数据库管理员制定存储过程每次都要使用的法律,除非在个案基础上提供理由并通过策略和监控加以实施。这将解决一致性问题。也许那时,就手中的这一政策而言,ORM看起来比将所有内容手写到团队领导者手中更诱人。

+0

关于团队负责人 - 他不会改变自己的方式,他没有真正的工作兴趣来让事情变得更好......它会做更多的事情。不应该做我认为的工作,但不是我的呼吁,所以我必须做 关于DBA,他没有真正从应用程序中得到问题,因为数据库是他的背景,我认为他学到了一点,并没有从那以后,因此还没有了解到新的变化,即动态sql现在不是'一直'不好。 – user203538 2010-08-13 10:51:10

+0

然后我建议你阅读“死亡之旅”一书。可能会帮助你的情况。 – 2010-08-13 13:38:39

+0

看起来像一个新的DAL或其他工作 – user203538 2010-08-13 16:20:07

1

首席开发人员应该倾听DBA的意见。 “SELECT *”不好。从关于主要开发人员的重点来看,这听起来像是你有一场熟悉的艰苦战斗。有时候,在这种情况下,阻力最小的路径是使用ORM(如NHibernate)实现某些东西,并为团队安排某种演示。

鼓励他们提供他们的意见,特别是来自首席开发人员,DBA和任何其他可以说话的人。在您了解更多信息时,他们可能会有合法的抱怨,可以使用该工具实际解决。另一方面,他们可能只是因为没有合乎逻辑的理由而对它不利。如果是这样的话,最好找出来,因为这可能意味着没有赢得反对他们的这个论点,因为他们并不是真正的辩论。

+0

非常多的它不是真正的辩论......正如我上面评论,他们学到了一些东西,并没有说5-10年,并认为这仍然是最好的方式。我认为赢得和改进事物的唯一方法是推出我自己的DAL ..但是从哪里开始,这是一个很大的任务。我知道人们说不,但我真的不认为我有很多选择:( – user203538 2010-08-13 10:53:35

1

他们对使用ORM有什么异议?如果他们不只是固执而顽固,那么如果你知道他们特别反对你并解决这些问题。像其他人一样,我认为你的DBA是正确的。但是如果他关心动态sql中的SQL注入,ORM就会缓解这个问题。选择*应该是发射的理由。

我很想知道如何在LINQ-to-SQL或亚音速或nhibernate上使用某些东西。使用ORM显示开发速度更快,更清洁。

+0

关于创建一个新的DAL,哪个ORM最好基于它??如果它看起来我已经创建它,那么他会使用它,所以只需要一个起点,调整它,并从其他ORMs一些想法。亚音速似乎是一个简单的代码库..思想? – user203538 2010-08-13 16:32:05