1. 程式人生 > >使用Rekit開發可擴充套件的前端應用

使用Rekit開發可擴充套件的前端應用

  近幾年前端技術的快速發展,開發能力與開發難度在逐漸上升。一方面,大型專案中的技術選型,專案結構組織問題一直沒有統一的實踐方式。另一方面,前端專案的開發工具遠遠落後於技術本身的發展。大家現在使用的 VSCode,Sublime Text 仍然只屬於程式碼編輯器,和十年前的記事本之類沒有本質區別。因為它們並不是真正的 IDE,既不瞭解專案結構,也不瞭解什麼是元件或是 Store。這使得大家在專案中各自為戰,常常針對特定的專案架構寫很多指令碼來自動化開發流程。這在一定程度增加了專案複雜度,也限制了大型應用的開發。

  在面臨大型、複雜專案的開發時,如何利用各種框架和工具來提高前端的開發質量和效率是大家關注的重點。在 QCon 2018 上海站,eBay 中國研發中心資深技術專家王沛向開發者介紹瞭如何使用 Rekit 開發可擴充套件的前端應用。

  React 專用 IDE:Rekit

  Rekit 發展的前期只是一個指令碼的工具集,隨著逐漸發展,現在已經是一個完整的 IDE,可以從開發到打包覆蓋整個前端開發過程。前端專案開發時需要考慮前端的架構,理想中的專案架構應該是易於開發、易於擴充套件、易於測試、易於構建、易於維護的,其中擴充套件性是非常重要。

  很多專案建立初期,規模很小,模組之間的關係很清楚,增加一個新功能沒有任何障礙,需求開發起來非常快。逐漸發展後,專案裡新增的模組越來越多,關係慢慢複雜起來,少數幾個人能對專案有完整的把控,大部分人只關注自己的模組。到了專案收尾階段,錯綜複雜的程式碼結構,複雜的依賴關係,使新增功能或專案的重構都變得非常不自信,專案在這種惡性迴圈中逐漸走向低靡,甚至死亡。

  面對這種現狀,建議的實踐方式是:以業務邏輯為模組,對整個專案的複雜度進行拆分。即在專案中,將每個新功能做成一個獨立的 Feature,成為一個特性獨立的功能,每個 Feature 之間的耦合性非常低,所以,相互獨立的同時,功能的複雜度只集中在每個 Feature 之內,類似外掛的架構,每個外掛很容易新增也很容易清除,對專案整體的擴充套件很有幫助。

  React 如何實現這樣的架構

  設定了這樣一個可擴充套件的架構,下面來看如何用 React 技術棧去實現它。一個 React App 已經自然的由元件樹構建 UI。實際上不僅僅是元件,通過結合 Redux reducers,也可以把整個應用程式的 Store,同樣 React router 的配置也可以分成小塊。通過這樣做,可以將可以把複雜應用程式的管理變成對應用塊的管理。

  從技術的實踐上來看,以往在複雜的結構中開發,大家需要手動建立很多很檔案來維護,最後,徘徊在多個原始碼檔案中做開發成為了一件很痛苦的事。Rekit 最初以指令碼的角色實現自動建立 Feature、建立路由等,發展的近兩年,Rekit 成為一個完整的 IDE,完全可以用來開發 React 可擴充套件的應用程式。

  Rekit 如何解決當前 Web 開發中遇到的問題

  前端技術越來越強大,開發越來越複雜,介面的某個功能通常需要建立多個原始檔,程式碼樣板檔案非常複雜,手動建立過程很耗時,重構也非常困難,功能修改時,需要修改多處檔案來保持一致。

  Rekit 的解決思路:首先,提供最直觀的視覺化圖示,幫助你更好的理解專案。

  檢視分為概覽圖、元素圖。概覽圖是 Rekit 專案架構的直觀檢視,它具有互動性,可以直接把滑鼠移動到 Features、 Components 或 Actions 上來檢視某些特定元素的關係。元素圖提供了所選元素和其他元素之間的關係,它有助於快速理解一個模組,並幫助找出過於複雜的模組。

  還有一種解決方法就是提供新的組織程式碼導航方式,用語義化的方式組織原始碼,使用二級 Tab 來切換某個專案元素的不同原始檔,依賴關係的檢視可以在相關的程式碼之間快速切換。

  如何用 Rekit 幫你建立一個新的專案元素?

  在開發現在的現代 Web 應用的時候,可能程式碼的樣板檔案是非常複雜的。例如建立一個元件,通常意味著我們建立一個 js React class,還要建立樣式檔案和測試檔案。而在 Rekit 中,通過右鍵選單,就可以通過直觀的 UI 對話方塊去建立一個元件,輸入元件名,根據自己需求決定是否需要 connect to store,還可以指定是否需要一個 Url,幫助你自動註冊一條規則來訪問元件,點選完成,Rekit 會幫助你生成所有的程式碼,詳細頁中會告訴你它背後究竟建立了哪些檔案,修改了哪些程式碼,從而做到心中有數。

  前端的重構也比較麻煩,要建立一個非同步的 action,在重新命名時,所有的常量名字,檔名都和 action 這個名字連在一起,這種重新命名就出現了困難。Rekit 是通過右鍵選單重新命名或者刪除某個專案元素,專案元素的不同部分會被自動重構,從而保持程式碼一致性。

  如何利用 Rekit 來開發大型 React Web 應用

  Rekit 為什麼能幫助開發者做一些自動化的事情?

  首先,它定義了一個固定模式的資料夾結構,比如我們有一套可擴充套件的資料夾結構,此時你規定好元件,action,路由的定義,利用工具去遵循這些規定。其次,工具中集成了一些最佳實踐,這些最佳實踐體現到技術上都是一個程式碼的樣板檔案,藉助工具幫助你自動生成程式碼。  鄭州男科醫院:http://mobile.tongji120.com/鄭州男科醫院:http://www.tongji120.com/鄭州男科醫院哪家好:http://www.tongji120.com/鄭州男科哪家好:http://www.tongji120.com/