阿里妹導讀:儘管大部分前端的工做並不涉及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