阿里巴巴 D2 前端會議筆記

zhoukekestar2017發表於2017-12-21

原文連結

今年第三次參加 D2 大會了, 和前兩年體感有很大不同, 但收穫同樣不少.

  • 開場: 前端 = 渲染引擎 + web 標準. 前端方向: 能力 + 體驗 + 生態.
  • IoT: 兩個場景 + 擴充套件場景 + 自己的疑問
  • 個人成長: 前端的 5 個大方向, 和 3 個關鍵點
  • 貓超不一樣的視角: web 真的慢嗎?

開場

@圓心老師 開場講的兩句話, 記憶比較深刻

前端 = 渲染引擎 + Web 標準.

我對他的理解, 前端不需要分 iOS 和 Android, Web 等等, 更高層次去看的話, 都是渲染引擎 + web 標準. 其中渲染引擎, 雖然可能只有 native 和 web 之分, 但如果分執行時的話, 還包括 webkit, weex, react native 等, (我這麼說其實也並不是特別準確).

我覺得重點是後半句, web 標準 ! 這句話, 讓我想起之前看到的另外一句話[1]:

在移動時代沒有找到一個比HTML/CSS/JS更合適描述介面和表達業務的方式,當前智慧手機GUI體系只是對HTML拙劣的逼近和模仿。Weex/RN從某種意義上是必然的產物

所以, 結合在一起看的話, 前端做的所謂技術, 都是圍繞 渲染引擎 和 web 標準 來進行.

前端的核心有了, 那未來的方向和體系怎麼建設?

能力 + 體驗 + 生態

  • 能力: 更多會是 web 能力的擴充套件, 比如: 前端的 Push, 離線, 桌面的觸達, 後臺程式, 攝像頭, 麥克風, U盤等等, 其中有一部分是 PWA 已經在做的事情 (包括 Service Worker, iOS 也正在支援), 其他的能力, 其實 Chrome 做得也是很不錯了, 畢竟有 Chrome OS 這樣的存在.

    dingtalk20171217121607

    當然, 這其中還包括其他和前端有光的能力, 如: 圖形, 資料視覺化能力, IoT 能力, 管理能力等等

  • 體驗, 我覺得可以分:

    • 開發者體驗, 開發者的體驗其實有了很多的表現, 其實也體現在工程效率和開發效率上, 比如: VSCode 替代 Sublime, 還有最近出的 Parcel 打包工具, 也是在某種程度上解決了開發中對 webpack 某些痛點(當然, 打包效率的提升可能會更關鍵些), 還有很多的 out of box( 開箱即用) 的模組 也比以前更多了.
    • 使用者體驗, 這點可以不用過多展開, 為使用者考慮流暢度(效能優化), 便捷性(產品設計的合理性), 美觀(設計視覺, 不要忘記 D2中的一個 D) 等等, 更多地站在使用者的角度想問題, 得到的也會更多.
  • 生態, 講的應該是開發生態, 包括開源, 社群的建設, 工具的共享, 共建等等, 特別是開源生態的建設, 也需要特別的智慧來推動開源的程式. 這個在2016 年雲棲大會的雲棲社群開發者技術峰會——開源技術專場[2] 特別有感觸.

開場的乾貨特別多, 前端的層次和視角也特別高, 不過, 和 @小紅 同學一起在討論些問題, 也錯過了不少其他乾貨, 可以看看直播回放再體會體會哈.

IoT

The Internet of Thing. 物聯網, 這個有點讓我驚訝. 這次 D2 大會, 沒想到有一個專門的分會場講 IoT, 最早聽到 IoT 這個詞已經過去2, 3年了吧, 不知道能和前端有什麼碰撞.

雖然之前和物電的同學合作開發過養雞場的一個類物聯網系統, 也接觸到他們開發底層硬體的專業性 (電路自己畫, 電板找人待加工, 元件自己焊), 不過, 自己畢竟是以前端, 後臺, 上位機的角色參與進去的, 所以, 去了該會場尋找前端更多的可能.

來到該會場, 首先是各種微控制器: Arduino, Ruff, 樹莓派. 其中樹莓派之前聽到比較多, 不過, 這次在 D2, Ruff 提的比較多.

Ruff 是一個支援 JavaScript 開發應用的物聯網作業系統,為軟體開發者提供開放、高效、敏捷的物聯網應用開發平臺,讓 IoT 應用開發更簡單。

兩個應用場景

  • 菜鳥的出入庫系統, 需要結合 攝像頭的人臉識別, 超聲波的距離識別, 當然也需要訂單號的掃描. 其中值得一提的是, 人臉識別是放雲端的, 比較類似 SaaS, FaaS.
  • 智慧樓宇的控制, 比如: 週一週五的電燈控制, 一個空間達到多少 wifi 的接入, 自動開啟空凋進行控溫. 這裡難度比較大, 或工作量比較大的的各個裝置的不同協議的接入. 需要對接各種上個世紀的通訊協議, 或者廠商的私有協議, 還有包括 Wifi, Bluetooth, ZigBee 之類的通訊協議. (這是一個比較大的痛點, 不過, 這一點小米做的比較好, 在整個生態起來之後, 在做自己的協議標準, 也有開發平臺讓開發中對接: 小米 IoT 開發者平臺)

一個展開場景

聽 IoT 的講演後, 我有聯想到 Beacon 的使用場景, 早在 2013 年的 WWDC 會議上就有聽到類似的應用場景, 蘋果推出了 iBeacon 的概念.

