這禮拜發現的新東西
這個禮拜在思考關於重構的東西,在前端還可以怎麼實踐。css 的部分已經有大致的雛形出來了,把相關的註解跟文件寫完之後再和大家分享心得。
Get your ../../
out
css 部分重構完之後,再來就是要對 js 下手了。目前比較困擾的幾個點有:
- component 初期的部分比較亂
- 有些 flux、有些 redux
再來是我認為最麻煩的,就是路徑管理的問題了,因為檔案裡面有太多類似的 ../..
出現,導致之後要對檔案做搬遷的時候還要全部重改一次,感覺非常的費工費時,也是讓人不敢輕易重構一大原因。
那時候第一個想法是,「不然我把全部的檔案存成一張路由表好了。」,不是 import 檔案本身,而是每次要 import 時,都到這個路由表去拿路徑,不但方便,而且每次對檔案做搬遷時,我只要維護好這張路由表就了。不過這個想法還沒有實作過,所以可能不是好方法也說不定…。
再來發現的第二個工具是modulesDirectories
,主要是幫你把 root 定義好,每次呼叫 component 時都是以 root 當作起點而非檔案本身。
以 sudo 的檔案為例
|
|
加入 modulesDirectories
之後,我們可以這樣寫:
|
|
這樣 component 搬遷的時候,不會因為相對路徑改變的關係,而還要全部重寫一次,重構的意願也相對提高了。
idiomatic-css
最近一直在研究如何讓 css 的易讀性更高,並且更好做維護,目前如果搭配 webpack 的話,常見的方法有:
- css-module
- postCss
- radium
這些工具搭配 react 一起使用,其實可以很有效地解決 namespace 的問題。
不過主站目前想要先解決的是變數的統一命名,及 css 的規範。這部分規範好了之後,css 的管理相對也會變得簡單許多。
code smell in css
這篇文章介紹了很多關於 css 的 smell code
。幾個比較重要的大概念:
- 避免 magic number
- 盡量讓 class 是 immutable
- 利用權重的技巧,而不是過度使用 important
- selector 盡量簡單
順便來複習一下 selector 的語法吧!除了用 class 來當做 selector 之外還有很多其他實用的 selector 可以使用!
像是 input 就是一個非常好使用 attribute selector 的例子:
|
|
這樣不僅語意清楚,也可以省下不必要的 class。