农民兄弟

勤劳、善良、智慧、勇敢、平凡、朴实、节俭、憨厚、仁慈、诚实、守信……

博客园 首页 联系 订阅 管理
 
不可能无视数据库的存在,即使使用了再高明的ORM技巧。
以下数据库特指关系型数据库,对象为面向对象的简写。

原因:
1, 
数据库比对象技术更成熟。
      
数据库实现的背后有关系运算的理论基础,而面向对象技术最多只能算实践中摸索出来的比较有效的手段。

2,
数据库有标准(SQL 9x, 03...第二范式,第三范式...)可参考,对象没有。
      
不考虑性能的话,几乎每个DBA做出的选择都完全一样;不考虑性能的话,面向对象的人为了把系统划成100层还是99.5层争执不休。

3,
对象需要数据库,数据库不需要对象。
      
数据库无关紧要吗?那你为什么非要把对象拆碎了存到数据库里,不把它们直接放到XML文档里呢?

4,
数据库的思维是针对集合操作,对象的思维是针对个体操作。
      
也许泛型算法能弥补这个鸿沟,不过那也是C++STL的事,和对象似乎关系不大。

5,
数据库的功能远不止存取数据,对象不能因为无法方便地应用这些功能而让它们走开,这时候该走开的是对象本身。
      
想一想C# 3.0里为什么会有一个DLinq吧,它很面向对象么?

6, 
只设计对象,数据库结构自动生成是不负责任的做法。
      
且不提性能,只问你程序重构了,原来的数据怎么办?

7, ORM
里最重要的不是R,也不是O,而是M
      
正因为一时半会儿OR谁也取代不了谁,所以才需要M。好像Stan Lippman介绍 C++/CLI 时说最重要的反而是大家最不容易注意到的:那个斜杠才是整个术语的重点。

8,
理想总是美好的,现实总是残酷的。
      
性能是每个程序员的最大敌人。
posted on 2007-05-16 14:45  ★农民兄弟★  阅读(163)  评论(0编辑  收藏  举报