ActiveRecord通常限制太多。但是,就团队中每个成员在使用ORM方面所持的观点而言,我处境艰难。我们目前使用一个非常基本的ActiveRecord而后悔我说的主要是用一些基本代码编写。我想为我们构建一个新的DAL但是避免了ActiveRecord的限制,所以DDD更是如此。然而,我正在与之斗争的是(老skool开发人员和我自己很年轻):
团队首席开发人员
DBA
我并不是说上述情况不受限制,否则会更加令人信服。我相信我们可以通过使用ORM大大提高我们的效率,但很难说服他们。如果我能够证明这些领域的某些方面,我可能能够说服他们,即使是在他们不知情的情况下实施,然后看到好处。
您可以给我什么建议来帮助我的情况?我相信很多开发人员都会遇到这种情况,无法选择他们想要使用的架构。
答案 0 :(得分:2)
我认为您的团队负责人需要承诺一致性或花一些时间在ORM研究项目上提出建议。换句话说,不一致和固定的团队负责人不应该担任该角色。
其次,出于多种原因,我倾向于同意您的DBA。只要他/她足够灵活,就知道动态SQL有时会更好地解决问题。
根据您的具体情况,我会要求您的DBA制定法律,每次都要使用存储过程,除非根据具体情况提供理由,并通过政策和监控来强制执行。这将解决一致性问题。也许那时候,有了这个政策,ORM看起来比将所有东西都手工编写为团队负责人更具吸引力。
答案 1 :(得分:1)
首席开发人员应该听取DBA的意见。 “SELECT *”很糟糕。从关于主要开发者的要点来看,这听起来像是一场熟悉的艰苦战斗。有时在这种情况下阻力最小的路径是使用ORM(例如NHibernate)实现某些东西,并为团队安排某种演示。
鼓励他们的投入,特别是来自首席开发人员和DBA以及任何其他nay-sayers。他们可能有合法的抱怨,当您了解更多有关它时,可以使用该工具实际解决这些抱怨。另一方面,他们可能只是因为没有正当理由而死定。如果是这样的话,最好找到它,因为它很可能意味着没有赢得这个反对他们的论点,因为他们并没有真正辩论。
答案 2 :(得分:1)
他们对使用ORM有何异议?如果他们不仅仅是顽固和顽固,那么如果你知道他们特别反对你并解决这些问题。和其他人一样,我认为你的DBA是正确的。但如果他担心从动态sql注入SQL,ORM会稍微缓解这个问题。选择*应该是开火的理由。
我想你应该只使用一些东西,LINQ-to-SQL或亚音速或nhibernate。使用ORM显示开发可以更快更清洁。