原創不易,但願能關注下咱們,再順手點個贊~~ |
本文首發於政採雲前端團隊博客: 前端工程實踐之可視化搭建系統(一)前端
隨公司業務不斷髮展,營銷活動、廣告、頁面改版等需求日益倍增,靠純人工擼代碼已經沒法跟上需求增加速度。加班?招人?顯得不夠明智,也不夠前端,提效也就成爲了關鍵。如何提效?從何入手?那不得不提的就是前端提效神器 —— 搭建系統,下文將從多個方面,向你們簡單介紹政採雲前端團隊 ZooTeam 的可視化搭建系統 —— 魯班。vue
魯班是一個基於業務組件快速生成頁面的搭建系統。數據庫
這是一個不得不說的故事,那年冬天......言歸正傳,我剛來公司時,其實公司有一個叫作 「lunatone」 的項目,這個怎麼讀呢:露娜湯姆,差很少是這樣吧。這個項目中也有一個陳舊的搭建系統,該系統基於柵格佈局,能夠配置一點數據,組件能夠拖拽、嵌套,看着仍是挺酷的,可是問題也很多:後端
基於以上緣由,並在咱們「堂主」大人的「慫恿」下毅然決然的開始了魯班之旅,一去不復返。api
魯班從前端架構 -> 後端架構 -> 數據庫設計 -> 部署方案設計 -> 容災方案設計,都是由前端開發人員進行設計、編碼。數組
下圖爲魯班搭建頁面的使用步驟圖性能優化
從前臺管理系統提及,從使用者角度看魯班如何搭建一個頁面。服務器
組件,咱們也稱之爲物料,它做爲魯班系統的基礎須要被合理的管理。組件來源於 Git 庫,從 Git 同步信息到數據庫,並拉取源碼到服務器進行管理。組件管理頁面只需三個操做:微信
開放此功能主要爲了方便開發人員開發過程當中進行 Schema 校驗。左側輸入符合規範的 Schema 數據,右側會根據左側輸入顯示配置項。markdown
可視化搭建平臺是魯班的靈魂。從圖中能夠看到,左側是能夠被用來搭建的全部組件,目前咱們對組件進行了功能分類,後續將對用戶開放更多維度的分類,方便用戶進行組件查找。
中間部分是搭建區域,用戶能夠在這個區域內看見頁面的實時效果,能夠點擊組件進行組件數據配置。
右側是全部已經被頁面使用到的組件,能夠對組件版本進行升級,也能夠刪除不想使用的組件,還能夠上下拖動調整組件在頁面中的順序。
在這個平臺上,用戶不只能夠搭建頁面、配置數據,還能夠在真實環境對頁面進行實時預覽。
針對頁面,平臺提供自動埋點、配置數據糾錯功能。
針對組件,平臺提供組件更新、異常組件報警功能。
最後,點擊保存將頁面數據提交到數據庫。至於數據怎麼轉成靜態 HTML 做爲「課後做業」,謹記「堂主」名言:方法總比困難多。╭(●`∀´●)╯╰(●’◡’●)╮
組件數據配置支持 String、Number、Boolean、Array、Object、Color、Select、Upload、Two-dimensional Array(二維數組)等配置字段類型。
簡單類型示例:
二維數組示例:
經過以上步驟,咱們就能夠搭建出一個頁面,點擊發布到不一樣環境上便可。
先說說咱們最多見的路由,就拿 Vue-Router 舉例:經過不一樣的 URL 訪問不一樣的頁面。
先進入 Nginx 層,經過 Nginx 通配規則跳轉到魯班服務器,在魯班服務器上再經過站點、區劃、URL、頁面狀態從數據庫查找頁面,若是頁面存在,根據頁面標識從本地返回,若是本地不存在,嘗試從 OSS 獲取;若是頁面不存在,則返回 404 頁面。
這裏,我就把這價值一個億的代碼偷偷的告訴你們(但願本身不要被勸退/(ㄒoㄒ)/~~,你們是否是要點個贊,評個論,雙擊 666,鐵汁們!!)
沒錯!這就是魯班系統的核心代碼,基於 Vue 的 「is」 特性實現。爲你們附上 Vue 官方文檔:cn.vuejs.org/v2/api/#is
搭建頁面是魯班的核心功能,提效是魯班系統的核心價值,從 6 月中旬上線至今已經 3 月有餘,魯班獲得了公司的高度承認,並被應用到各個重點業務線,從數據上來看,前途一片光明吶。(ง •̀_•́)ง
魯班系統是前端體系化建設過程當中不可或缺的一部分,也是前端提效的必經之路。它不只避免了組件的重複開發,收斂了簡單配置後臺,而且爲運營角色賦能:運營能夠直接在平臺上進行頁面搭建,經過測試後可隨時發版。
魯班系統的流程設計,遵循公司的 PMO 項目管理流程,但又不拘泥於此,作了必要的突破並化繁爲簡,被業務方和使用方普遍承認。
魯班系統已和 Web 性能優化分析系統(百策系統)打通,可以在上線時,查看頁面性能評分,不及格可不準發佈哦,若是你想了解百策系統,請點擊咱們的另外一篇原創文章自動化 Web 性能優化分析方案
後續,我將爲你們一一講解魯班的系統架構、技術要點、數據庫設計、部署方案、容災策略等。歡迎你們先關注微信公衆號 「政採雲前端團隊」,或者掘金上關注 「政採雲前端團隊」,以便第一時間獲取最新信息。
招人,前端,隸屬政採雲前端大團隊(ZooTeam),50 餘個小夥伴正等你加入一塊兒浪~ 若是你想改變一直被事折騰,但願開始能折騰事;若是你想改變一直被告誡須要多些想法,卻無從破局;若是你想改變你有能力去作成那個結果,卻不須要你;若是你想改變你想作成的事須要一個團隊去支撐,但沒你帶人的位置;若是你想改變「5年工做時間3年工做經驗」;若是你想改變原本悟性不錯,但老是有那一層窗戶紙的模糊… 若是你相信相信的力量,相信平凡人能成就非凡事,相信能遇到更好的本身。若是你但願參與到隨着業務騰飛的過程,親手參與一個有着深刻的業務理解、完善的技術體系、技術創造價值、影響力外溢的前端團隊的成長曆程,我以爲咱們該聊聊。任什麼時候間,等着你寫點什麼,發給 ZooTeam@cai-inc.com