研讀JavaScript全棧開發員:雲時代的奇蹟

51cto發表於2015-05-05

  據今年Stack Overflow網站對廣大開發人員的調查顯示,最常見的一群開發人員是二十出頭的JavaScript全棧開發員。全棧(full-stack)這個短語意指“能夠從頭開始編寫Web服務”。全棧開發員能夠使用亞馬遜網路服務(AWS)API,處理Ubuntu作業系統,編寫JavaScript程式碼,並且提供介面。

  不過這其實並非雲端計算,不是嗎?JavaScript開發員可不在乎雲端計算的細枝末節,比如RAID配置、核心模組或應用程式故障切換。他也不在乎OpenStack的未來,不在乎Lattice是不是比Cloud Foundry更容易使用。JavaScript全棧開發員與雲端計算到底有什麼關係呢?

  雲端計算堆疊

  IT人員喜歡堆疊,因為堆疊的上層隱藏了低層的複雜性。雲端計算技術堆疊看起來就像這樣:

  • 頂層是應用程式――各種各樣的計算機程式,從Apache到Zabbix,不一而足。
  • 中間層是作業系統――我們們實話實說吧,Ubuntu在這方面勝出。
  • 底層――雲服務提供商

  JavaScript堆疊

  JavaScript堆疊是位於雲端計算堆疊那個頂層的多種型別的工件(artifact)當中的一種。JavaScript堆疊實際上與其說是一種堆疊,還不如說是一種軟體包:該軟體包既涵蓋伺服器端計算,又涵蓋客戶機端計算。

  伺服器端確確實實含有軟體堆疊。底層是谷歌公司的V8 JavaScript引擎,Joyent公司的Node.js伺服器建立在V8上,編碼框架則位於Node.js的基礎上。伺服器端儲存區是NoSQL資料庫――傳統的關係型資料庫管理系統(RDBMS)根本就不是很酷。客戶機端包括另一種應用程式框架(如果你聽到開發人員把這一切現成的程式碼稱作樣板,那麼他很可能是全棧開發員群體當中的一員)。

  千萬不要低估了大批開發員的耐心。以色列開發公司Linnovate拿來伺服器端資料庫Mongo、伺服器端Express框架、谷歌的客戶機端框架AngularJS以及Node.js後,隨後進行了一番整合工作,開發出了MEAN.io。MEAN軟體包將這些元件的安裝和配置簡化為只有一行的命令。這種簡化工作對開發人員來說如同小菜一碟(這也就是開發人員覺得Docker和Vagrant如此吸引人的原因之一)。

  JavaScript開發人員的工具箱包括更多節省時間的軟體,這些軟體的名稱好像是從字典裡隨機選擇似的。你會喜歡Jasmine還是Mocha?不知道。會喜歡Grunt還是Gulp?說不準。喜歡D3還是Epoch?拜託,到此為止吧。

  JavaScript全棧開發員

  全棧開發員的想法是,面向Web、完全從軟體的視角看待技術世界,這在雲端計算之前是不可能做到的。十年前有的只是從O'Reilly Web2.0視角看待Web,而現在是從全棧視角看待Web。

  全棧開發員是專家級的JavaScript程式設計人員,能夠處理這些全棧工具,諳熟HTML5和CSS等其他語言(沒錯,這些是語言),而且瞭解AJAX、單頁應用程式和充分利用代表性狀態傳輸協議(REST)的Web服務等概念。

  與所有IT技術迷一樣,JavaScript全棧開發人員也被嶄新的技術所吸引。如果說企業投資者是闊綽的後臺老闆、系統管理員是不修邊幅的傢伙,那麼JavaScript全棧開發員就是趕時髦的人。他們一點也不像擅長LAMP堆疊或PHP驅動的CMS的人群。而全棧這個短語讓這一批新的JavaScript開發員有別於昔日微不足道的JavaScript前端開發員。

  站在巨人的肩上

  你可以說,這些JavaScript全棧開發員與雲端計算沒有半毛關係。他們的日常工作與構建或執行大規模分散式雲端計算系統毫無關係。他們可能在滑雪旅行間歇為小公司製作漂亮的網站,從不考慮那些雲API後面的東西。

  但這其實是一種誤解。這些開發人員的工作恰恰離不開雲端計算的存在。JavaScript全棧開發員好比站在巨人的肩上。JavaScript全棧開發員很可能是開發運營(DevOps)文化圈的一員,構建彈性系統,並使用版本控制系統來編寫程式碼。他關注架構、監控和容量,他每天都在耗用雲端計算資源。

  如果拿顯微鏡來細細研讀JavaScript全棧開發員,研究這個群體。你就會發現這是雲端計算時代的諸多奇蹟之一。

相關文章