偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Airbnb:我們?yōu)槭裁磿x擇放棄React Native

新聞 Android
近日,Airbnb 工程師 Gabriel Peal 在接受外媒采訪時(shí),聊到了 Airbnb 的移動開發(fā)歷史、React Native 的優(yōu)缺點(diǎn),以及 Airbnb 最終為什么決定從 React Native 遷移。

 今年6月,Airbnb 技術(shù)團(tuán)隊(duì)宣布,Airbnb 將放棄使用 React Native,回歸到使用基于原生技術(shù)的自有框架開發(fā) App。作為一家世界級頂尖公司,在對 React Native 投入大量精力后,突然決定棄它而去,這讓不少想要使用和正在使用 React Native 的人都感到震驚和疑惑。

近日,Airbnb 工程師 Gabriel Peal 在接受外媒采訪時(shí),聊到了 Airbnb 的移動開發(fā)歷史、React Native 的優(yōu)缺點(diǎn),以及 Airbnb 最終為什么決定從 React Native 遷移。

React Native 對 Airbnb 來說最大優(yōu)勢是快速開發(fā)和平臺不可知論(platform agnosticism)。通過 React Native ,Airbnb 可以利用整個(gè)開發(fā)團(tuán)隊(duì)來幫助構(gòu)建和支持他們的移動應(yīng)用。這意味著無論后來的員工在移動和 Web 開發(fā)方面的背景如何,都可以快速培訓(xùn)上手。它還意味著更精簡的代碼庫,因?yàn)槟軌蚩缛齻€(gè)平臺部署一個(gè)存儲庫。但同時(shí),也帶來了挑戰(zhàn):

從 0 至 1 ,需要一大筆投入

許多人認(rèn)為在 Airbnb 決定使用 React Native 時(shí)有做完整的遷移,其實(shí)到目前為止,React Native 代碼僅占 Airbnb 代碼庫和開發(fā)資源的 15-20%,它一直就不是 Airbnb 公司的主要平臺。盡管 React Native 是一個(gè)框架并且極大地簡化了移動開發(fā)流程,但啟動和運(yùn)行起來并非易事,尤其是在已有現(xiàn)成代碼庫的情況下。將 React Native 集成到現(xiàn)有的移動代碼庫中預(yù)期會耗費(fèi)大量時(shí)間和精力。

開發(fā)者仍需編寫原生代碼

對于 API 在兩個(gè)平臺之間具有明確橋梁的簡單應(yīng)用,React Native 是一個(gè)很好的選擇。在 Airbnb 移動應(yīng)用的早期階段,React Native 是移動應(yīng)用中的強(qiáng)大加速器。但最終,API 將無法以你想要的方式運(yùn)行,你還是不得不深入到原生庫中進(jìn)行必要的調(diào)整。

如果聘請一位 JavaScript 開發(fā)者來維護(hù)你的 React Native 項(xiàng)目,那么他們必須編寫原生代碼來彌補(bǔ)功能上的縫隙。

小心“地雷”

React Native 代碼中的地雷和互作用極難追蹤和重現(xiàn)。舉個(gè)實(shí)際例子,Airbnb 團(tuán)隊(duì)有遇到 React Native 組件在某些手機(jī)上顯示一片空白的問題,該 bug 不僅不可靠,而且難以追蹤。

解決方案是關(guān)閉初始化 Fresco ,這是一個(gè)適用于 Android 的 React Native 標(biāo)準(zhǔn)圖像渲染庫。直到今天,工程師仍然不明白為什么這個(gè)步驟修復(fù)了這個(gè) bug 。

投入永無止境/迭代緩慢

許多團(tuán)隊(duì)使用 React Native 進(jìn)行小型移動應(yīng)用的原型設(shè)計(jì),并相信它能解決他們的所有問題。但與所有開源軟件一樣,該平臺在不斷變化,每天都會發(fā)現(xiàn)新的 bug 和問題。支持 React Native 還處于動蕩的生態(tài)需要持續(xù)的投資。

比如 Airbnb 工程師希望一個(gè)符合其產(chǎn)品目標(biāo)的補(bǔ)丁能夠盡快合并進(jìn)入 React Native 框架,不幸的是,React Native 的開發(fā)生命周期為每四周發(fā)布一次。如果這次沒通過,他們將不得不等待差不多一個(gè)月,來重新審查或采用他們的修改。

隨著 Airbnb 的發(fā)展加速,他們無法承擔(dān)其中的風(fēng)險(xiǎn)。由于劣勢高于優(yōu)勢,促使 Airbnb 重新考量,并最終放棄 React Native 開發(fā)。

此外,雖然除了 React Native 之外還有其他的跨平臺替代方案,比如 Google 的 Flutter 和微軟的 Xamarin ,但和上面提到的類似的問題也都可以在這些框架上面找到,而且這兩個(gè)框架在 Google 和 Microsoft 中的使用率都相對較低。雖然跨平臺框架能解決大多數(shù)簡單問題,但一些更復(fù)雜的問題最終還是需要回到相應(yīng)移動設(shè)備的原生平臺來處理。

[[244947]]

責(zé)任編輯:張燕妮 來源: softwareengineeringdaily.com
相關(guān)推薦

2011-06-08 10:30:08

MongoDB

2019-12-30 08:34:40

ZabbixPrometheus監(jiān)控

2021-02-01 07:20:51

KafkaPulsar搜索

2020-06-10 09:06:48

MongoDB架構(gòu)高可用

2020-01-18 09:35:03

微服務(wù)團(tuán)隊(duì)架構(gòu)

2018-12-21 11:26:49

MySQLMongoDB數(shù)據(jù)庫

2016-09-27 21:25:08

Go語言Ken Thompso

2020-09-16 14:56:11

MYSQL知識數(shù)據(jù)庫

2020-03-03 15:31:47

ReactVue前端

2024-02-20 01:53:01

ReactFlutter開發(fā)

2019-04-19 11:56:48

框架AI開發(fā)

2020-02-24 09:38:05

PythonGo語言Linux

2024-02-05 21:48:25

VueReactHooks

2020-08-14 10:40:35

RestTemplatRetrofitJava

2020-11-16 12:03:08

Java開發(fā)代碼

2009-04-23 10:41:59

微軟IE瀏覽器

2024-06-24 07:58:00

2023-07-23 17:19:34

人工智能系統(tǒng)

2019-08-20 09:24:54

Python編程語言Java
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號