# 似水流年:企业管理系统的前世今生

站在 2018 年 7 月这样一个时间点上,工程师们在谈起 Web 应用开发时已经很少再会提起如 JSP(JavaServer Pages)、ASP.NET(Active Server Pages)等这些传统的服务端 Web 应用开发方案,与此同时像 jQuery、Bootstrap 等这些直接处理样式及交互的工具库也逐渐淡出了历史舞台。随着 React、Angular 及 Vue 这些 MVVM 框架的流行,使用组件去组合页面逐渐代替了 Web 应用过去以页面为单位的开发方式,各种各样的组件库也应运而生成为了支撑现代 Web 应用开发的中坚力量。
# 历史
时间退回到 2011 年,那是千团大战(团购)的元年,也是移动互联网开始真正进入人们日常生活的开始。从那之后,不论是 O2O、垂直电商,还是互联网金融等风靡全国的商业模式,各家创业公司都进入了一个 App 就可以创业的时代,同时也催生了技术领域学习 iOS 和 Android 开发的热潮,会用 Xcode 就可以月薪过万的 iOS 工程师成为了那个时代最好的代名词。但后来随着各大互联网巨头之间的合纵连横,能够不依赖投资机构独立运营的创业公司越来越少,客户端开发的需求也开始大量萎缩。在大起大落的移动端开发之外,其实这几年 Web 端开发的日子也并不好过。传统公司的官网项目连外包公司都喂不饱,除去个别大厂外又有多少公司一定要开发一个 Web 端的应用才能做生意呢?
# 传统企业管理系统(ERP)

抛开一直在走下坡路的面向用户的客户端应用不谈,长期占据 Web 应用开发需求主流的各种企业管理系统却从来都没有沉寂过,只是因为这些内部应用的使用者通常来讲不过是内部员工而已,人们对这些管理系统的期待与忍耐度都已经被培养到了一种近乎变态的地步。
但事实上对于企业管理系统开发方式的改良从未停止过。
随着互联网在办公领域的深度普及,几乎所有的传统企业都在将老旧的 CS(client/server)架构的内部系统迁移至更方便灵活的 BS(browser/server)架构。但令人遗憾的是,很多这样的升级只是将原来 C# 写的代码转换成了 JavaScript 而已,相较于现在各种交互流畅、动画炫酷的面向终端用户的应用,大部分企业管理系统的设计与交互依然停留在 Win97 时代。
# 雕版印刷术 vs. 活字印刷术

发明于唐朝的雕版印刷术一直到明清时期都还在被广泛使用,而更为人所称道的宋代毕昇所发明的活字印刷术却一直都没有成为古代中国主流的印刷技术。这其中最主要的原因一方面是古代所要印刷的书大部分都是比较固定的(如四书五经等),雕版印刷的可复用性并不比活字印刷低多少。另一方面是制造和使用一块雕版还是几千个活字模在成本与复杂度上也是不可同日而语的。换句话说,如果现在就是要印 1000 册《论语》,你是会选择做一块雕版印 1000 次,还是先做几千个活字模并把它们组装好再印上 1000 次呢?答案不言而喻。而且别忘了印完这 1000 册《论语》后,接下来要印的可能是《大学》也可能是《中庸》,上次积累的这几千个活字模并不能够完全覆盖到其他的书,额外的拆卸与组装成本也是一笔不小的开销。再者而言,组装和拆卸活字模要求所有的印刷工人都必须识字,相反雕版印刷对于印刷工人来说几乎是零门槛的,任何人在接受了一定的训练后都可以把这个活儿干好。又由于一个个活字模本身是独立制造的,将几千个活字模组装好后印出的书也难免会出现字与字之间风格或样式不统一的问题,而统一制造的雕版就不存在这个缺陷。在古代,人们所达成的共识也是雕版印刷书的质量和美观程度都要远远胜过活字印刷。
聪明的你可能已经猜到了,上面我们提到的活字印刷术就像是现代前端开发中的组件库,活字模就是一个个独