Beacon 技術, 主要進行室內的精準定位, 和室外基於基站, Wifi, GPS 的定位有所不同, Beacon 技術依賴 Bluetooth 進行室內定位. 並依賴室內的精準定位, 在商城進行更有想象空間的營銷.

自己未解決的疑問

關於 IoT , 想象空間還是很大的, 但作為一個前端, 在可預見的未來, 發展道路會越來越窄的情況下6, 如何找到突破口? 如何更好地去做切入? 我們能做些什麼? 落地的場景有哪些? 所能帶來的價值? 以及比較重要的一點, 如何和傳統搞物理和電子的同學競爭? 物電的同學, 有物理, 電路, 電子方面的知識, 一般情況下, 使用 C, C++ 去程式設計? 我們前端能有什麼不一樣的優勢, 怎麼去尋求這其中的差異化發展呢?

個人成長

@岑安老師 分享.

前端方向5個大方向

企業中後臺 開發者服務 泛 NodeJS 端技術 圖形
元件通, 協議通
標準化: DSL 協議, 資料介面
智慧化: 從設計到程式碼
1: 從端到雲一體化應用解決方案
2: OS 系統深度連結, 閉環生態
3: ISV 的開發和升級
一條基本線+一個突破點
基本線: Node 應用治理
突破口: IoT
Weex + Webview

weex: 效能, IoT 能力, 國際化
webview: 核心, 渲染引擎, 新標準
視覺化 + 互動能力
互動: 容器, 引擎, 框架, 平臺
視覺化: 智慧化, 資料聯動

接著上面我對 IoT 的疑問, 會後跟 @岑安老師 聊了聊他認為前端方向中泛 Nodejs 的突破口是 IoT的疑問, 簡單寫一下聽完老師後的感想和自己的理解:

  1. 首先, 我們得跳出當前前端的技術棧和業務的限制, 很顯然, 以目前前端的知識堆疊和能力, 沒有特別好的切入點來涉足 IoT 這個領域. 所以, 一個好的建議是, 做好該有的知識儲備, 以目前的狀態進入 IoT, 註定是被淘汰的那一批.
  2. 其次, 目前沒有一個好的技術方案來讓前端參與進來, 甚至是像天貓精靈的無屏裝置, 前端的角色顯得更為尷尬, 所以, 簡單說, 一篇空白, 等待自己去探索出一條前端之路.
  3. 如果非要和物電的同學進行正面競爭, 為什麼不差異化發展, 做連線的工作呢? 既然端上被他們牢牢掌握著, 我們將他們作為基礎服務, 將自己做為一個連線的角色, 整合端的能力? 做一個使用者的連線者? 有使用者的地方, 就應該有前端哈?
  4. 微控制器開發搞不過或搞不來, 我們能搞嵌入式系統嗎? 能用 Ruff 來做端嗎? 能用 Android 手機來做端嗎? 在做可行性方案的時候, 是不是有必要一定要搞微控制器和低成本硬體呢? 我能不能在 Android 手機上做一些 IoT 開發, 在批量生產時, 再讓物電的學生做電路設計和硬體成本的降低呢?

wechatimg49

個人成長的3個關鍵詞

  • 做: 有目標地做, 分階段地做, 做到極致
  • 思考: 思考是核心, WHY 有時候比 HOW 更重要
  • 發聲: 執行的總結和思考的傳達

自己對它的理解是, 做的時候, 更多需要去思考做背後的邏輯, 以及解決了什麼問題. 很多時候, 對技術選型或技術探索, 優化之類的, 需要和團隊的目標 或 老闆的想法結合在一起.

發聲, 最近有聽到很多類似的, 比如, 工作需要透明, 需要更多地和團隊成員分享, 還有包括技術分享等等. 說的多不如做的多, 所以, 這三點就不展開.

wechatimg53

貓超不一樣的視角

@由校老師 貓超的 Web 實踐, 使用 U4 2.0 核心的將 Android 4.4 及以上的相容磨平, 並將 web 效能提升了不只一點點. 因為也剛好遇到了有同學問 web 和 weex 技術選型的問題, @由校老師 也做了很好的回答.

貓超在首次載入中, 對 Service Worker 做了優化, 通過 UC 核心, 可以將 Service Worker 本身 Push 到核心中,並提前載入資源進行首次優化. 在二次載入中, 通過 Service Worker 的 Cache 能力, 也能獲得不少的加速.

會後, 和 @由校老師 簡單聊了一下效能痛點: 長列表的記憶體回收, 或 cell 重用複用的問題等等. 在他看來長 list 的效能問題已經不是特別大的問題了, 相反, 他給我舉了一個 tabbar 滾動後無法保持狀態的痛點.

wechatimg59

其他小細節

  • 好多程式設計師背景的 PPT 在配色和字型大小上, 使用者體驗不是特別好, 比如: 藍底黑字, 大段字型很小的程式碼, 這點在轉正預講的時候自己也犯過類似的錯誤, 所以, 體感也比較強.
  • 一個好的, 令人印象深刻的演講, 不是講一些共識, 而是講些不一樣的觀點. 即使是相同的觀點, 也需要有不同的角度或維度, 去解讀自己的不同觀點. 相同的觀點能包裝成不一樣的產品也不錯.

References

  1. Weex團隊負責人:我眼中的Weex和Weex開源那些事
  2. 雲棲社群開發者技術峰會——開源技術專場
  3. Ruff 文件
  4. 小米 IoT 開發者平臺
  5. estimote, iBeacon是什麼 iBeacon怎麼用
  6. 前端的職業危機感 by 自己

相關文章