zoukankan      html  css  js  c++  java
  • 一些感想,欢迎拍砖

    不可能无视数据库,即使使用了再高明的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。
          正因为一时半会儿O和R谁也取代不了谁,所以才需要M。好像Stan Lippman介绍 C++/CLI 时说最重要的反而是大家最不容易注意到的:那个斜杠才是整个术语的重点。

    8, 理想总是美好的,现实总是残酷的。
          性能是每个程序员的最大敌人。
  • 相关阅读:
    客户端通过spice-gtk实现USB重定向
    KVM通过qemu实现USB重定向
    Json
    《卓有成效的管理者》读书笔记
    《第五项修炼•实践篇》读书笔记
    《远大前程——从软件新手到行业大件》读书笔记
    目前常用的网站
    Objective-C内存管理
    Ubuntu修改屏幕默认亮度
    Ubuntu下安装eclipse及PyDev插件注意事项
  • 原文地址:https://www.cnblogs.com/deerchao/p/721770.html
Copyright © 2011-2022 走看看