? 看了 web.dev 的 631 篇部落格,我總結了這些內容

鹵代烴發表於2022-07-09

web_dev_hero_image

如果你喜歡我的文章,希望點贊? 收藏 ? 評論 ? 三連支援一下,謝謝你,這對我真的很重要!

最近在做 web 效能優化的工作,所以想集中學習瞭解一下相關的專題內容。這部分內容肯定要學習一手資訊,所以找先找了 https://web.dev/,一個 Google 官方推出的一個面向 Web 開發者的網站,裡面有非常多的教程和最佳實踐,非常適合有效能優化訴求的開發者去瀏覽和學習。

網站的核心部分分為 4 類:

  • Learn:體系化的教程,例如效能優化和 PWA
  • Measure:就是一個線上版本的 Lighthouse,和 Chrome DevTools 的 Performance 功能一致
  • Case Study:優化案例(商業互吹),內容一般為採用 X 優化帶來資料 Y 的提升最終帶來 Z 的商業增長
  • Blog:內容較雜,優化教程/API 解讀/優化案例等等都有涉及

從上面的結構可以看出,Lean/Measure/CaseStudy 這三個章節內容都是比較體系化的,但是 Blog 內容卻沒有一個很好的分類。以我的閱讀經驗,Blog 裡有一些非常好的文章,所以我很好奇 Blog 章節裡有多少好東西可供挖掘,於是上個月的時候花了一些時間,把所有的 Blog 讀了一遍,並以自己的認知對內容做了分析和總結,以便自己後續回顧與搜尋。

<!--truncate-->

內容分類:

截止到目前為止(2022-7-7),web.dev 一共釋出了 631 篇 blog,從 blog 的內容和釋出時間可以很明顯的看出 google 官方的發力(營銷)方向,比如說前幾年在推 PWA,這兩年在推 Web Vitals。縱觀下來,Blog 的內容可以分為以下幾類

  • 效能指標:例如 Web Vitals,FMP,TTI 這些概念和相對應的優化策略
  • 優化策略:例如對網路的優化,對圖片/字型/CSS/JS 的優化
  • UI/UX:這部分內容偏向於實戰和設計,最終會產出一些 UI Component
  • Web 特性:例如 Web Worker,WebXR,Wasm 等功能的介紹和教程
  • 提案/API:主要是對一些提案的實現和現代瀏覽器 API 的介紹,內容偏向於文件,對開發者來說距離較遠
  • 商業案例:其實就是 Case Study 章節的內容,只不過這部分內容也收錄在 Blog 裡

1.效能指標

種類篇數時間跨度
效能指標/優化/監控34主要為 2018 - 2022

效能指標絕對是 Google/Chrome 這兩年首推的內容了,從 2018 年到 2022,4 年的時間裡就推出了 34 篇文章,最近兩年的商業案例也基本都是「優化 Web Vitals 指標帶來商業收益的」的套路。文章整體的質量都不錯,從原因到解決方案到具體用例都有涉及。

2.優化策略

種類篇數時間跨度
網路優化46主要為 2018 - 2022
渲染28主要為 2013 - 2015,2018 做了相關修訂
圖片優化13主要為 2019
JS/JS 框架15主要為 2020 - 2021
font82020 - 2021

從文章比例上就可以看出,Web 非常關注網路資源的優化,這是 Web 的優點也是 Web 的痛點,JS 執行的再快也扛不住一次網路異常,所以網路優化的內容非常多。

渲染優化的文章主要集中到 13-15 年,最近幾年很少說了,這個和歷史發展潮流也差不多,13-15 年屬於移動網際網路高速發展時期,Native 開發還是如日中天,Web 在渲染效能上確實不如 Native,現如今隨著核心的發展以及終端機效能的提升,渲染基本上已經不是效能瓶頸了,而且瀏覽器渲染模組對於 Web 開發者來說也很難去介入,所以內容較少也在情理之中。

JS 優化內容也比較少,一是對於大部分場景來說開發者還沒有到優化 JS 解決效能瓶頸,二是很多 JS 優化的內容都搬到 https://v8.dev/blog 了,所以只有幾篇早期的文章;JS 框架層的優化最近有一些,例如和 nextjs,react 的合作之類的。

