我们是不是把MVC、ORM等技术的主次颠倒了?

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

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

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

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

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

posted @ 2010-05-11 10:38  文野  阅读(3047)  评论(5编辑  收藏  举报