To be or not to be, that is the question. 这是莎士比亚的名作《哈姆雷特》中的名句。另一个类似的是在黑客帝国里面墨菲斯让尼奥选择的蓝色药丸和红色药丸
——其实,大部分的时候,我总是希望生活真的能有这么简单。
作为设计师和开发者的我们,每天面临的是下面这样的选择:
Sketch or Photoshop
SVG or Icon Fonts
Flat or Skeuomorphic (扁平 or 拟物)
Azure or Indesign
Grunt or Gulp or Webpack
SASS or LESS
NPM or Yarn
Native or Web
Wordpress or Drupal or Joomla or Typo3
Magento or Drupal Commerce or Ubercart
React or Angular or VUE or Ember
BEM or SMACSS or OOCSS
PHP or RUBY or NODE or PYTHON
在我们的Drupal主题范畴里面,这个列表还可以再加几个:
Panels or no Panels
Panels or Display Suit
Template Theming or Decoupled Headless Theming
Module or no Module
Base theme or no base theme
Views or no Views
Bootstrap or no bootstrap
Responsive design or multi theme
。。。。。。
对于初学者来说,感觉往往是这样的:
以上列出的那么多术语,除了Skeuomorphic之外,其他的你都应该听说过,如果没有,没关系,你以后也会听说的。
正是这些选择,定义了我们的工作、职能、效率和收入。把我们和各种300块钱”专业建站”的公司和团队区别开来——因为,我们每天做的选择和判断都是他们不会去考虑的问题,或者,等他们开始考虑这些问题的时候,我们又开始考虑别的问题了。
总是有一些关于Drupal主题“最优方案”或者“最佳实践”的讨论。很多初学者,CSS往哪里加、模板怎么覆写都没搞清楚,就在打听各种“更快捷”的主题制作方法——大概是武侠小说看多了,总觉得找到一本《葵花宝典》就能称霸武林。如果真有这样的一本宝典,官网文档里怎么没有呢?
我认为,在不同的情况和不同的项目需求中,最优方案往往是不一样的。因此,那种没有任何条件限制的“最优方案”都不会为Theming这项工作带来本质上的优化。
比如Panels,肯定有人喜欢有人恨,喜欢的能说出一堆道理,恨的也能说出一堆道理。但是,每个人的结论都是站在自己的角度出发的,角度变了,结论也就变了。很多时候,存在即是道理。小马过河的故事每个人都懂,但是实际生活中大部分的人都不记得。这个故事告诉我们,我们必须根据自己的实际情况去做判断,别人的结论只能当做参考。
因此,上面提到的那么多选择,比答案更重要的是你能够熟练掌握其中的大部分的术语及其所代表的技术。
就拿其中的第一个例子Sketch和Photoshop来说,无论前者比后者优秀多少、先进多少,在今后很长的时间里,两者都不会取代对方,因为他们各自都有所擅长的领域。而且几乎没有哪个用Sketch的设计师是不会用Photoshop的。设计师的工作核心在于能做出合格的设计而不是使用什么工具,用铅笔、尺子和圆规也能做出一流的设计图。
作为初学者,当我们遇到了上面的选择题,其实不必去纠结答案,用你会的那一个,如果都不会,就去学一个。
初学者千万不要去迷信“xx方案是最好的,做xxx只要yyy就够了”。前端还是一个很年轻的行业,新的行业标准,框架,库都不断在更新和增加,每18至24个月,前端都会比之前难一倍!这些变化使前端的能力更加丰富、创造的应用也会更加完美。所以关注各种技术,跟上快速变化的节奏,也是程序员必备的技能之一。
而这也是本篇内容的出发点,我们将跳出drupal的主题层,看看和主题相关的各个技术领域中,有哪些技术、工具和概念可以被我们拿来使用,用于优化我们的工作流程和工作结果。
和第一篇的基础内容不同的是,这一篇中所提到的内容,往往都是可有可无,可以被其它东西替代的——就好像上面提到的那些选择一样。我之所以把这些技术和概念拎出来讲,并不是因为他们比我没讲的东西更重要,而仅仅是因为我自己高兴。
因此,建议您根据自己的需要,选择性的阅读本篇的内容。我们不追求在本篇中找到一个“最优化”的解决方案,而是尽可能多的涉猎各种可能性,并把选择权交到我们亲爱的读者手中。
和第一篇不同的另一方面是,这一篇将以文字内容为主,视频教程将作为一个选项,在必要的时候才会录制。视频教程对于初学者学习操作步骤还是很有帮助的,但是想要继续提升自己的人,必须学会脱离视频,通过阅读文档和手写代码来达到目标。
希望您能在学习中有所收获并感受到“升级”的快乐。