惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Webroot Blog
Webroot Blog
U
Unit 42
A
About on SuperTechFans
宝玉的分享
宝玉的分享
月光博客
月光博客
C
CERT Recently Published Vulnerability Notes
P
Privacy International News Feed
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
P
Privacy & Cybersecurity Law Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Securelist
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Spread Privacy
Spread Privacy
L
Lohrmann on Cybersecurity
Apple Machine Learning Research
Apple Machine Learning Research
K
Kaspersky official blog
Hugging Face - Blog
Hugging Face - Blog
B
Blog
I
Intezer
Last Week in AI
Last Week in AI
T
Threat Research - Cisco Blogs
V
V2EX
L
LangChain Blog
AI
AI
G
GRAHAM CLULEY
T
Tor Project blog
人人都是产品经理
人人都是产品经理
D
Docker
WordPress大学
WordPress大学
Google DeepMind News
Google DeepMind News
I
InfoQ
Y
Y Combinator Blog
C
Comments on: Blog
GbyAI
GbyAI
www.infosecurity-magazine.com
www.infosecurity-magazine.com
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
N
News and Events Feed by Topic
MyScale Blog
MyScale Blog
H
Help Net Security
Vercel News
Vercel News
T
Tenable Blog
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿

博客园 - ★农民兄弟★

求救----用LINQ实现分页控件的困惑! “高考奇人”张非的故事-----中国教育的怪现象(转载) 做人与读书(转载) 让设计与分析重用----基于构件开发的应用框架设计(转载) 大学教给了我们什么(转载) 架构设计的三个维度(转载) 软件设计本质论—白话面向对象(转载) 成长中不可或缺的是信仰(转载) 来自微软华人的软件人生经历:功夫在身外(转载) C# 3.0:LINQ 的演变及其对 C# 设计的影响(转载) 项目经理是这样当的(转载) 如何从开发人员走向架构师(转载) 由侯捷先生的Design Patterns高级课程说开去(转载) 终于相信美国是个农村了(转载) 谈谈加班(转载) 软件开发岗位设置(转载) 架构设计贵在务实(转载) LINQ会为我们带来什么?(转载) C# 语言的几个层次(转载)
ORM感想(转载)
★农民兄弟★ · 2007-05-16 · via 博客园 - ★农民兄弟★
 

不可能无视数据库的存在,即使使用了再高明的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,

理想总是美好的,现实总是残酷的。
      
性能是每个程序员的最大敌人。