今年的 JSDC 規模頗大,是兩天的議程。需要在同時進行的議題之間作選擇,所以總是會有遺珠之憾。下面整理了有參與到的部份。

Jeff Pope - Introducing Sencha.js

對這個Framework並沒有太大興趣,但是如果有儘快開發複雜網站需求的話,或許是不錯的選擇。

Maxwell Ogden - Browserify

這位頭髮過肩,鬍子甚至還更長的仁兄,是這次會議裡面話最多,也最活躍的人了吧。他同時也是一位對貓過敏的愛貓人士,有兩個小專案 JavaScript for Catscat-picture 都和貓有關

Browserify 可以讓瀏覽器支援 require('dependency') 這個語法。如同在node.js上面執行的應用程式一樣,你先 npm install 模組,再 require 它們。這個語法相當的方便,但在前端已經有 bower 這個管理工具了,對於開發者來說多了這個選擇會不會造成混亂呢?但javascript一直就是以自由度著稱的吧,開發者提出一個方式,有需要的就來試用,說不定哪一天就變成規格了呢。

HsiaoMing Yang - HTML Accessibility

主要介紹瀏覽器應用程式在實作可訪問性(Accessibility)時要注意的地方。在Demo時是用 OSX 的 VoiceOver,但幾次在示範的時候都沒有成功,場面有點尷尬....看演講者怎麼去處理台上的危機狀況是很有趣的,不過這也告訴我們,上台前先順一次流程是必須的啊!

Greg Weng - Functional Javascript

Functional Programming是一個寫程式的觀念,但 Greg 表示對於效能來說並沒有太大差別,主要是可以讓其他人更容易閱讀你的程式。準備了相當多的簡報,中間有些部分說的非常快,對於一些人(包括我)沒有足夠時間消化他的內容啊...而批哩趴啦講完了之後發現還有一些時間,看來把內容和時間分配得宜也是一個完整演講的必備要素啊。

Ben - I Shrink My Server (coServ)

介紹國人研發的 nodejs webserver framework - coServ,使用 ejs 來作 view(挖好久沒用了)。提出一個可以直接在css中加入js判斷的格式 - jass,但我懷疑以 MVC 的角度,把判斷的部分放在樣式表會不會容易造成維護的問題,因為一般會去找 controller。

Substack - leveldb

介紹了 leveldb 這個非常輕量化,key-value及非關聯性的資料庫。有趣的地方是,他用這個在terminal執行的 tslide module 來呈現簡報。整段演講採用live demo的方式,也就是一邊說明leveldb,一邊在termial上實作給觀眾看。沒想到在示範獲取資料的時候出現錯誤,而substack無法立刻找出原因。於是他先快速的重頭再做一遍,還是失敗之後,他果決的作了「如果這次再不行,我就先跳過這段」的決定。這給了我一個啟示:如果一直拘泥在一個bug上(或是說鑽牛角尖),會浪費相當多的時間,何不先換個角度?果然在後來的示範就發現了問題所在(沒記錯是資料結構少了一層)。學到 leveldb,反而是其次,看到這樣的臨場反應和處理問題的能力,才是substack這場演講最棒的額外收穫吧。

有人問到關聯式及非關聯式資料庫孰優孰劣?這個問題在網路上已經有非常多討論了,有個結論是,如果要存取變動很大很快的資料,可以使用非關聯式。而比較靜態且海量的資料則是關聯式比較適合。

Panel talk

集結了本次 JSDC 的主辦人 Caesar,來自 Github 的 Jessica 及 Muan,一位在 Netflix 作 mobil e前端的工程師,再加上等等要介紹 koa 的 Jonathan 及愛貓人士 Maxwell,讓他們來討論一些比較輕鬆及日常的話題。從這裡可以稍探那些開源開發者是怎麼工作的,Jonathan 提到他的公司在海邊(簡直太棒了...),他每兩個小時會去附近走走。而 Maxwell 則是沒先喝咖啡就無法工作,他也會在一個咖啡廳待了幾小時後,離開去尋找下一間。有些人則是無法接受人多吵雜的環境,喜歡在家工作。而結婚了的 Netflix 工程師則說有了家庭整個生活重心就變了。現在雲端技術發達,能夠不用被綁在公司座位上的工作的首選可能,應該就是軟體開發者了!

Jonathan - koa

koa.js 是一個使用 generator概念來架構 web application 的 framework。比起較知名的 express.js 在處理複雜的非同步 callback 時會更加簡潔。generator 在下一代的 javascript ECMAScript6 會是正式的語法,但我還沒有真正的使用過。generator 對程式的易讀性有相當大的幫助(當然邏輯也是相當難懂...)。

Jessica - Teaching git(hub) with node.js

教大家怎麼在 terminal 上學習使用 git,同時也介紹了有相當多教學資源的nodeschool

Ruben - Leverage ZMQ with node.js


非常喜歡他所引用的一段話

If you only have a hammer, you tend to see every problem as a nail.

中文裡最貼近的句子是「工欲善其事,必先利其器」,但卻是完全相反地概念,這句話要你了解自己有什麼專長,並想辦法讓遇到的問題可以用這個來解決。

ZMQ (Zero Message Queue)是一個輕量化的分散式系統函式庫,可以解決很多服務與服務間通訊協定的問題。這是相當後端的應用,老實說我目前還不太了解(可以看他的簡報),不過javascript也可以做到這塊真的相當令人興奮。

Mathias - p2p and MAD SCIENCE

Mathias 用 node.js 做了一個 p2p 的 module,並非常帥氣的示範直接用 p2p streaming 的方式播放了一個影片 torrent,甚至還示範下載 Ubuntu 的安裝映像檔,並同時一邊進行安裝。
他也提到 Netflix(目前美國最大的串流訂閱服務)在尖峰時段佔了高達 1/3 的總網路流量,因此 Netflix 也在研究使用 p2p 形式的可能。呼應上面的 ZMQ,分散式的雲端服務是未來網路應用的趨勢啊。

Muan - Github大冒險


Muan 向大家介紹了 Github 的文化,以及一些專案進行的細節。首先提到了雖然他們有專門致力於增進效能的前端工程師,但設計師並不會只提供靜態的設計,而是一個 working 的 prototype,所以設計師們,請開始學習簡單的實作自己的提案吧。
Github 也是採用遠端工作的概念(超羨慕),專案基本上沒有死線,大家都是因為熱情和責任感在作自己的工作,進度也都可以在線上確認。
另外介紹了可被訪問性的是怎麼做的,而大部分在這個專案群組的,就是本身有這項需求的人(如色盲)。

未來,相信會有越來越多作數位的公司,會採用這種員工各自擁有專業,並選擇自己有能力及興趣的部分來參與,且團隊組織架構相當扁平化的模式,。

小結 - I love javascript

對前端出身的人來說,javascript 應該是最熟悉的語言。以往最主要是應用在 client 端,在 node.js 出現之後,這個語言的可能性更加的開展,再加上開源開發的蓬勃發達,node.js 的應用越趨成熟,你想的到的功能都可以實作出來。

期待未來 javascript 的發展。