1. 程式人生 > >開放才能進步!Angular和Wijmo一起走過的日子

開放才能進步!Angular和Wijmo一起走過的日子

已成為廣受歡迎的前端框架。去年9月份,期待已久的 Angular2 的正式版釋出之後,Angular 又迎來了新一輪熱潮。伴隨著 Angular 這一路走來,Wijmo 一直都是第一個全面支援各種版本 Angular 的JS控制元件庫,為 Angular 使用者提供著最及時的表格、FlexSheet、圖表、儀表盤、資料透視表等輕量控制元件。

那麼,Wijmo 是怎麼做到緊跟 Angular 步伐的呢?

Angular1 時代

Angular1 支援 MVC 或 MVVM 模式,提供模組化、雙向資料繫結、語義化標籤、依賴注入等等,大大的簡化了前端應用程式的開發。Angular1 一發布就引起了強烈的關注,尤其是它首次提出的“雙向資料繫結”的概念受到了眾多開發者的喜愛。

早在2012年,Wijmo 就響應客戶的呼聲,釋出了支援 Angular1 的版本,使得 Wijmo 成為第一個全面支援 Angular1 的控制元件庫。

Angular2 的 Alpha 版

隨著 Web 技術的不斷髮展,為了解決 Angular1 中的問題,Google 決定開發 Angular2。Angular2 不是 Angular 1 的一次升級,而是一個全新的、不同的、更高階的框架。

這時,Wijmo 團隊就決定率先支援 Angular2,因為支援 Angular2 已是眾望所歸。這使得開發人員很容易在在他們的 Angular2 應用中整合 Wijmo 控制元件。 

Wijmo 控制元件是純 JavaScript 的,這也使得對 Angular2 的支援更容易些,產品組可以為支援 Angular2 進行很簡單的包裝,這樣 Wijmo 的 UI 控制元件也可以脫離 Angular2 元件包裝而獨立工作。這是一個很大的付出,但是 Wijmo 做到了對 Angular2 的率先支援。

Angular2 的 Beta 版

歷經了55個 alpha 版本之後,2015年12月份,Angular 釋出了 beta 版。意味著 Angular2 已經穩定。Beta 版還是給開發者們提供了一個堅實的框架來構建他們的應用程式。

為了率先支援 Angular,Wijmo 開發團隊和 Angular 開發團隊展開了合作,Angular 團隊幫 Wijmo 解決了一些嚴重的問題。對 Wijmo 來說這是一個非常有趣的轉變,從這個時候開始 Wijmo 就已經與 Angular2 保持了高度一致。2016年3月份 Wijmo 產品經理 Chris 採訪了 Angular 的負責人 Brad Green,一起暢談 Angular 相關的話題,也見證了 Wijmo 和 Angular 的密切合作。

Angular2 的 RC版

2016年5月的NG CONF(Angular大會)在猶他州鹽湖城舉行,Angular 團隊結束了 Angular2 的beta狀態,將其推進到了釋出候選(Release Candidate)階段。大會期間Angular團隊成員登臺,深入介紹了 Angular2,包括新的離線模板編譯器,Angular CLI 等。在第一天的會議上,Brad 也介紹了支援 Angular2 的元件庫 Wijmo。

2016 Angular大會(NG CONF),Brad Green介紹Wijmo

Angular2 正式版

2016年9月15日,這對於 Angular2 來說是一個重要的日子,Angular2 正式版釋出了,在業界引起廣泛關注。很多人認為 Angular2 正式版有很多顛覆性的變化,是革命性。Angular2 系統架構中的核心概念包括模組、元件、服務、模板、資料繫結和依賴注入。

Wijmo 在 Angular2 釋出幾個小時後就釋出了支援 Angular2 正式版本的 Wijmo。Wijmo 為每一個UI控制元件都提供了 Angular2 元件。所有 Angular2 元件都提供了完全宣告性標記。對有需要的屬性提供了雙向繫結的支援,還對定製繫結和一些元件提供了附加功能,比如對 FlexGrid 中的單元格模板,可以允許用標籤指明單元格的內容。Wijmo 的 Angular2 元件被封裝為模組並且可以在 Angular2 應用中作為 NPM 包被使用。遵循 Angular2 團隊設定的模式,在 Angular2 中使用 Wijmo 元件會感到非常熟悉。

一切的合作,都以“開放”為基礎

Wijmo 率先支援 Angular2 取得成功後,不少媒體採訪到 Wijmo 的產品經理 Chris,試圖探尋 Wijmo 和 Angular 能密切合作的奧祕,歸納起來,主要是以下兩點:

“首先,Angular2 團隊的開發和路線是十分開放的,這也就保證了我們可以緊跟他們的腳步。其次,當我們遇到障礙時,Angular2 團隊也很樂於為我們提供支援。我們和 Angular 團隊建立了良好的友誼。我們也很享受和他們團隊一起工作。我很感激他們的開放和支援。“

事實上,在提供對 Angular2 的支援時,也遭遇了一些挑戰。最大的挑戰就是需要提供深度整合。由於 Wijmo 建立了包裝,還需要解決如何平衡 Angular2 元件的作用和宣告性標記,所以我們編寫了大量的程式碼,來促使我們的控制元件能夠完全的用標記的方式配置,還建立了具有 Angular 特性的功能,比如 FlexGrid 中的單元格模板。這允許客戶編寫自定製的標記,在表格的每一列中使用。

為了做到這樣,產品組需要深度理解 Angular 是如何工作的,同時必須要使用其內建的 APIs。我們和 Angular2 團隊一起工作,使用公共 APIs,解決了這個問題。事實上,他們也增加了一些東西供我們使用。

結束語

無論過程多麼艱辛,Wijmo 做到了對 Angular 率先並且完美的支援,這一切就基於“開放”,兩個產品組開放合作的心態,以及產品本身在開放和路線上的開放性。

相關閱讀: