刚过去的周五(3-14)例行地主持了技术会议,主题正好是《UI层的设计模式——从Script、Code Behind到MVC、MVP、MVVM》,是前一天晚上才定的,中午花了半小时准备了下就开讲了。
今天看到了大家在为MVVM knockout.js友(ji)好(lie)地交流,所以就整理下然后更扩展地分享。
主要目的也不是为了争论,毕竟只是正巧主题相近,原本的打算也就是一次技术分享并且记录下来。
那么我们就按照大致的历史进程将这些概念进行划分:
Script
Code Blocks、Code Behind
MVC、MVP、MVVM
我们知道的是现实的历史发生顺序并不如上,因为思想都是相似的,比如MVC很早很早就出现了,解释型语言至今基本上也有很多分支而且在互联网时代大行其道。
但我要说的是:不要在意这些细节!
当然了,这是玩笑,我的意思是,这些内容我懒得应该在另外独立的主题探讨,篇幅也有限。
Script这里脚本的意思不是指当时是用脚本开发,而是像写脚本一样开发。它们都有一个特点:功能单一、管理单一、入口单一。
我们最早的程序是汇编,当时的码农的工作是兼职,工作内容是编写一套寿命不长的机器控制指令,有些甚至是命令,比如至今依然保留的Command(亮点自寻):
到后来计算机被用于科学计算等,需求推动了需要更高的开发效率,所以我们有了高级语言。
那个时候码农其实多是数学家,程序的作用很简单,就是执行一些数学计算,类似今天ICPC的一些算法问题,比如Hello World:
main() { printf("hello,world\n"); }