1. 程式人生 > >網易嚴選後臺系統前端規範化解決方案

網易嚴選後臺系統前端規範化解決方案

本文來自網易雲社群

作者:吳子房

背景

網易嚴選經過一年多的快速發展,專案膨脹很快,業務規劃上,也到了拆分工作臺的時候了。當前一個業務人員在完成一個新品開發的流程的時候,需要在多個業務系統之間切換。然而因為歷史原因,各後臺專案有著不同的互動視覺形式,體驗比較差,統一互動視覺規範與前端互動已經迫在眉睫。

目標

設計與開發這套規範的目標,是讓使用者體驗更佳,操作習慣一致,各系統間能夠無縫對接。

2018092716472966ecaacc-1def-4a94-9ff0-cf56cb7aad83.jpg 

規範上的準備

從使用者體驗上規範:統一認證、互動、視覺規範。 從開發流程上規範:前端開發規範、基礎框架、樣式庫、元件庫。 從開發效率上規範:構建工具、npm私有庫、輔助開發工具。

具體實施步驟

1. 統一認證,統一管理外網訪問許可權

統一認證的實現,讓各個系統直接的切換變的更流暢,避免了流暢跳轉時業務系統需要重新登入。

實現方案:
  1. 統一各業務系統的域名,分配應用名給各業務系統。

  2. 接入統一的登入服務來實現。

  3. 統一外網訪問管理:應用登入時,登入服務根據使用者許可權生成可訪問列表的token,nginx通過secure_link模組來進行鑑權與控制轉發。

2. 統一互動視覺規範

2018092716474239b9d668-93ad-42dc-8cf1-026c5b0e27d5.jpg

  1. 一致的互動視覺規範,這也是後面各個步驟實施的基礎,在前端同學的深度參與下,互動視覺同學提取目前各業務系統的互動視覺需求,完成了互動視覺規範的制定。

  2. 互動同學提供了符合規範的一套axure元件庫,在產品互動階段進行規範。

3. 統一基礎前端框架

統一基礎框架是元件庫開發與程式碼複用的基礎,我們選擇了anguarjs(1.x)的繼承者angular(當前4.x)

4. 基礎樣式庫與樣式規範

20180927164809284e45f6-1103-4840-81eb-d1a9c5e53a58.jpg

  1. 開發了實現整個互動視覺規範的基礎樣式庫@shark/shark-css。

  2. 通過樣式開發命名規範,保障後續各種業務元件樣式之間能夠相容,不會互相汙染。

5. 基礎元件庫與元件規範

2018092716482561a7e09c-8c9d-4e13-afd5-8720dc2ce018.jpg  201809271650157eeeb4ca-5923-4446-8688-cb03925446f1.jpg

20180927165025a3c6cbc8-73f6-4d41-a10d-c64060e8f814.jpg

  1. 在angular框架下前端組開發了符合互動視覺規範的基礎元件庫@shark/shark-angularX。

  2. 通過元件規範,保證後續都各業務元件的介面、資料處理、校驗能夠統一與規範。

6. 開發文件、模版工程

20180927164901f23a870b-e2a6-4e2a-bc5a-f2e4edffbea9.jpg  

  1. 開發文件方面,以元件說明、介面說明、元件例項、程式碼片段四部分來展示各個元件的互動和試用方式。

  2. 模版工程,用於規範程式碼結構,模組組織方式,為業務的模組化開發和模組化複用做好基礎。在模版工程中,提供了常見的表單、列表、tab、模態等業務模組的開發案例。

7. npm私服

我們搭建了一套npm私服,供釋出公共樣式庫、公共元件庫、業務元件、公共業務模組。

201809271649140b0b6892-8bb1-4e56-a57e-d34f2c70fa90.jpg 

8. 開發流程

  1. 前端本地開發環境

    npm run server
  2. 前端聯調模式(配置remote地址)

    npm run server-remote
  3. 前端build模式測試

    npm run server-build

9. 外掛、cli工具

配套的編輯器外掛,輔助程式碼生成,專案建立,開發了元件庫和模版工程配套的vscode外掛,cli工具。

201809271649287fcbd38e-5a4c-4fd6-9f42-6f154fc80377.jpg

20180927164943d7442dca-89e1-4301-8fb2-5cd75f677561.jpg 

10. 願景

希望經過大家的努力,嚴選的後臺系統,能給使用者提供更好的使用體驗,提升大家的工作效率。

網易雲免費體驗館,0成本體驗20+款雲產品! 

更多網易研發、產品、運營經驗分享請訪問網易雲社群