1.2 本书的线索
技术需要依靠产品来落地和彰显它的威力,否则再强悍的技术也只是象牙塔上小部分人的玩具而已。这就好比3A游戏大作对于游戏引擎的重要性(《孤岛危机》之于Cryengine,《战争机器》之于Unreal)。再有,“纸上得来终觉浅,绝知此事要躬行”,对古人如此,对程序员更是如此。学习技能和提升技能的最佳途径只有实践,开始使用学到的技术,并且遇到书本上从来就没有提及的困难,这才是进步的开始。
如果整本书每一章阐述的知识点相互独立,也就不能称之为书,至少不能称之为技术书,只能算作是某人博客的文章选集。所以书是有线索的,线索将每一章的内容联系起来,形成一个知识体系。例如,响应式图片与性能调优看似不相关,但过度地追求大而全的图片的解决方案,注定要用降低性能为代价。
我非常同意alistapart.com上的一篇文章《Building to Learn》[2] 中的一些观点,也深有感触:用技术做一些你感兴趣的事情,这是学习的最好方式。
综合以上原因,我们的书也需要一条线索,需要活生生的产品来将我们的知识付诸实践。这条线索就是完成一个可以应用在Jekyll(静态博客网站生成工具)上的响应式文章详情页。在每一章的结尾,我都将把这一章学到的技术运用到这个博客页面的制作过程中,来取代非响应式下的解决方案。读者读到书的结尾,这个页面也就开发完成了。读到这里的读者可以直接访问我的个人技术博客 http://qingbob.com来先睹为快,也可以访问本书在GitHub上的源码地址 https://github.com/hh54188/responsive-web-design-tutorial获取本书涉及的所有代码。
因为篇幅有限,所以整本书的主题是“开发”而不是“设计”。也就是说,我们只负责不遗余力地实现设计稿中的需求,而不问为何这样设计。要知道关于响应式设计同样也是一个庞大的课题。我相信已经有更好的文章和书描述了响应式产品、响应式交互式设计和移动优先,在本书中我只会偶尔提及。