2021年前端發展預測

作者 | Browser London
譯者 | 吳留坡
策劃 | 田曉旭
2018 年、2019 年、2020 年我們都做了前端發展預測,鏈接見文末,本文是 2021 年前端發展預測。
React 框架終於成熟了

React 在 MVC 中經常被稱爲“V”,它既受益又受困於缺乏固執己見的框架。多年過去了,我們還沒有看到這個行業在一個堆棧、體系結構或工具鏈上聯合起來。儘管這種靈活性無疑有助於其普及,但 2021 年可能是我們最終看到此類框架走向成熟的一年。

在過去的一年裏,Vercel 公司繼續在 React 領域佔據主導地位,不斷完善其框架,Next.js 以及他們自成一套的服務,同時推出了一個電子商務初學者工具包和一個分析工具:

https://nextjs.org/commerce

https://nextjs.org/analytics

並舉辦了他們最大的虛擬會議。雖然 Next 已經出現了很長一段時間,造好輪子並經過了很久的實踐,但功能大而全的方式並不適用於所有人(譯者注,原文 batteries-included,這個詞語源自 Python 語言,指官方發行版 CPython 自帶了相當齊全的軟件庫,拿來就可以直接寫程序,一般不需要再去安裝額外的庫,類似買一個電動玩具裏面自帶了電池一樣,拆開後簡單裝配即可使用),但是去年最終發佈的 v10,穩定性出人意料,最終採用了子路徑路由:

https://www.nextjs.cn/docs/advanced-features/i18n-routing

Vercel 公司正努力通過他們最新的主題演講來宣傳產品,包括“drops”。

https://nextjs.org/blog/next-10

今年,新的閉源 React 框架 Remix 悄無聲息地推出了“支持者預覽版”。Remix 由社區中的兩位大牛 Jackson 和 Florence 創建,他們成名於 React Router,採取了不同於 Next 的方法——既有商業模式(每年收取一筆不多的許可費)也有體系概念(Remix 是一個產品,而不是一個平臺)。Remix 承諾將利用更傳統的技術,比如積極的 Http 緩存,重新關注基本網頁,而不是傾向於靜態頁面生成。

https://remix.run/features

現在還爲時過早——Remix 要到明年才能正式推出——而且不太可能實現像 Ember 這樣的一體化工具。儘管如此,在這個長期停滯不前的領域看到事態發展還是讓人耳目一新。

DOM 容器查詢

(譯者注,這裏的容器是頁面 DOM 容器,不是另一個完全不相干的 docker 容器)對容器查詢的需求已經達到了狂熱的程度。隨着谷歌最終宣佈他們的原型計劃,2021 年可能是我們第一次看到。

https://groups.google.com/a/chromium.org/g/blink-dev/c/u1AKdrXhPGI/m/wrJb-unhAgAJ?pli=1

與此同時,越來越多地採用固有的網頁設計:

https://www.browserlondon.com/blog/2019/08/19/should-we-still-be-selling-responsive-web-design

結合 CSS 的 min/max/clamp 和 JS 的 ResiveObserver 等 API,提供了更好的“僞裝”方法。這類實現越來越多(甚至可能是危險的?)在過去的幾個月裏,很難想象這種趨勢會在明年停止。

譯者注,ResiveObserver 是一個試驗特性,類似 document.onresize,ResiveObserver 可以監聽到 Element 的內容區域或 SVGElement 的邊界框改變。避免了在自身回調中調整大小,從而觸發無限回調和循環依賴。僅通過在後續幀中處理 DOM 中更深層次的元素來實現這一點。詳見:

https://developer.mozilla.org/zh-CN/docs/Web/API/ResizeObserver

我希望我們能看到更聰明的方法來接近容器的第一個設計,如 Mathias 的 Raven 和 Heydon 的 Watched Box。

WASM 爆炸

WebAssembly 的發展很緩慢,這在很大程度上是因爲它太專業了(“如果需要它,你會知道的”)。然而,到 2021 年,我們可能會看到這種轉變。

隨着前端開發人員的角色逐漸向“全棧”領域發展,我們開始看到更多的工程師採用較低級別的系統語言,比如 Rust,儘管 Mozilla 裁員後出現了最初的不確定性,但 Rust 目前正受到空前的熱捧:

https://twitter.com/nadavrot/status/1319003839018614784

因此,我們看到了基於 WASM 的解決方案,如 Yew 和 Seed.rs 進入前端框架。得益於 Rust 提供的性能和安全性,2021 年很可能是 WASM 出現大規模繁榮的一年。

https://wingolog.org/archives/2020/10/15/on-binary-security-of-webassembly

我們離這些大公司關注的熱點還有很長一段路,但我相信 2021 年採用率會激增。

快要達成一致了

(譯者注,原文 monolith,巨石,單一龐大的組織,這裏是前端採用的技術棧可以達成一致)業界對分佈式服務和精心劃分責任的熱愛仍在繼續,已經超越了後端(比如微服務 https://www.browserlondon.com/blog/2019/07/01/do-you-need-microservices),並在 2019 年達到了頂峯,推出了微前端(同樣受到詬病和喜愛的)。Unix 哲學的體系結構方法繼續受到限制,至少在技術報告和媒體文章領域是如此。

在過去的幾年中,微服務的廣泛使用使得諸如 Backend For Frontend 之類的模式成爲必要,它在每個客戶機和爲其提供服務的 API 之間引入了一箇中介。

-BFF 充當“粘合劑”,是客戶端的單一聯繫點。這允許使用該服務的客戶端變得一致(並且非常適合)。

考慮到目前對 JAMStack 的興趣,這一點在 2021 年尤爲重要,JAMStack(譯者注,JAMStack 是新興的技術概念,區別於以往服務器端渲染,而是採用 JS 腳本、API 服務接口、Markup 模版,通常直接使用 CDN 分發靜態的頁面,完全不需要渲染頁面,網站的伸縮性、穩定性可以得到最大的保障。)最爲複雜,受到服務依賴的影響:

https://www.browserlondon.com/blog/2020/04/20/issues-with-jamstack-you-might-need-backend

https://www.browserlondon.com/blog/2020/09/02/dependency-hell-how-to-avoid-it

有趣的問題,“如何組裝我的 API”的答案是:構建一個。

2021 年會看到使用 BFF 技術的有所增加,但如果運氣好的話,我們也可能會看到它逐漸迴歸到巨石陣,或者至少會以更大的“宏觀服務”:

https://twitter.com/GergelyOrosz/status/1247132806041546754

或諸如城堡之類的妥協形式緩慢撤退:

https://m.signalvnoise.com/the-majestic-monolith-can-become-the-citadel

毫無疑問,Basecamp 的 DHH,這位“雄偉”巨石最有力的支持者(他最近推出了另一款傳統的網絡應用 Hey)將領導這次行動。

    總結    

有趣的是,前端最大的發展方向不太可能是通常的關注點。早在我們 2019 年的預測中,我們就注意到,前端開發人員的角色正日益向“全棧”轉變,已證明這是事實。甚至我們的框架和工具的發展也表明了這一點,我們越來越關注數據獲取、併發性、安全性和可伸縮性。

這是一個自然的交匯點,前端工程師面臨着越來越多的“後端”問題,而工具和服務正變得足夠複雜,以降低進入壁壘。這是一場完美的風暴,我希望它能持續到 2021 年。

本文分享自微信公衆號 - 架構真經(gentoo666)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章