在设计、实施和维护 CRUD 上所付出的努力

Posted

技术标签:

【中文标题】在设计、实施和维护 CRUD 上所付出的努力【英文标题】:Effort Spent on Designing, Implementing and Maintaining CRUD 【发布时间】:2008-10-28 11:43:13 【问题描述】:

您在数据访问层中实现和维护简单的创建、读取、更新和删除 (CRUD) 方法上花费了多少百分比的开发工作?

迁移到像 Hibernate 或 Entity Framework 这样的 ORM 是否会带来显着的节省? 当您的数据访问层迁移到 ORM 是一个不错的选择时,是否有任何设计异味让您知道?

亲切的问候, 阿什什

【问题讨论】:

【参考方案1】:

最近花费了荒谬的小时数(可能大约 40%)来复制 ORM 在几分钟内完成的工作,我不得不说,只要您可以允许经过良好测试的框架生成(并维护!)基本 CRUD操作,让它做吧!

让框架做它擅长的事情。将时间花在真正增加价值的应用程序部分,即您正在解决的业务问题上。只有当框架不足时,您才真正考虑解决它。 “功亏一篑”可能包括性能,但通常框架内有“钩子和旋钮”让你做你需要完成的事情。

实施/设计气味:当您第 40 次编写“StoredProcedureWrapper”或通过捕获 DAO 输出实现查询结果缓存时,您可以/应该使用 ORM

对于 Ruby/Rails 或 Groovy/Grails 类型的框架,我看不出真正的理由从 ORM 层开始,因为这两种环境都会为您生成域。 p>

使用 Spring/Hibernate 稍微复杂一些,但仍然省去了很多非常相似的小类的手工编码。

我还在过去 10 年左右的几个项目中发现,如果我们没有开始使用 ORM,我们最终会开发或“窃取”JDBC 框架或其他脚手架代码,这些代码再次重复了很多内容ORM 可以帮你。

【讨论】:

以上是关于在设计、实施和维护 CRUD 上所付出的努力的主要内容,如果未能解决你的问题,请参考以下文章

你都付出了哪些努力

你都付出了哪些努力

数据库设计-第五六节:物理结构设计和数据库的实施和维护

数据库-第七章 数据库设计-7.6 数据库的实施和维护

数据库-第七章 数据库设计-7.6 数据库的实施和维护

应该如何设计执行 CRUD 操作的 bean 的单元测试?