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

推荐订阅源

Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
腾讯CDC
D
Docker
G
Google Developers Blog
D
DataBreaches.Net
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
The Cloudflare Blog
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog
大猫的无限游戏
大猫的无限游戏
量子位
美团技术团队
aimingoo的专栏
aimingoo的专栏
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Engineering at Meta
Engineering at Meta
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 文野

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!