从文档视图结构到FRP 0 - xianjimli/misc GitHub Wiki

前段时间写了一个PPT,介绍了文档视图结构、MVC模式、MVP模式和MVVM。在写之前,我觉得对这些东西已经理解,毕竟这些年经常在用它们,可是真正想把它们讲出来时,发现很多东西并没有真正理解,又去查了不少资料,在这个过程中收获很多。

这几年都在埋头写程序,主要是写基于HTML5写GUI库和游戏引擎,我一直觉得软件开发思想并不会有什么大的变化,面向对象设计和设计模式,还能玩出什么花样来呢?我对写程序一直是很自信的,这种自信是非常可怕的,它有时会蒙蔽我们的双眼,让我们对新技术视而不见。

2016年6月份开始关注WEB前端开发,看到前端开发的技术日新月异,而我还停留在用jquery写了几个对话框的阶段,看到AngularJS、React、flux和redux这些东西时,虽然我的工作与前端开发没啥关系,当时也惊出一身冷汗。后来花了几个月时间去学习这些东西,包括Reactive Programming和Functional Reactive Programming,又用Typescript写了上万行代码,用Golang和Rust写了几个小程序,心里终于稍微平静一点了。

这几个月呆在家里,除了学习外,大部分时间在开发一个基于HTML5 Canvas的APP框架QToolKit,有人问我,为什么又叫TK?写了嵌入式GUI FTK,后来又写了游戏引擎cantk,现在又来个QTK。答案很简单:我是一个缺乏创意的人,而且我喜欢GTK,后面写的GUI都算是向GTK致敬吧。

总之,最近有点写闲,写几篇博客,总结一下。写博客有很多好处,其中最大的好处是,有人指出你的不足。我尽量把我以为正确的东西写出来,如果读者觉得不对,欢迎指正。这个系列打算写一下内容:

  • 再谈面向对象

  • 观察者模式

  • 文档视图结构

  • MVC模式

  • MVP模式

  • MVVM模式

  • Reactive Programming

  • Functional Reactive Programming

这个系列看起来有些老生常谈,不过真正搞懂的人并不多。至少我没有全搞明白,所以我想在写作过程中去学习,和大家交流,以增强对这些知识的理解。