React.js Conf

今年的 React.js Conf 雖然是單一 library 的研討會,不過議程的水準卻是蠻高的,而且蠻多內容並不是只限於 React.js,加上也是對於前端領域一些比較新的概念,所以我覺得是這兩年最讓人感到印象深刻的一場研討會了吧,下面介紹幾場我覺得收穫比較多的講題:

React Native

React Native 是 React.js 最近最重大的發展,把本來抽出來的 DOM 底層換成 native app 的操作,原來寫 JavaScript 的開發者就可以直接用寫 React.js App 的方式來做原生介面的 Mobile App,發表時讓很多人眼睛一亮,沒想到會把 React.js 的 Virtual DOM 這樣用,而表現出來的效果也很讓人滿意,因為是用原生的控制元件,也不會有額外的親和力問題,加上現有的很多 JavaScript Library 都可以用,也不會有太多東西要自己從頭開始,Apache Cordova 的 plugin 也都可以使用,最近也正式對外公開了,有興趣的可以試試看。

CSP

之前我也有介紹過的 CSP,在 React.js Conf 也有講者介紹,雖然我覺得現在用 js-csp 來做 Channel 溝通還不是很好用,不過應該 async function 可以用之後會比較普遍吧,就算之後沒真的派上用場,要是轉行寫 Go 也會用的上才是。

Immutable

Immutable Data 已經聽說很久了,不過這場演講算是讓我第一次真的能有些體會到底優點在哪,雖然 Facebook 有 JavaScript 的 Immutable library ,不過這場主要是在介紹資料結構的特性,而不是在介紹自家 library,如果對他們底層如何實做的話還可以看看 Polymatheia 的 Understanding Clojure's Persistent Vectors 系列文章,單純要實做 Immutable Data 並不難,不過要考慮到不對效能產生影響其實還要考慮蠻多細節的,我後來也嘗試實做了一個 Immutable Quad Tree,做的過程中則更實際的體會到所謂的只要簡單的==比對就可以知道資料是否相同的好處。另外還要補充一點,Immutable Data 可能在下一版的 ES7(2016) 也會有,總之又是個先學起來不吃虧的。

AST

這場演講是在講修改 Abstract Syntax Tree 來做一些程式碼的修改,算是把 AST 的應用講得很淺顯易懂的一場演講,還順便介紹到很多相關的工具,像是 estools,其實一個程式語言的 spec 通常只有定到語法的部分,後面 compiler 要產生什麼樣子的 AST 是他們自己決定的,不過通常會有個主流的格式,而目前 JavaScript 領域則是 Mozilla SpiderMonkey 的 AST 格式為主,不過其實因為應用太多,也有人在做標準化的工作,叫 estree