OR Mapping技术--软件工程的死敌

原创 2006年06月03日 22:13:00

Java软件开发员们都知道有一个MVC架构,其中最底层Model层目前流行的是OR
Maping的技术.面向对象的痴迷者想把什么都对象化,苦苦想将关系数据库变为面
向对象的数据库,经过十多年的实践证明, 这种想法是不现实的, 面向对象的数据
库至今没有商品化的产品. 于是面向对象的痴迷者创造出OR Mapping技术(例如
OJB,Hibernate).

笔者看来,用OR Mapping完全没有必要, 用了OR Mapping加重了项目开发难度,
延长了开发周期, 项目维护也困难了. 为什么会这样呢? 因为你一旦使用诸如
Hibernate的东西, 程序至少多出两层, 一个是VO层, 一个Dao层. 这会逼你写
一大堆和业务无关的,只是为了实现这个架构所需要的代码.(当然可能会有一些
工具自动产生这些架构所需要的代码), 所有这些做法是和软件工程的原则相违
背的.

软件工程的原则要求重用性, 越是底层的类越要有重用性, 越应该和业务逻辑无关.
我们总不能稍微改变一下业务逻辑就要求Oracle重写一个数据库服务器软件吧, 但是
OR Mapping的类却不是通用的类. 如果业务逻辑改变了, 例如需要在一个表里增加
一个字段, 那么用OR Mapping的开发人员不得不从最底层改到最高层. 每一层都
要改, 每一层都是不通用的!

软件工程的原则要求写程序应该直接了当, 不应该过度设计, 能精简尽量精简,
不要为分层而分层. 好的架构应该让程序员只写业务逻辑的代码,而用了OR
Mapping后, 程序员不得不花时间去产生一大堆只是为了满足架构需要的代码.

用OR Mapping的面向对象的技术查询数据库永远不可能象SQL语言一样灵活, Hibernate
的HBL查询也只能做一些简单的查询, 复杂的sql查询是OR Mapping技术无法替代的.

其实不用OR Mapping的技术早就有了, 以前做C/S软件的时候, 象VB使用ADO访问数据库,
PB使用DataWindow访问数据库. VB的ADO和PB的DataWindow都是访问数据库的通用底层
组件. 如今做B/S软件了, 也已经出现了.net架构使用的ado.net这个通用组件, 其实
Java也有自己的RowSet和CachedRowSet组件. 用通用组件去访问数据库要比用OR Mapping
方法更先进而高效.

Cookie mapping技术

摘要:Cookie mapping分为两步:(1)google ad exchange等在网站主网站上种cookie,生成google_id  (2)用户在网站主网站上浏览时,有广告请求; goog...
  • crazyhacking
  • crazyhacking
  • 2013年09月04日 11:48
  • 9548

.NET O/R Mapping

一、概述     O/R Mapping全称Object Relational Mapping,就是对象关系映射。把对表直接进行的操作,变成对持久化类的属性和方法的直接操作。 很多的项目是基于数据库的...
  • jery_lee
  • jery_lee
  • 2004年08月20日 23:39
  • 2551

上周技术关注:O/R Mapping乱弹

[orm; linq] O/R Mapping乱弹 # 在这里我也顺便谈谈我对DLinq的看法。首先我不得不承认它很Cool,并且我之前对Linq也做过介绍,但是我并不是很喜欢它的方式,至少它...
  • zdg
  • zdg
  • 2006年06月12日 21:16
  • 3938

软件工程的技术问题

软件工程的技术问题1.             范畴说起软件工程,往往令人想起CMM、RUP、印度模式等。管理的因素,在软件开发过程中起着非常重要的作用,然而,软件工程并非只指软件开发的管理工作,而是...
  • sunny_y_m
  • sunny_y_m
  • 2003年01月22日 09:46
  • 800

软件工程包括三个要素:方法、工具和过程

软件工程包括三个要素:方法、工具和过程。 软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、...
  • chen_cyclone
  • chen_cyclone
  • 2010年07月27日 16:53
  • 944

Test Complete的Name Mapping技术

Test Complete的Name Mapping技术 陈能技2007-8-14  配置管理惹的祸如果配置管理没有做好对代码的控制的话,可能会出现以下影响自动化测试的情况:程序员在修改程序的时候发现...
  • Testing_is_believing
  • Testing_is_believing
  • 2007年08月17日 21:02
  • 4394

深入浅出理解 COOKIE MAPPING

在RTB(实时竞价广告,Real-Time-Bidding)广告领域(当然实际上不仅仅是这个领域),有一个常见的词汇叫 Cookie Mapping(Cookie 匹配),一会又是DSP(需求方供应平...
  • bbaiggey
  • bbaiggey
  • 2017年03月14日 17:50
  • 846

关于OR-Mapping的学习心得体会

关于OR-Mapping的学习心得体会 注:本文只针对设计上采用OOA(面向对象分析)及OOD(面向对象设计)方式,数据存储采用关系型数据库的系统而言。 从对OR-Mapping错误认识谈起     ...
  • crazyrain
  • crazyrain
  • 2004年06月30日 17:48
  • 9081

软件工程的核心是什么?

     我们经常做一件事情,时间做久了,忘记了当初的旨意。在软件工程中,人们谈过程、谈规范、谈过程改进,结果将为什么要搞软件工程的最初动机给忘了,舍本求末。做任何事情,都要清楚其目标才能把事情做好。...
  • KerryZhu
  • KerryZhu
  • 2009年02月15日 20:46
  • 10697

cookie mapping原理及应用

1. 背景 在广告业务中,随着AdExchange和DMP的出现,一条广告的竞价和曝光经由多个平台和合作方合作完成。而多个合作方都有各自的账号系统,且不是互通的,比如流量方与广告主都各自有自己的账号...
  • Jogger_Ling
  • Jogger_Ling
  • 2017年03月21日 14:39
  • 1080
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OR Mapping技术--软件工程的死敌
举报原因:
原因补充:

(最多只允许输入30个字)