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

這次我又進行了一次迭代,現在是一個較成熟的版本了。整體理一下思路,可以總結為3步走和2層架構:
3步走
第1步:抽取出皮膚相關樣式
皮膚是樣式的子集,想要做皮膚的管理,首先要把涉及到的樣式都抽取出來,這裡只涉及到了 登入頁、考勤頁、頂部選單 3個部分。抽出來後放在assets/skin下。


也是分成了3個檔案管理
第二步: 抽取其中的變數
單抽出樣式來肯定不夠,要做配置化,需要從樣式中抽出變化的值作為變數來管理,並且統一命名。

如圖,也是對應3個section的3個檔案。
命名方式是 sectionName-blockName{-status}-cssName


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

這樣以後就只需要改動配置檔案,而不需要修改樣式檔案了。
第三步,抽取公共變數
配置中有很多同樣的值,比如重複的顏色、重複的基礎路徑等。這些常量寫了很多次,萬一修改要修改n個地方,所以,我把這些散落的魔法值收集起來作為列舉值統一維護,使得配置變得更加的方便可控。
我抽取出了以下變數:



這裡的顏色的命名我是按照色相和亮度來命名的,按照色相分為 紅、橙、黃、紅橙等,然後再加上深淺、亮暗的區分。雖然不是那麼準確,但是能夠簡單區分了。
通過以上3個步驟,皮膚的可配置化就完成了。以後如果要開發一套新的皮膚,一般只需要改動配置就可以了。不過如果新皮膚有別的樣式的更改,還是需要去修改樣式檔案,然後擴充配置變數的。隨著皮膚開發的越來越多,配置也會越來越完善。
2層架構
經過上面3個步驟我們抽取出了皮膚樣式和皮膚相關的配置變數,其實皮膚的架構也就分了這兩層。

總結
皮膚是全部樣式的一個子集,做到可配置需要3步:
- 確定好範圍之後,把樣式抽取出來單獨維護, 2.從中抽取抽變數來配置
- 把一些顏色等常量值做成列舉的形式
整體的皮膚架構就分為皮膚樣式和皮膚配置兩層,架構圖見上文。