皮膚可配置化:變數、樣式分離

凌霄光發表於2018-10-11

之前皮膚開發了一個版本,抽是抽出來了,但是變數只抽出了幾個顏色,沒什麼價值(上個版本開發過程)

、

這次我又進行了一次迭代,現在是一個較成熟的版本了。整體理一下思路,可以總結為3步走和2層架構:

3步走

第1步:抽取出皮膚相關樣式

皮膚是樣式的子集,想要做皮膚的管理,首先要把涉及到的樣式都抽取出來,這裡只涉及到了 登入頁、考勤頁、頂部選單 3個部分。抽出來後放在assets/skin下。

皮膚可配置化:變數、樣式分離

皮膚可配置化:變數、樣式分離

也是分成了3個檔案管理

第二步: 抽取其中的變數

單抽出樣式來肯定不夠,要做配置化,需要從樣式中抽出變化的值作為變數來管理,並且統一命名。

皮膚可配置化:變數、樣式分離

如圖,也是對應3個section的3個檔案。

命名方式是 sectionName-blockName{-status}-cssName

皮膚可配置化:變數、樣式分離

皮膚可配置化:變數、樣式分離

抽取出變數之後的less檔案如下:

皮膚可配置化:變數、樣式分離

這樣以後就只需要改動配置檔案,而不需要修改樣式檔案了。

第三步,抽取公共變數

配置中有很多同樣的值,比如重複的顏色、重複的基礎路徑等。這些常量寫了很多次,萬一修改要修改n個地方,所以,我把這些散落的魔法值收集起來作為列舉值統一維護,使得配置變得更加的方便可控。

我抽取出了以下變數:

皮膚可配置化:變數、樣式分離

皮膚可配置化:變數、樣式分離

皮膚可配置化:變數、樣式分離

這裡的顏色的命名我是按照色相和亮度來命名的,按照色相分為 紅、橙、黃、紅橙等,然後再加上深淺、亮暗的區分。雖然不是那麼準確,但是能夠簡單區分了。

通過以上3個步驟,皮膚的可配置化就完成了。以後如果要開發一套新的皮膚,一般只需要改動配置就可以了。不過如果新皮膚有別的樣式的更改,還是需要去修改樣式檔案,然後擴充配置變數的。隨著皮膚開發的越來越多,配置也會越來越完善。

2層架構

經過上面3個步驟我們抽取出了皮膚樣式和皮膚相關的配置變數,其實皮膚的架構也就分了這兩層。

皮膚可配置化:變數、樣式分離

總結

皮膚是全部樣式的一個子集,做到可配置需要3步:

  1. 確定好範圍之後,把樣式抽取出來單獨維護, 2.從中抽取抽變數來配置
  2. 把一些顏色等常量值做成列舉的形式

整體的皮膚架構就分為皮膚樣式皮膚配置兩層,架構圖見上文。

程式碼連結

相關文章