週六的時候去了 TWeb 騰訊前端技術大會, 總結一下. 爲了更清晰地闡述一些技術點,我會加上本身的理解介紹大會中的重點內容和相關技術落地的成果或進度.html
講師: 吳小倩 - W3C 中國總經理前端
Web IDL 的關鍵在於定義瞭如何把 DOM 和相關的 Web API 映射到語言裏,尤爲是 ECMAScript。以前的標準都使用 OMG IDL,沒有正式的對這些映射關係作出定義,實現者須要從字裏行間猜想。 -- Maciej Stachowiak (Webkit), 2009-9-28vue
2015年8月4日,W3C的Web應用工做組(Web Applications Working Group)發佈了Web接口定義語言(Web IDL Level 1)的標準工做草案。該文檔定義了接口定義語言(interface definition language)即Web IDL,它可用於描述要在Web瀏覽器中實現的接口。Web IDL是一種IDL的變體,它所具備的大量特性使之可以更容易地對Web平臺裏的經常使用腳本對象的行爲進行指定和說明。node
除了描述 ECMAScript 接口以外, Web IDL 能夠轉換成瀏覽器代碼和 Web API 測試用例. 若是發現了瀏覽器對標準實現有問題, 能夠嘗試對照 Web IDL 進行捉蟲.react
若是你想讀懂 DOM 和 Web API 的定義, 更好地書寫你對 Web 的提案, 更好地認識瀏覽器和 Web, 你須要瞭解 Web IDL.webpack
關於 Web IDL 的相關語法和工具, 由於介紹篇幅較長, 能夠看下講師的 ppt 瞭解git
參考:web
W3C發佈了Web接口定義語言(Web IDL Level 1)的標準工做草案數據庫
講師: 張雲龍 - 巧子科技創始人npm
將下圖中講到的全部流程, 都封裝起來, 作了一套系統
分享中, 講師着重介紹了 strapi
, 這是一個開源的 Node.js Headless CMS 框架. 該框架經過簡單的幾行 npm 命令, 便可生成一個 CMS 系統, 該系統經過界面操做, 能夠生成數據庫表, node 增刪改查的代碼和相關路由. 掘金這裏不知道怎麼放視頻,你們能夠到strapi官網瞭解,或者聯繫我,我給你發視頻~
講師: 塗金林 - 騰訊教育 Flutter 負責人
講師先是介紹了 flutter, 接着講了騰訊企鵝輔導上的實踐, 包括了安卓, iOS 和 Pad 上的原生應用如何嵌入 flutter 以及原生頁面與 flutter 頁面混合切換的實踐, 另外還講了 flutter 的性能優化與 flutter for web 在生產環境的實踐. 這裏邊的技術細節限於篇幅就再也不展開, 感興趣的能夠看下講師的 ppt 瞭解
爲了更好的瞭解 flutter 在騰訊的落地狀況, 你們能夠看這個視頻
講師: 郭林爍 - 騰訊 AlloyTeam 高級前端工程師
講師所在的項目是騰訊文檔, 是一個大型的團隊, 一個頁面就有不少人開發, 在遇到問題時, 得先指定人排查, 排查出問題, 再交接給相應的人解決, 比較低效, 此次分享講了如何解決這個問題,主要分如下三個方面
講師所在的團隊, 經過腳本錯誤監控, 結合代碼自動 sourceMap, 定位到出錯文件的具體位置, 經過自動化腳本與 git blame 命令, 找出當前報錯行的歷史提交者, 經過內部工單系統, 自動提 bug 單給歷史提交者, 由於工單有內部流程保證會被處理.
在開發階段, 若是有腳本報錯, 也會自動彈窗, 阻斷開發.
對報錯量級進行了監控, 若是忽然上漲, 也會有相應告警.
通過以上幾個措施, 線上的報錯量愈來愈少了.
通過上面的錯誤監控, 優化與持續跟進, 已經解決了腳本錯誤的問題, 但若是有些邏輯問題, 在大型項目裏也是很難定位. 這個時候就要依靠日誌了.
由於是個大型的項目, 前端也會產生不少日誌, 經過前端上報不靠譜, 容易在上傳時丟失. 咱們來看看騰訊文檔作了哪些內容解決日誌問題
講師: 張磊 - 知名開源框架 OMI 做者
該分享的 PPT 就有 80 多頁, 現場分享更是一度超時, 這裏就長話短說, 講一些核心的內容
OMI 是一個跨框架的框架, 也就是 OMI 能夠結合 react, vue, Web Component, Kbone, Preact, Three.js 等框架使用. 用 OMI 編寫的組件, 也能夠被 react, vue, preact 等框架直接使用, 反過來, react, vue, preact 等框架也可使用 OMI 編寫的組件.
另外比較有趣的是 OMI-THREE, 若是純基於 three.js 編寫遊戲或 3D 場景, 咱們須要建立不少實例, 好比 new 一個場景, new 一個立方體, 這裏放一個光效, 這裏加一個旋轉, 這些都須要咱們編寫一些命令式的代碼來處理. 但 OMI-THREE 可讓咱們聲明式的寫法完成以上內容, 來看個 demo:
實現以上效果的代碼是聲明式的, 很清晰:
關於 OMI 還有其餘內容, 如 OMI + React, OMI + Vue, OMI + Kbone, OMIX, OMIM 以及 OMI 設計哲學, 感興趣的能夠看下講師的 ppt 瞭解
講師: 段隆賢 - Vue 語法編譯引擎 aga 做者
不須要等待頁面全部的接口返回, 頁面頭部接口響應便可響應頁面, FP(首字渲染 first paint)和FCP(首次內容渲染: first contentful paint)更快
例如一個 v.qq.com 的請求, 利用分塊傳輸, 能夠先返回首屏內容, 後面的內容等數據拉取好後再返回, 注意這裏是一個請求
在 Vue 編譯時, 將 Vue 語法編譯爲字符串拼接, 並經過自動化分塊傳輸, 並作到了同構開發.
講師: 水瀾 - 阿里巴巴前端技術專家
要作 SSR 並不容易, 首先咱們要保障 Node 服務的穩定性, 期間咱們可能會遇到以下問題:
另外還要考慮如何讓一套代碼兩端共用:
第一部分, 講師的實踐是將 node 服務落地到 serverless 中, 有以下好處
第二部分, 講師使用阿里開源的 Rax 來解決一套代碼兩端共用的問題
Rax 是一套遵循 React 標準的跨端解決方案, 而且經過 Rax 的腳手架, 執行一條命令即可以部署到阿里的 fc 或國外的 now serverless 提供商中
這裏比較值得關注的是, 在 Rax 中, 請求的發起與路由的映射, 是能夠作到先後端同構的, 限於篇幅, 感興趣的同窗能夠查看 ppt 或 google: Rax
講師: 蔣林源 - 騰訊IMWeb前端工程師
Serverless = Faas + Baas
如上圖所示, 用戶在騰訊雲的 serverless 平臺上, 上傳雲函數的代碼(或直接用在線編輯器編寫)
保存後, 咱們能夠設置觸發器,
也就是上面的 Event Source, 能夠是 api 網關觸發器, 也就是經過請求來觸發, 其它觸發器還有: 定時觸發, COS 觸發(COS 收到上傳時觸發, 好比上傳了一張圖片, 觸發某個雲函數進行壓縮), 消息隊列觸發等等.
然後邊在提供支持的 BaaS, 則提供了不少後端服務, 像 AI, 咱們就能夠調用語音圖像的識別接口, 還能夠輕易地調用雲 DB, 而云 DB 也不須要咱們人工維護, 還有對象存儲, 諸如圖片, 視頻上傳, 回源到 CDN等, 簡直太方便了.
目前我體驗到騰訊雲的冷啓動作得比較不錯, 只要在必定時間閾值內有訪問, 就不存在冷啓動慢的問題, 但若是雲函數長期都沒人訪問, 此後的第一次訪問, 就會慢一些. 還能夠接受.
講師提到了兩個徹底使用騰訊雲 serverless 的業務, 以下
企鵝背單詞
騰訊課堂 - 新人專屬禮包
騰訊教育在內部的實踐中, devOps 也很完善了, 整個流程以下:
開發完 push 代碼到 git, 自動觸發代碼的構建 (yarn && yarn build 等), 自動觸發雲函數的測試環境部署, 此外, 預發佈和發佈環境也能經過內部的交付系統流暢地部署
講師: 潕量 - 阿里前端技術專家
以上即爲控制檯系統
一句話歸納該分享: 經過內部物料系統(能夠理解爲 npm 的公共 UI 組件庫積累), 阿里自研了一套 Fusion 系統, 能夠方便設計師配置設計稿, 該系統的配置粒度幾乎知足設計師的全部需求, 配置的每個參數都會記錄下來, 設計師在提交設計稿時, 會根據配置內容, 生成一個 npm 包, 前端開發更新 npm 包, 便可拿到設計師的成果, 該成果是基於物料系統的, 也就是代碼生成後, 基於 react 可讀(阿里統一使用 react), 此後即可在這個基礎上增長前端邏輯, 與設計師溝通扯皮的問題被解決得很完全.
來個主題配置的例子(其它例子的圖片 ppt 上丟失了動態效果):