Sass和Atom与CSS学习

Posted by Lxxyx on 2016-07-26

起因

在五月初的时候,我停止了博客的更新。当时还发了篇博文《备战期末考试,暑期再见~》
停止更新的原因在里面也说的很清楚,一是因为要备战期末考试(结果自然是全部通过),二则是因为可写的话题越来越窄。基础知识大抵了解,中高级知识了解不多。处于很尴尬的位置。
但背后真正的原因,却是因为自己前端的学习处于一个迷茫期。让我出现了无文章可写,没有动力的情况。
因为当时 HTML/CSS/JavaScript 的基础知识大抵掌握的还行,同时在 JavaScript 的学习和应用上也越来越得心应手。Node.js 与 ES6 的出现更是拯救了自己之前那混乱不堪的代码。而 CSS 的学习,却出现了毫无寸进的现象。

CSS 学习的停滞

CSS 学习的停滞,大概出现在三月底四月初那时候。
对于这个我有很深的印象。因为当时 JavaScript 还有大量可学习的资源,也能找到前进的方向。
但当时对于 CSS,我当时完全就是懵的。学习时,纷繁复杂的细节与浏览器兼容性让我无暇顾及其他,很有可能谷歌浏览器上是正常的,火狐浏览器就出了问题。甚至于可能 Linux 下开发时是正常的,但是 Windows 下就出了问题。
同时,由于自己在写的一个内网项目,规模不断的在膨胀,从而在 CSS 中出现了不可控制的状况。这个时候全局样式冲突,复用性差,维护难度增加等问题纷至沓来。自己也对如何更好的写 CSS,CSS 命名规范等问题的解决方案产生了需求。

迷茫期

从三月底四月初,一直到这七月下半旬,CSS 学习的停滞期足足持续了四个月。
中间看过大牛的文章,读过《CSS 权威指南》《CSS 揭秘》等图书,也尝试过 Sass, Stylus 等预处理工具。却发现自己写 CSS 代码时愈发吃力。
从一开始能用各种方式布局,到后期则成为了只知道使用 flex 的“废人”。然后使用 flex 多了,发了这种布局方式的局限性也很强。遂又开始了苦苦的思考。中途也求助过大牛,当然人家也没理我。于是依然只能自己思考。
还有非常重要的一点,则是写代码时所用的编辑器 Sublime Text,对 CSS3,Sass 等新特性的支持太差。没有 snnipets,代码高亮来写 CSS,很大一部分时间都得浪费在思考写的东西是不是对的。
这种东西,看起来是成为大牛的“必经之路”,实际上只是自己在一边烧脑,还一边安慰自己这是学习的行为。毕竟这年头用记事本写代码的,十之八九是情非得已。

项目重新开始

七月中旬,之前写的办公项目决定推倒重来。重新开发 3.0 版。
当然,这次重构并不是简单的儿戏。而是基于项目情况,自身能力,各方要求。从而做出的选择。同时项目仓库也从开源中国转移至 Coding.net。
当决定推倒重来的时候,其实心里很矛盾,一方面是由于参与人员能力的成长,项目会做的更加好。另一方面则是对自己几千行代码,瞬间废弃,所带来的不舍。
下图就是开发这个项目的 commit 次数。
2016-07-26_14:50:57.jpg
但最后,还是决定重新开始了。七月十六,一切推倒重来。
2016-07-26_14:54:14.jpg

曙光

在项目一开始,我就一直追着设计师,和他谈。希望他的风格能统一化。从而方便前端的代码复用。
同时尝试采取快速迭代的方式,在完成办公系统的核心部分之前,不对其进行大的更改。

Sass

2016-07-26_14:43:21.jpg
项目中的预处理器采取的是 Sass。至于他的好处我就不说了,虽然之前也用,但是只是用来简单的嵌套元素。现在回想,觉得当时的行为也算是暴殄天物。
新项目中,模仿了mint-ui的写法。采用了 mixin 与变量的方式来构造 CSS。
2016-07-26_15:02:45.jpg
而在实际的使用中,由于 Vue 的 scoped 属性,保证了每个组件的的 CSS 不会影响其它组件。同时得益于设计风格的统一,大大加快了开发速度。可维护性则提高了,之前的问题也迎刃而解。

Atom

2016-07-26_15:06:14.jpg
另一方面,不得不提的这是 Atom 编辑器。其对 CSS3,Sass 等语言的支持,要远远超过 Sublime Text。
以下是 Atom 与 Sublime 的比较。选择的都是 Sass 语言,但是对于 flex 等新属性,Sublime 几乎没有支持。
2016-07-26_15:11:24.jpg
2016-07-26_15:12:02.jpg
虽然也能自己写 snnipets,但是考虑到后期会加入无限多的新属性,自己也无暇顾及,所有稍微思考了一下,就放弃了这个选项。

结语

Sass 与 Atom 双管齐下的情况下,不仅解决了之前自己的问题,也大大的提高了开发速度。
而对于 CSS 学习的问题,很多时候觉得更是一种心理的症结。我不担心自己学不会,也不怕自己写得多。但确实害怕自己像个人形打字机一般,无意义的堆积,复制,粘贴代码。最后还因为混乱,从而让写的代码整个崩塌,无可维护。
所以到后期,自己会看一些编写 CSS 的方法论,但是一直没有找到什么应对当前项目需求的解决方法,所以对于 CSS 的心情也日渐厌烦,毕竟一些重复的代码写上十几遍,确实能把人写吐了。而如果其中某个颜色一旦更改,大把大把的时间都得浪费在这种本就可以避免的重构上。
不过吃一堑长一智,这个坑估计我现在不踩,后期也会踩到。


收拾收拾,前端的小船重新扬帆起航~
前端路漫漫,且行且歌。