• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當前的位置是:  首頁(yè) > 新聞 > 國際 >
     首頁(yè) > 新聞 > 國際 >

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

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


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

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 临沭县| 上杭县| 邳州市| 马尔康县| 平顺县| 石景山区| 东辽县| 汾西县| 七台河市| 财经| 临澧县| 辽阳县| 汶川县| 嘉善县| 泾阳县| 响水县| 广南县| 邯郸市| 济南市| 宜宾市| 阳原县| 启东市| 五台县| 会昌县| 义乌市| 德惠市| 临夏县| 巴楚县| 玉溪市| 桂平市| 浦城县| 新昌县| 鹤庆县| 岳西县| 秦安县| 宜宾市| 辽阳市| 县级市| 株洲县| 吉林省| 南召县| http://444 http://444 http://444 http://444 http://444 http://444