- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在数据访问层中实现和维护简单的创建、读取、更新和删除 (CRUD) 方法所花费的总开发工作量有多少?
迁移到 Hibernate 或 Entity Framework 等 ORM 是否会带来显着的节省?是否有任何设计味道让您知道在为您的数据访问层迁移到 ORM 是一个不错的选择时?
亲切的问候,阿希什
最佳答案
最近花费了荒谬的时间(可能大约 40%)来复制 ORM 在几分钟内完成的工作,我不得不说,只要你可以允许经过良好测试的框架生成(并维护!)基本的 CRUD操作,让它来做!
让框架做它擅长的事情。将时间花在真正增加值(value)的应用程序部分,即您要解决的业务问题上。只有当框架不足时,您才应该真正考虑解决它。 “未达标”可能包括性能,但通常框架内有“钩子(Hook)和旋钮”,让您完成需要完成的事情。
实现/设计味道:当您第 40 次编写“StoredProcedureWrapper”代码或通过捕获 DAO 输出实现查询结果缓存时,您可以/应该使用 ORM
对于 Ruby/Rails 或 Groovy/Grails 类型的框架,我看不出有什么理由不从 ORM 层开始,因为这两种环境都会为您生成域。 p>
使用 Spring/Hibernate,它稍微复杂一些,但仍然节省了很多非常相似的小类的手工编码。
我还在过去 10 年左右的几个项目中发现,如果我们不开始使用 ORM,我们最终会开发或“窃取”JDBC 框架或其他脚手架代码,这些代码再次重复了很多东西ORM 可以帮助您。
关于.net - 在设计、实现和维护 CRUD 上花费的精力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/242988/
我是一名优秀的程序员,十分优秀!