公司項目思考

本文是我的對於現有項目的一些思考,僅作參考。前端

背景

  • 因爲公司內部項目較多,項目組之間成員缺少溝通,前端框架不統一,同一框架下UI框架選擇也不盡相同。
  • 不一樣的業務系統相同的功能模塊重複開發,致使人力成本增長,效率低下。
  • 相同項目組成員水平良莠不齊,代碼風格不統一,缺少必定的規範。
  • 缺少項目經驗積累、開發規範、新人培訓,試煉引導。
  • 開發過程當中各部門缺少溝通約定,各節點的產出沒有必定的驗收標準,不能保證每一個環節的質量。

目的

  • 統一項目(後臺管理系統)架構
  • 規範開發流程
  • 項目生命週期各個環節都要有相關的標準(文檔規範、驗收標準、項目評估機制、上線流程等)
  • 完善成員內部的培訓機制、項目試練、技術分享、頭腦風暴等方式提升成員的實力
  • 提升成員的主人翁意識,精益求精的態度,提升眼界,知識面。

方案

因爲本人是作前端項目開發出生,而且長期作後臺業務系統開發,全部的思考也基於此展開。vue

從以往的工做經驗來看業務系統能夠概括爲單/多業務系統聚合業務系統node

  • 單/多業務系統:指通常的後臺管理系統
  • 聚合業務系統:項目一般由不少業務系統組成,各個系統開發技術不必定相同,可是都有統一的UI,做爲iframe嵌入到公共外殼系統中。

聚合型適用於業務複雜,多條業務線同時獨立開發,不少電商網站後臺都採用這種方式。vue-cli

業務系統通用模塊

這裏列舉了後臺管理系統通用的模塊及其細分類npm

權限模塊

權限.gif

  • 登陸

用戶登陸方式有不少種,像企業內部的Sass系統基本上都是員工在入職時分配好帳號,初次登陸後直接跳轉到更改密碼的頁面。一些電商網站後臺只要在外
登陸後內部系統一般就不須要再次登陸了。通常的網站後臺則須要用戶註冊帳戶後再登陸。小程序

登陸或者註冊時的驗證方式有不少種,大體概括以下:後端

登陸.gif

  • 受權

受權分爲第三方受權,一般是微信、QQ、微博、知乎等常見應用直接共享信息登陸系統後再完善一些用戶信息。對於Sass系統來說一般是直接分配帳號,用戶直接登陸,從同一個入口進入的各業務子系統共享登陸狀態。數組

  • 權限分類與角色

角色一般來講就是管理員用戶的區分,根據業務場景、地域跨度、公司人事體系的不一樣又能夠細分出不少角色。不一樣的角色所能看到的,操做的功能是有所區別的。通常來講權限主要是從路由、功能點來控制的。安全

  • 驗證

爲了保證系統的安全性,須要必定的機制來保證系統不被惡意、非法登陸修改信息。常見的手段爲驗證用戶的郵箱、手機號、身份證驗證、生物特徵(面部)驗證、常在登陸地驗證及各類形式的驗證碼驗證。前端框架

會員模塊

會員管理對於電商系統來講是很重要的一個功能點。不少電商項目都是圍繞微信生態圏,所以會員也帖上了不少微信相關的標籤。下面是一個常見會員信息的簡單概括:

會員.gif

評論模塊

評論模塊常見於CMS系統、商品評論。對於評論而主要的操做就是發表評論、回覆評論、刪除評論、評論點贊、評論審覈、喜歡評論、收藏評論等。

營銷模塊

有了會員固然少不了各類營銷手段來留住會員,得到手續收益和吸引更多會員。常見的線上營銷方式以下:

營銷.gif

消息模塊

這裏把短信、通知、公告信息所有歸在一塊兒。

分銷模塊

分銷主要是電商的微商中,按照國家規定最多3級分銷。

支付管理模塊

支付系統主要是管理支付帳單、支付流水記錄、帳單的投訴等。

訂單管理

商品下單管理。

統計模塊

主要是在客戶端進行打點統計各pv, uv信息,以可視化圖表展現用戶增加、用戶訪問量等。

素材管理模塊

各類商品圖片、字體圖標管理。

客服模塊

客服系統,商戶與用戶聊天。

庫存模塊

頁面生成模塊

使用拖拽方式動態構建頁面,適用於H5頁面,微信公衆號、小程序。

其它模塊

特定行業、特殊需求功能模塊。

實現方案

統一架構,前端採用 「腳手架 + 業務組件庫 + 可視化配置」,中間考慮到各上業務系統的靈活對接能夠採用nodejs做爲中間層做調度,後端服務能夠靈活選擇。

前端基於Vue框架體系,採用 "Vue + Vuex + Typescript + GraphQL + Yarn + Lerna",腳手架使用 npm + vue-cli 來生成帶有基礎功能的基礎項目,業務組件庫在必定的規範和契約下單獨成庫進行開發,作到插件的形式載入和卸載。因爲項目爲Web端,不是桌面應用,所以可視化配置生成項目代碼的可行性不切實際,只能生成配置數組,經過前端已有的功能組件來解析數組生成頁面。

中間nodejs層主要負責認證、接口的轉發與合併、資源的調度、後臺系統的對接、日誌的統計等。

基於這個方案能夠將一些適用於多個項目的低層功能融入腳手架中,開發新的業務系統時能夠直接開發特定的功能,一些通用的模塊直接引入。

業務組件庫能夠直接放在主項目倉庫做爲一個package,也能夠在公司內部自建npm倉庫管理後臺託管項目代碼。

難點:

  • 插件式業務組件如何實現才能保證擴展性、靈活性、完整性
  • 腳手架生成的項目的粒度多大
  • 產品和設計師要嚴格按照UI規範設計產品
  • 項目代碼如何保證統一的規範
  • 創建完整的業務組件開發流程文檔
  • 各業務組件系統之間如何互通
  • 可視化配置生成的頁面靈活性和適用性
相關文章
相關標籤/搜索