阿里妹导读:尽管大部分前端的工做并不涉及server,但最近半年serverless这个词汇以及其引起的热烈的讨论,深深触动了阿里巴巴高级前端技术专家伐薪。做为接触前端十余载的老开发,伐薪认为serverless可能会是接下来引发前端领域革命性变化的技术之一。前端
今天,伐薪将为你们梳理serverless的历史发展进程以及对前端的影响,但愿对前端工程师有所启发。java
上图是serverless 这个词最近5年在 google 的搜索趋势,能够看到最近半年已经达到巅峰。node
Ajax 的诞生webpack
先来回顾一下前端技术领域的重要历史节点,第一个节点是2005年,google的Jesse James Garrett 发表了一篇文章——《Ajax:Web应用程序的新方法》,首次发布了Ajax 这个新的词汇(准确说并非新的技术,只是新的词汇),当时我还在读大二,虽然ajax不是什么新的技术,只是对XmlHttpRequest等技术的包装,可是这个技术被google宣传以后成为全球web开发的标杆,间接促进了富客户端应用(RIA)和单页应用(SPA)的流行,这些应用大都具有丝滑般的体验(局部刷新),并一直伴随着web 2.0的发展,ajax的深刻人心,使得前端js的工做更加复杂和重要,专业分工愈来愈细,间接促进了专职的前端开发人员这一角色诞生,在此以前,web开发并不区分服务端和浏览器端的工做,所以ajax是前端领域的第一次重要事件。web
Nodejs 对前端规范化和工程化的促进ajax
接下来对前端变化最大的一个里程碑事件是2009年诞生的 nodejs(包括common js及npm)的出现和流行,它对前端领域的重要意义并不单单是让前端能够快速用js写server那么简单,我的认为它最大的贡献反而是commonjs、npm以及其便捷开发体验促进的前端工程化,它使得前端开始从刀耕火种的和传统软件工程格格不入的部署方式,发展为接近传统企业应用的研发模式,在此以前,前端开发在资源引用、依赖管理以及模块规范上缺少有效的工具和标准,可是nodejs流行之后,基于commonjs的模块及npm的包部署和依赖管理成为主流(相似java的maven体系),并诞生了多种基于nodejs开发的cli工具辅助前端开发(如grunt、gulp),npm目前是全球最大的包管理仓库,而且成为前端项目的包依赖管理事实标准。而webpack的出现,又使得前端代码的部署更加简便,让前端能够以相似java jar包的形式发布应用(bundle),而无论项目中是何种类型的资源。npm
原文连接gulp