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

推荐订阅源

S
Secure Thoughts
罗磊的独立博客
T
The Blog of Author Tim Ferriss
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
Last Week in AI
Last Week in AI
美团技术团队
Google Online Security Blog
Google Online Security Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
D
Docker
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
酷 壳 – CoolShell
酷 壳 – CoolShell
小众软件
小众软件
月光博客
月光博客
L
LINUX DO - 最新话题
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
W
WeLiveSecurity
H
Heimdal Security Blog
Vercel News
Vercel News
SecWiki News
SecWiki News
Forbes - Security
Forbes - Security
Blog — PlanetScale
Blog — PlanetScale
Google DeepMind News
Google DeepMind News
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
TaoSecurity Blog
TaoSecurity Blog
T
Troy Hunt's Blog
A
About on SuperTechFans
C
Check Point Blog
S
Security Affairs
Hacker News - Newest:
Hacker News - Newest: "LLM"
AI
AI
WordPress大学
WordPress大学
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Help Net Security
Help Net Security
博客园_首页
The Last Watchdog
The Last Watchdog
S
SegmentFault 最新的问题
Hugging Face - Blog
Hugging Face - Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Engineering at Meta
Engineering at Meta
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
I
Intezer
K
Kaspersky official blog
M
MIT News - Artificial intelligence
J
Java Code Geeks
G
GRAHAM CLULEY
P
Palo Alto Networks Blog

博客园 - 文野

DDD自问自答 数据结构(C#语言版)——栈和队列 数据结构(C#语言版)——线性表 2011一月的三个故事 我想要的2011 我的2011的三个故事 《悟透JavaScript》中的知识点 用Windows Live Writer写博客 论单一职责 对象结构 由做梦想到的 2009第一帖,测试用Word2007发布博客 一点一点学ASP.NET之基础概念——事件 应用框架的设计与实现学习手札系列(持续更新) 未解决的问题(持续更新) 应用框架的设计与实现学习手札之类工厂服务——反射 一点一点学ASP.NET之基础概念——委托 一点一点学ASP.NET之示例——HttpModule 示例 一点一点学ASP.NET系列(持续更新)
我们是不是把MVC、ORM等技术的主次颠倒了?
文野 · 2010-05-11 · via 博客园 - 文野

     长时间以来,发现很多人,包括自己,在学习新技术时,出现很多本末倒置的现象,MVC与ORM就是两个比较典型的例子。

     实现与理论分开。很多时候,理论思想的关注点与实现的关注点不一定是一样的,往往甚至某种思想,实现了某种框架,框架的作用是把边边角角的细节抽象出来,减少开发者在这些细枝末节上的精力,把注意力,精力花在核心思想的实现上。而我们往往去学习某种框架,然后就陷在框架的实现上,而忘了本来框架所支持的思想。

    很多技术的名字顺序是非常有意义的。

    比如MVC,首要的关注点是模型(M),其次才是视图(V)。控制器(C)只是用来连接模型与视图的。而我们很多人在视图与控制器上花了大把的精力,但有谁去注意过模型呢,就算有处理模型的,大多也都是在为视图服务,严重的本末倒置。

    再来说ORM,这个更严重,甚至可以说很多人的使用就是一个错误。为什么要ORM?是为了解决O与R的阻配失抗。ORM,是对象模型到关系模型的映射。而我们有多少人在使用的所谓ORM是这样吗?很多都是先建表,然后生成对象,那是ORM吗?那应该叫ROM吧?顺序错了,往往就跟这个思想技术的本意相违背了。现在有很多号称强大的代码生成工具,也称全面支持ORM,完全面向对象。但在我看来,领域模型,业务逻辑是不可生成的,可生成的大部分通过抽象也是能得到解决的。我承认这些生成工具的强大,但在生成代码时,请别在说ORM,因为你做的是ROM!