一般,Harry Roberts 所说的 DRY (Don't repeat yourself) 常常被曲解成永远不要重复作通一件事。 但实际上这是不现实的,并且经常致使过度抽象,用太多的精力去过度优化代码,最后得不偿失。css
过分抽象化代码有多痛苦,在 语义篇 已经讲过了,Mixins 也是一个问题。编程
同时咱们要去考虑抽象, 咱们怎么办呢?工具
一种作法是用逗号分隔符实现,例如:性能
.someThing, .anotherThing { color: red; }
这就是一个简单的复用技术,关于其余的复用技术,咱们会在模块篇,状态篇,修饰符篇讨论。优化
就像工具类同样,修改 mixins 后会自动做用到全部的实例。code
同时 mixins 容易导致多个规则,多参数和多条件。这致使后期难以维护。orm
为了下降复杂度,咱们会建立小粒度的 mixins ,例如,做用红色文本 (red text) 。期初开起来不错,可是这并不是是 red mixins 声明,更像一个规则自己。color: red?对象
若是咱们须要在多个地方更新规则,搜索和替换就很是必要了,此外,当 red mixin 变为 orange 时,其名称都要更新。图片
因此,mixins 很不错,咱们应该使用它,可是要明智地使用它。ip
若是 css 超过了 100kb, 再进行盲目的 DRY ,收效就不是很大了,咱们要作的就是使 css 更小,才能使 HTML 更强大。
压缩图片能显著提升性能。这就是我想表达的,解决其余形式的冗余能够提升维护性和性能。
例如,若是尝试复用 float:left,就像在不一样的 Javascript 对象中复用变量名,这也是不可取的。
DRY 若是致使过分抽象和过分编程, 咱们会难以维护。全部,咱们不该该痴迷它的形式,而应该关注于复用具体的模块。我会在之后章节中说明这些。