中文字幕无码久久精品,13—14同岁无码A片,99热门精品一区二区三区无码,菠萝菠萝蜜在线观看视频高清1

您當(dāng)前的位置是:  首頁 > 新聞 > 國際 >
 首頁 > 新聞 > 國際 >

Uber開源內(nèi)部使用的通用網(wǎng)頁開發(fā)框架Fusion.js

2018-08-03 14:35:32   作者:   來源:CTI論壇   評論:0  點(diǎn)擊:


  即便Uber仍是一家新興企業(yè),但是也面臨著老舊單一的網(wǎng)頁框架所帶來的技術(shù)債,為了解決這個問題,Uber自行開發(fā)具備靈活性,與許多先進(jìn)功能的網(wǎng)頁開發(fā)框架Fusion.js。
  Uber開源其內(nèi)部使用的網(wǎng)頁框架Fusion.js,該框架能夠簡化網(wǎng)頁開發(fā)并產(chǎn)出輕量高性能的應(yīng)用程式,支援React和Redux等熱門函式庫,也提供熱模組重載、資料感知服務(wù)器 端渲染與綑綁拆分等先進(jìn)功能。而且用Fusion.js開發(fā)的應(yīng)用程式為通用架構(gòu),具單一入口檔案,且可以在服務(wù)器 與瀏覽器上重復(fù)使用程式碼。
  Uber開發(fā)了數(shù)百個網(wǎng)頁應(yīng)用程式,其中許多是用於內(nèi)部管理業(yè)務(wù)的,而部分是對外面向公眾的,為了讓數(shù)百名工程師都能在同樣的技術(shù)基礎(chǔ)上,開發(fā)最佳實(shí)踐應(yīng)用程式,Uber網(wǎng)頁平臺團(tuán)隊(duì)建構(gòu)了Fusion.js,除了提供高品質(zhì)的框架與先進(jìn)功能外,也可以同時保持網(wǎng)頁平臺的動態(tài)特性,簡化開發(fā)并產(chǎn)生高效能網(wǎng)頁應(yīng)用程式。
  官方提到,F(xiàn)usion.js適合那些想要尋找開源樣板來建置現(xiàn)代與非平凡(Non-trivial)網(wǎng)頁應(yīng)用程式的開發(fā)者。除了提供預(yù)先配置好的最佳化樣板外,F(xiàn)usion.js提供基於套件的靈活架構(gòu),同樣適用於依賴復(fù)雜服務(wù)層的單一頁面或是網(wǎng)頁應(yīng)用程式,可以建置像是追蹤日志、量測儀表板等監(jiān)控應(yīng)用,以及單元測試等功能。
  由於Fusion.js應(yīng)用程式是通用架構(gòu),因此應(yīng)用程式具有單一入口檔案,并且能夠在服務(wù)器 與瀏覽器上重復(fù)使用程式碼。在通用的應(yīng)用程式中,React元件也能提取資料并在服務(wù)器 上渲染成HTML,以減少瀏覽器載入頁面的時間,避免JavaScript DOM API造成的額外成本。
  單一入口架構(gòu)使得Fusion.js的插件本身也具有通用性,但并非是指程式碼執(zhí)行的環(huán)境,而是允許套件開發(fā)者對共同使用的函式庫程式碼片段定位。另外,套件可以透過中介軟體存取HTTP請求生命周期,也可以存取React Tree以新增Provider元件。
  Uber提到,他們近幾年遇到的其中一個開發(fā)挑戰(zhàn),便是在熱門的HTTP服務(wù)器 函式庫Express中的API,其存在缺點(diǎn)使得復(fù)雜的回應(yīng)轉(zhuǎn)換難以封裝與測試。對於Uber以前的架構(gòu),應(yīng)用程式開發(fā)者經(jīng)常需要以猴子修補(bǔ)法,臨時維護(hù)Express的請求與回應(yīng)物件,久而久之,程式碼越來越凌亂,復(fù)雜相互影響的子系統(tǒng),讓測試變得困難。
  Uber現(xiàn)在采用了中介軟體Koa來解決這個問題,以補(bǔ)足Fusion.js的設(shè)計(jì)不足,使其擁有更加友善的Context-based API單元測試方法。Koa為React Provider元件提供了邏輯整合點(diǎn),上游與下游抽象與React服務(wù)器 渲染的內(nèi)容生命周期同步,網(wǎng)絡(luò)帶來的副作用與應(yīng)用程式脫勾後,增加了可測試性。
  除了支援Jest、Enzyme和Puppeteer等JavaScript現(xiàn)代測試工具外,F(xiàn)usion.js也為開發(fā)人員提供了測試套件的工具,fusion-test-util軟體包允許模擬服務(wù)器 ,因此開發(fā)者可以快速的模擬套件與模擬器間任意的組合。
【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無關(guān)。CTI論壇對文中陳述、觀點(diǎn)判斷保持中立,不對所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔(dān)全部責(zé)任。

專題