引言:现在的用户对于前端越来越倚重,人们越来越多地用网络分享信息量大、功能性强的应用。因此,对于开发者来说,前端的责任越来越重大,开发者面临的困难也越来越大。甚至原来一些在服务器端的工作也被迁移到前端来完成。近日,InfoQ 的编辑专访了在前端开发具有丰富经验的石川,在这篇文章中,他给广大的前端开发者一些建议和经验分享。
InfoQ:我们看到,这几年有一个趋势,就是大量原本在服务器端的工作——尤其是展现层的工作——被转移到了前端,由浏览器来处理了。HTML5 不仅是 HTML 语言 +CSS+JS,还包括了离线存储、应用缓存、文件系统等大量原本操作系统才能享受到的资源。对于这样一个趋势,您是怎样看的?您觉得这个趋势背后的推动力是什么?
石川:我觉得最大的推动力还是用户的浏览器使用趋势。现在人们用网络分享大量的信息,分享 PPT,设计文件,阅读电子书,看视频,阅览高清图片,存储办公文件等,这些都是信息量大、功能性强的作业,所以自然会不断增加前端功能的复杂性。
InfoQ:由于被赋予了更多权限,前端的责任也更重大了。现在,只会玩几个框架则已经无法满足新的业务需求了。您建议现在的前端工程师在哪些方面去进行积累?包括语言、工具、框架、思维方式等方向,都请您谈谈。
石川:第一语言。多研究传统语言,例如 C++,肯定会有助于你获得灵感,特别是现在前端的开发取代部分以前桌面语言开发的功能。就 HTML5 来说,最好订阅 W3C working group 的群发邮件,这样可以吃透语言的特性,增强交流。
就我个人而言,我有每天读完一本书的习惯。科技方面的书没有那么频繁的出版,所以每周读一本科技的书也是对语言系统学习的好帮助。
第二工具。每天的生活是用秒计算的。工具上来讲,应该尽量利用插件,其带来的好处节省重复性的工作是非常重要的。并且,尽量每天花 5 分钟了解下:所用工具是否推出了什么更新版本;第三方推出了什么所用工具的插件;有什么同类工具,对比是否有什么好处;积少成多,慢慢地这样大大增加了开发效率。
第三框架。在 github 上订阅一些常用框架的信息,了解最新的框架改动。国外优秀的开发者都是挂在 IRC 上的,跟着他们一起编写框架,这样可以学到很多东西。如果在工作中,使用框架,发现自己有更好的解决方案,就及时提交 pull request。
第四思维方式。就思维方式而言,真的是要对产品由衷的热爱。其实我觉得如果条件允许,最好拿一些初级的网站进行练手,包括从文案、设计、开发都系统地做一下。这样做更容易发现问题。
InfoQ:对于 Java 开发者,可能 Eclipse 是一个常规的开发工具;对于 Ruby 开发者,可能 RoR 是首先会考虑到的一个框架。使用常规工具和框架虽然不一定在任何场景下都最优,但有很多的好处。对于前端而言,目前 jQuery、Bootstrap 算是业界非常通用了,不知道开发工具这方面现在主要用什么?
石川:Sublime 应该算是一个比较通用的编译器,如果是编辑一个浏览和网站的话,这个工具本身功能已经足够好。再加上对插件的支持和强大的第三方插件开发,基本解决了能想到的重复型工作。
InfoQ:接上一个问题,现在国内的几个大互联网公司有一个情况,就是他们不用通用的 jQuery、Bootstrap 这样的工具,而是自己搞一套工具出来,这几家公司内部的工程师对此也有不少抱怨。您对于这样一个情况的看法是什么?
石川:这个问题我们可以从两方面看:
一方面,从国内行业横向对比的角度来看。平心而论,能够真的花心思从头到尾独立研发的精神真的很稀缺。比如很多实业,都是一个“壳儿”,技术都是国外的,在销售、渠道、终端为王的时代,很少有人愿意从头到尾仔细做一件事了,所以国内互联网企业的工程师愿意花时间开发一套框架、工具这种精神,在大环境下,还是很可贵的,值得尊敬。
另一方面,纵向来看国内外的互联网行业。问题关键点可能主要在于开源本身是一个“众创”项目,而中国的开源项目没有和国外的工程师互动,这里面有语言、文化和习惯的问题。所以我觉得国内的公司推出一些独立研发的框架不是问题,问题是 1. 尽量用一个独特的切入点,在工作中的某些问题积累出的一套解决方法开发出框架;2. 怎么更高调的在国际开发者圈宣传出去,让国外开发者也了解并加入进来。
InfoQ:越来越重的前端在带来了好处的同时,也带来一些问题,例如,移动端的浏览器还没有 PC 浏览器那么给力,前端写的重了,在手机上很难用起来。对于这一个问题,您建议采用什么样的短期处理方案和长期处理方案?
石川:无论长短期,都要根据产品来看,要是通过产品或后台数据分析,得出结果是来自移动端的客户占有很大比重,条件允许的情况下,最好给移动端一套不同的 CSS 和 JS。这个用现有技术已经可以很容易从前端或后端检测用户使用的操作系统,如果发现用户使用的是手机浏览器,加载一套不同的 JS 和 CSS,这样不仅是考虑速度,更是根据用户体验的不同来处理这个问题。
嘉宾介绍:
石川,一个出色的前端开发框架 HTML5 Boilerplate 项目的核心成员,个人著作《HTML5 移动 Web 开发实战》。现在是北京喜感信息咨询有限公司的运营经理。曾经在 2012 年接受过 InfoQ 的采访,见《专访 HTML5 Boilerplate 项目核心成员——石川》
评论