大概一年前,我写了一篇关于3层的终极领悟。 结论是3层其实和开发效率无关,其实主要是安全性。(后来从最牛的程序员Linus的言论里面,我找到了一点论据,分层确实是关于安全的,
大概一年前,我写了一篇关于3层的终极领悟。
结论是3层其实和开发效率无关,其实主要是安全性。(后来从最牛的程序员Linus的言论里面,我找到了一点论据,分层确实是关于安全的,我的直觉还是有点道理的)
3层作为一个鸡肋,困扰过很多人,有初学者,也有所谓高手。
虽然越来越多的人已经看清了三层的丑恶嘴脸,但是也许还有一些人陷在其中。
目前我从事的是Saas项目,站在一个新的角度,对三层看得更清晰了。整理出来,也算做点科普工作吧。
我重新修正了一下结论。
1,三层是关于部署(Deployment)和(Security)的,和开发关系不大。
2,微软对于三层的推广是典型的误导和只顾商业利益的策略。
3,三层概念在国外已经没有人提了。现在大家关心的是云计算。(注意,云时代在已美国经开始了,在中国大约会有1,2年的滞后期)
三层的问题如下。
1, 三层违反了DRY(Don't repeat yourself)原则。这也是明明说是提高效率,但是很多人觉得效率反而降低的原因。
2,有人说三层是所谓关注点分离,其实这是胡说八道,写任何程序都可以关注点分离,和三层有什么关系?
3,微软所谓的3层,无非就是对应他的产品线。即ie ,iis, sql server,而且微软居然在3层架构里面,全面使用存储过程,典型的挂羊头卖狗肉。
4,MVC的三角形架构才是和开发效率相关的,而按照微软三层的定义,MVC只能部署在同一层中。(提个醒,微软的asp.net mvc同样充满了误导和商业策略)。
特别提一下存储过程,高手是绝对不用存储过程的,这是我作为一个曾经的存储过程的粉丝的痛定思痛。
感慨:有时候相信自己的直觉和实验,也许要比相信某些专家更靠谱。