6月21日~6月22日, 第一次跑遠門去參加一個大會(廣州 -> 杭州),原本打算,在火車的回來的路上,把這兩天的東西記錄一下,不過,火車上的環境實在惡劣,同時也高估了本身的專一力,因此,最後仍是決定回來再寫吧,還能夠先看看,別人是怎麼寫的.在動筆以前,看了一下別人寫的,因此,直接略過會議的一些流程,對這個會議的流程有興趣的能夠去看附錄的傳送門,我以爲他們已經把我原本想寫的東西都寫了,而後,就直接針對,每一個slide說說本身的見解,正如標題所說,就是個流水帳...html
每一個slide我都會根據本身的理解從新命名一次,用於表達本身的第一見解,主觀意見,不喜可吐槽,可是不要噴,就算要噴請輕碰...node
此次hangjs的第一場是由嚴清老師帶來的關於thenjs異步編程的實現原理和優缺點分享.mysql
其實關於JS的異步編程能夠算得上是爛大街的主題了,嚴清老師以爲各家的的異步實現的輪子很差,因而thenjs就誕生.不過,嚴清老師能實現一個不錯的庫,可是,在我看來在一個只有40多分鐘的slide裏大談具體代碼的實現原理,並不合適,花大量時間談具體的代碼實現,在一個只有40多分鐘的slide裏頭是很枯燥的事情(並且,我也不以爲這玩意可以在40分鐘裏頭說清),畢竟這個東西是開源的,粗略的說說實現就好,你對實現感興趣,去看源碼吧!接下來用實際案例說說這個輪子的實現跟其餘家輪子的實現有什麼不一樣的地方,這樣的不一樣,帶來了什麼好的地方.這樣,我就對thenjs的異步實現很是感興趣,從而對異步實現原理有更高層次的理解.畢竟這是一個時間很短的slide,但願可以多說一些可以啓發性的東西,而不是具體怎麼寫.ios
如同前面說的js異步編程實際上是爛大街的話題,我感受你們更多想看到各類案例實踐,並且我也一開始是覺得標題的優缺點會是嚴清老師,會大說特說在實際開發中,用現用的異步庫如何如何被坑,而後決心本身造輪子,用各類血的現實告訴你們,thenjs是如何好用...這樣的異步實現是多麼的優秀...結果到優缺點的比較主要仍是各類基於代碼的實現比較....沒有任何炫酷的實際案例比較...git
這個slide 是最近很火的atom編輯器主要做者之一的趙成 的分享,原標題是 Atom編輯器嵌入Node.js引擎實踐,當時,看到這個標題,我就以爲,我聽這個slide就是打打醬油了,由於不可能聽懂,做爲一個凡人碼農,歷來都沒看過Node.js是怎麼實現的,而後,這個slide一上來就跟咱們說,如何改造Node.js的引擎,實在是過高端了...實在玩不過來,不過我相信,會場幾百號人確定有人能聽懂的,只是我比較low而已...程序員
不過,一個面向JS程序員的大會,講如何讓Chromium可以運行v8,我不敢表示大多數,可是有一點能夠確定是,不少Node.js程序員並不會編譯Chromium,那麼更不用說,知道原理後,要動手操做Node.js跟Chromium合體了.做爲對atom-shell最瞭解的人說,面對的大部分JS程序員,我以爲這個slide還不如多多分享一下怎麼用atom-shell 快速開發一些跨平臺app技巧,而後用一些具體案例對比一下node-webkit這二者的優缺點(關於這個優缺點在此次slide上有提到過,不過並沒細講...).github
PS:此次的演講者做爲github員工,說了一些關於github的內部事情,atom原本是打算不開源的,可是,不開源的陣營的主要領導者,由於某次醜聞致使離職,因而atom就開源了...web
此次的演講者赫門帶來的是前幾個月就開始有討論的先後端分離實踐.sql
此次的slide,經過兩次大戰來遞進的說目前先後端實踐的狀況,這個我聽着挺帶感的,由於,我正好就是第一次先後端分離大戰的實踐者,而後碰到的問題也跟slide說的同樣.mongodb
不過,第二次先後端分離大戰,雖然標題的是第二次,可是,我以爲本質只是第一次先後端分離大戰的一個特殊存在,針對的是你的後端業務不是用Node.js來寫,因而經過Node.js對後端業務進行一個合併優化,讓客戶端幹少一點事情,提高客戶端的響應速度.因此,Node.js就像膠水同樣把兩個分離的東西粘在了一塊兒.畢竟不少系統都用了十幾年了,不太可能再用Nodejs重寫一遍,不過利用Node.js做爲膠水的功能,針對移動應用的場景對現有系統進行優化,是個不錯的實踐思路.
下午第一場slide是由臺灣開發者蘇 培欣帶來的是,Google BigQuery API Node.js實踐 看到這個標題,應該明白我爲何對這個slide起了這麼一個名字了吧?
這個slide其實也沒什麼好說的,就是講如何使用bigquery 這個用Node.js寫的模組(模塊),進行google big query的查詢.
不過,經過這個slide知道了Google bigquery 這個服務,卻是一個不錯的收穫,對於有大數據需求,可是沒有空折騰各類優化的精力,用這個服務卻是省心很多,對了,要速度快,訪問google的黑科技是必需要掌握的!
此次slide是由James Halliday來演講,github是substack平時,在使用庫的時候有關注做者的習慣的話,對於這個github名字應該很熟悉了吧!
外國人的演講,你就不要期望外國人可以跟你用中文演講了.第一次在現場聽外國人的演講,果真是近乎徹底聽不懂orz.關於@substack的不少趣聞,已經有不少人說過了,這裏就不跑題了,仍是說說此次slide的收穫吧.
雖然,聽不懂說什麼,可是不妨礙我看得懂PPT說什麼..
在出發去hangjs的時候正好在使用gulp的時候看了一本substack寫的Node.js流編程實踐stream-handbook,而後此次slide,substack 現場編程show了一把這個思想的具體應用,直到如今我還在消化着,等消化得差很少,在額外寫一篇分享吧.
最後介紹了一個挺好玩的東西voxeljs 基本上就是一個相似於Minecraft 的H5 遊戲,不過,能夠在上面編程讓遊戲變得很好玩.
這場slide由來自於中科院的@belleveinvis分享如何寫一個代碼生成器的原理,標題: Patrisika - Theoretical and Practical Code Generation.在聽這個的slide的過程當中,我和吳老師,表示各類聽不懂.由於聽不懂,也很差作什麼評價了.
原本,我以爲在一個面向js程序員的大會上講如何寫一個代碼生成器是否合適主題?不過,後邊翻了一下微博就找到同吐槽看不懂,不過有個看懂了的回覆說實際上是符合主題的.
跟js同步異步轉換有關,因此在這裏講也不過度 具體內容點擊傳送門吧.
PS: 翻了一下微博,仍是有人有不錯的收穫例如 題葉
只能說本身的水平不行..orz
接下來是芋頭分享的 如何快速構建MVC應用.
實際上這個slide主要是講Rabbit.js 的設計思想,傳統的mvc 加上一套約定的web框架,跟paypal 的kraken-js有點相似,不過有個特色就是Rabbit.js 封裝了一個Sql 和 nosql的模型定義,可讓你的代碼在mysql 和 mongodb 都可以運行的很好.
芋頭在slide上一再強調Rabbit.js還沒正式發佈,而後,各位有興趣的話能夠看着學習一下,看能不能對本身的開發有所啓發.
今天最後一場slide是由百度工程師@berg 帶來的目前關於如何讓H5的應用運行得很流暢的解決方案: BlendUI - 讓輕應用如Native般流暢
在這個slide開講前,我對這個slide其實挺期待的,由於,我一直都有關注h5在app上的應用,對於用h5作的應用,最無解的問題就是動畫的流暢性,對於如今,IOS 的原生webview性能已經很好了,在將來的ios8 webview的js引擎終於用上跟safari 同樣的引擎,而且支持webgl,而後,隨着硬件的各類升級,最終讓基於H5的應用達到本地應用的流暢性(將來兩年內應該能夠實現),不過這都是將來,如今仍是老老實實寫本地應用吧.
而後看到這個標題,內心仍是挺期待在當前硬件沒法獲得解決的狀況下,是否存在什麼黑科技,讓H5應用達到一個飛越?
在聽這場slide的時候,果真,不存在什麼黑科技! BlendUI 的解決方案,並非打算死磕純DOM黑科技實現,而是,應地制宜用了一些技巧.原生DOM動畫,不流暢,那麼動畫這部分,我不用DOM來實現了,直接上本地,這下動畫切換的流暢問題就完美解決了.每一個頁面就是一個webview,頁面的切換就是兩個webview的本地切換,效果妥妥的流暢! 多webview 內存佔用多? 如今千元手機都2G內存了,妥妥的!並且開多個webview其實並無那麼耗內存!
因而BlendUI 如Native般流暢 實際上由於動畫部分就是native, 那還不是如Native般流暢....因此,我說這個標題存在的矛盾性就在這裏.不過,多是我對輕應用的瞭解不同,我對輕應用的瞭解的就是能用純H5實現,不套殼能用瀏覽器運行,套殼就是APP,只要有webview控件的平臺都能支持.由於輕嘛,因此,跨平臺運行妥妥的。
對於用多webview的動畫切換來解決H5類型應用的方案,其實早在一年前我就有嘗試過,在這裏會有幾個坑的,後邊after party 找berg實機體驗了一把,看來這個坑berg就目前這個版本並無解決,關於這點,後邊after party在展開說.
小插曲: 在提問環節,有我的問berg,目前百度輕應用有沒有什麼明星應用,若是沒記錯的話,berg回答的是尚未...
對於每屆中國JS開發者大會,最有價值的就是這個after party了,能夠面對面的找各類大牛進行交流.
我找到了berg,藉手機實機體驗了一把BlendUI,安裝blendui 的輕應用是一臺小米2, 有2G 內存.我針對過去研究碰到的坑,立馬測試了一下,因而仍是碰到了.總結以下:
有必定機率webview和原生控件同時存在一個頁面. 這個坑很怪異,挺難重現的,就是你的webview有張圖片,你點擊這個圖片用原生控件來顯示,在某種操做的狀況下,這個原生顯示圖片的控件會和webview在你沒點擊圖片的時候同時顯示.
webview 丟失.這個坑就很比如較容易重現.表現是當你,在點擊webview的某張圖片後,是顯示一個覆蓋這個webview圖片滑動控件,而後快速後退,在快速點擊某個item,重複快速的操做前面的步驟,就會有必定概率不管你點那個item也不會顯示webview而是一直顯示這個滑動圖片控件.
不過BlendUI 並無正式發佈,因此以上bug可能到時候已經修復了.對了,不知道到時候,在目前千元手機1G內存下的表現又會是如何呢?
我線下的即興交流能力實在是太差了,跟berg 簡單交流了一下,就是走走聽一下,你們都在討論什麼,那些圍着外國友人的交流的實在高端,簡單的聽了一下,表示無力....
期間跟一個大衆點評的員工簡單交流了一下,發現,大衆點評在一些小業務上也用上了Node.js,並且,還用上了docker.
PS: 個人交流能力有待提升啊....
其餘人的hangjs 參會記錄