當前最火的web開發技術

贊 回覆發表於2014-11-26

  盤點當下最火的web開發技術。

  HTML5

  2014年10月29日,全球資訊網聯盟淚流滿面地宣佈,經過幾乎8年的艱辛努力,HTML5標準規範終於最終制定完成了,並已公開發布。

  HTML5提供了一些新的元素和屬性,例如nav(網站導航塊)和footer。這種標籤將有利於搜尋引擎的索引整理,同時更好的幫助小螢幕裝置和視障人士使用,除此之外,還為其他瀏覽要素提供了新的功能,如audio和video標記。

  HTML5還有望成為夢想中的"開放Web平臺"(Open Web Platform)的基石,如能實現可進一步推動更深入的跨平臺Web應用。

  Angular

  我解釋一下為什麼Angular能夠這麼火,它主要解決的是哪個層面的問題呢?它解決的是快速開發的問題。我們知道,有很多b/s化的產品,其本質還是像c/s,只是把這個c做到瀏覽器裡來了,這樣的一些系統,它免不了要在瀏覽器中寫大量js,然後使用某種ui框架,它的協同開發人員數量會相對較大,程式碼量也會很多,在這類系統的開發過程中,從成本的角度要解決兩個問題:
 

  怎樣讓開發過程儘量快?

  怎樣讓變更成本儘量小?

  解決這兩個問題的辦法是元件化。所謂元件化,在傳統軟體領域可能會有一些成熟方案,但是拿到Web,尤其Web前端這個層面,基本沒有一種通用方案。元件化並不僅僅要解決“控制元件”這個層面的問題,還需要把業務資料和邏輯也做規約,理清他們之間的關係,而Angular“碰巧”在這個方面很有幫助,它把UI和業務邏輯隔離得乾乾淨淨,模組之間使用依賴注入來維繫關係,易測試,可複用,作為架構師,也可以比較容易地對整個專案有所把控。

  我們看到很多人跟風學Angular,有很大一部分並未抓住其實質,而是被一些邊角優勢所吸引,因此用的過程中各種痛苦,如果能夠先認識到它的本質優點所在,並且認識到它確實適合自己的專案,一定能得心應手,左右逢源。

  React

  為什麼很多人被React吸引呢,因為他從另外一個層面解決元件化的問題,而這種方式可能對前端來說更友好,而且還能夠在服務端解析模板。喜歡React的人常常用它的虛擬DOM、精確更新來打擊其他框架,誠然,它在這方面做得非常好,但並未高到影響全域性的程度。這是什麼意思呢,它是一個主要針對DOM元件的庫,如果用於完整的大型產品解決方案,還是有所欠缺的,它的優勢集中在上層,但其實從巨集觀角度看,這一層的效率並沒有那麼重要,比如說你是一架很精巧的挖掘機,自帶各種分揀功能,但很多時候,大家是很粗暴地去挖東西,就像挖煤那樣,你在細節上有多麼高效並不重要,只有在一些需要精確控制的場景下,優勢才能發揮出來。況且,當Web Components出來之後,虛擬DOM是有很多沒法處理的問題的,而其他框架改進資料繫結的效率之後,也能夠把這方面的差距縮小很多。

  Instagram的網站和FB網頁上的Messenger就是用React寫的。雖然我說的都是缺點,但它的實現方式確實別緻,值得一看。

  Yeoman

  Yeoman是Google的團隊和外部貢獻者團隊合作開發的,他的目標是通過Grunt(一個用於開發任務自動化的命令列工具)和Bower(一個HTML、CSS、Javascript和圖片等前端資源的包管理器)的包裝為開發者建立一個易用的工作流。

  Yeoman的目的不僅是要為新專案建立工作流,同時還是為了解決前端開發所面臨的諸多嚴重問題,例如零散的依賴關係。 

  Yeoman主要有三部分組成:yo(腳手架工具)、grunt(構建工具)、bower(包管理器)。這三個工具是分別獨立開發的,但是需要配合使用,來實現我們高效的工作流模式。 

  同形的JavaScript

Isomorphic JavaScript

  顧名思義,會有一部分 JavaScript 是前後端公用的,從 路由(Route),模版(Template),到資料驗證(Validation),甚至是 互動狀態( 比如 一個 modal )。

  在這個世界裡, 你的應用和檢視層邏輯都可以在前後端執行, 這樣就依次解決上述所有問題 — 效能優化, 好的維護性, 可以被SEO,更有狀態的Web應用。

  通過Node.js,一個快速的, 穩定的執行在伺服器端的JavaScript, 現在我們可以夢想成真. 通過建立適當的抽象, 我們就可以在伺服器端和客戶端執行我們的邏輯程式碼 — 這就是“isomorphic JavaScript“的定義。

  webGL

  最新版chrome和firefox已經支援,可以做3d動畫了。

  Flux

  這是由Facebook推出的前端架構理念:Flux | Application Architecture for Building User Interfaces

  據稱是因為Facebook覺得一般的前端MVC框架只能處理小型Web App,無法處理大型的,於是自己搞了一套架構理念。

  從個人現在淺薄的認識來看,就是將Model和View之間紛雜的資料互動規整到一個dispatcher中,使得資料只能單向流動,你甚至可以在單向流動的資料中每次都傳遞一個完整的新資料,忽略掉增刪改三種型別,這樣可以進一步簡化程式碼。

  這樣的處理可能有人覺得那DOM每次都生成新的,再整體替換,可能在元素很大量的情況下效率太低。但是配合Facebook自家的React(React自己維護了一套虛擬DOM,每次都會根據新老DOM對比的結果自動的做增刪改DOM的操作。。。)感覺瞬間就高大上了。

  viaevget

相關文章