圖片視訊字型的優化都屬於資源優化,內容也不錯,可以一起看看單項突破。

3.UI/UX

種類篇數時間跨度
CSS新特性/新屬性27主要為 2019 - 2020
UI 元件/設計12主要為 2021
互動152019 - 2021

CSS 主要介紹的是一些 CSS新特性新屬性,還有一些關於 CSS 的使用/優化文章。

UI 是最近有些 blog 寫了些 UI 元件,感覺內容也可以學習一下。UX 內容就比較雜了,涉及到互動效果,可訪問性等內容,相對來說這個分類裡跨學科內容多一些。

4.Web 特性

種類篇數時間跨度
Web Worker/Service Worker22主要為 2020
PWA16主要為 2019 - 2020
瀏覽器182018-2021
安全10主要為 2020 - 2021
WebGL/WebGPU62012
WebXR102017、2020
Wasm82018 - 2021
Web Component132016、2017

PWA 在前幾年 Google 一直在推,但在國內其實一直不溫不火的,大公司都有自己的 Hybrid H5 方案,小公司基本都去做小程式開發了;國外看似好一些,但做的最好的 twitter PWA,但我深度體驗一年後,發現和 Native 應用比差距還是很大,這已經算全世界做的最好的 PWA APP 了,由此可見 PWA 推廣道路之艱辛。不過 PWA 還是有很多值得學習參考的知識點的,還是有必要學習一下的。

Web Worker/Service Worker 加起來也有 22 篇文章,Web Worker 主要用來分散主執行緒的計算任務,Service Worker 主要起 Web Network 攔截器的作用(從效果上其實也可以歸類到網路效能優化裡),內容也是值得學習的。

瀏覽器分類主要是一些我不知道怎麼分類的瀏覽器特性,比如說 BFCache,Web 儲存方案介紹等等,內容相對較雜。

剩下的內容其實都比較散:

  • WebGL/WebGPU 的內容不多,而且成文時間也很早,而且 Web 3D 雖然依託於瀏覽器平臺,但實際上和傳統的 Web 開發完全是兩回事,所以內容少也可以理解
  • WebXR 內容也很少,主要還是功能介紹
  • Wasm 內容也較少,主要是入門教程
  • 安全領域主要是對一些安全特性/安全 API 做的介紹
  • Web Component 有幾篇很不錯的系列教程可以當入門文章看

其實這些功能都屬於叫好不叫座的狀態,它們都大大提高了 Web 的上限,但是現實是沒有幾家公司需要突破傳統 Web 的上限,大家其實都遵循一個原則——能跑就行

5.提案/API

種類篇數時間跨度
提案/實驗性功能/新 API42主要為 2019-2022

這部分內容對於普通開發者來說其實不是很必要。一是提案/實驗性功能/新 API都比較新,有相容性問題,一般很難在專案中落地;二是在現實場景裡,基本上很少有需求需要用到 Web 的 File API/Bluetooth API 等功能,一般這些場景都是遇到再看,所以這部分內容其實只要知道有就可以,要用到再看細節也不遲。

Blog 連結

這部分內容是整理出的 Blog 內容,我對其標註了釋出時間和檔案標題,並對一些內容做了簡評,方便後續搜尋和檢視。

Web Vitals

網路

渲染

下面的文章其實都是 15 年寫的,18 年修訂的:https://web.dev/authors/paull...

圖片

字型

JS/框架

CSS

UI

互動

Web Worker/Service Worker

PWA

安全

瀏覽器

WebGL/WebGPU

WebXR

WebAssembly

Web Component

提案/實驗性功能/新 API


如果你喜歡我的文章,希望點贊? 收藏 ? 評論 ? 三連支援一下,謝謝你,這對我真的很重要!

歡迎大家關注我的微信公眾號:滷蛋實驗室,目前專注前端技術,對圖形學也有一些微小研究。

原文連結 ? web-dev-blog:更新更及時,閱讀體驗更佳

相關文章