10月30日星期六下午参加百度前端技术交流会,这是目前百度第一次对外开放的前端交流会,主题是《架构和基础化设施服务》。美团网的前端团队很快就要建立起来,所以正好去学习一下其他公司的先进经验。同一时间在新浪举办的web标准化交流会同样精彩,但只好忍痛错过了。

百度交流会第一个嘉宾是来自豆瓣的张克军,他分享的主题是《豆瓣前端团队的工作方式》。克军用交响乐团、摇滚乐队和爵士乐队来比喻三种不同类型的团队,理想的前端团队应该像爵士乐队一样,没有交响乐队那么死板,也没有摇滚乐队中的超级明星,每个人都是主角,每个人都可以把自己的激情和才华施展出来。

豆瓣技术部中有前端、产品、QA、算法以及平台五个并行的团队,但他们职能之间经常有交叉,比如说前端也可以参与到产品当中,产品也可以参与到QA。豆瓣的前端基础架构包括工具、系统、规范和流程四个大块,每部分还可以细分。

豆瓣已经是一个中等规模的互联网公司,从技术部门的划分就可以看出来,另外在流程方面,也加入很多正确决策和质量控制的保证。比如说他们前端会在自己本机搭建原型(prototype)开发环境,力求达到产品原型的高保真实现。QA会在开发环节中担任重要的职能,并严格按照测试用例来保证代码的质量。

第二个嘉宾是来自新浪博客的杨皓,他介绍了新浪博客RIA开发团队的前端架构。其中他提到了新浪博客在页面脚本的处理上,会根据页面id来合并脚本,这是一个值得借鉴的优化方式。

第三个嘉宾是来自腾讯搜搜的张勇,总结了搜搜前端架构方面遇到的挑战和他们解决的一些经验。他提到架构设计要以十倍规模为阶段,不要过度规划。要探索和开发适合自己的前端框架,前端编码要精雕细琢,要持续不断的优化。搜搜前端团队提倡敏捷开发,超过五天的需求一定要打散,需求要以细化到可以快速开发上线为目标。他们在曾经在去年花了一个月的时间进行页面重构,魄力之大,让人敬佩。

最后一个嘉宾是来自百度前端通用组的雷志兴,主题是《百度前端基础平台分享》。志兴的分享偏理论一些,如果经常写代码,会觉得他的总结非常精炼,几乎没有一个字可以删减。演讲文稿中的结论应该不是他一个人的成果,而是整个百度前端通用组的集体智慧。

前段时间看过百度前端基础架构的一些代码,当时觉得他们的思路非常奇怪,为什么粒度要分得这么细。现在终于明白这种做法正好满足了百度多变的特殊需求。在框架之中,他们很好的解决了自动管理依赖、安全和按需加载,同时保证了js文件最小化和很高的重用性。在此基础上建立起来的插件机制和按需组合控件特性是两个了不起的创新。

现在来看,淘宝玉伯他们自主开发kissy框架思路是正确的。如果一个公司足够大,产品线多而复杂,基础库和ui组件一定要自己搞。尽管这会投入非常多的资源,但这是公司在技术方面重要的长期投资,时间越长,回报率越高。试想每个产品线的团队都基于相同的库开发,不重复造轮子,产品线之间人员甚至可以频繁调动,效率提升节省的成本是极其可观的。

志兴的分享非常精彩,完全可以用惊艳来形容。在我看来,演讲中提到的每一条经验都字字如金。百度人的前端技术厚积薄发,终于开始显山露水。真的希望像百度这样技术雄厚的互联网企业能够大胆的开放的走出去,对互联网业界产生积极的影响,其实同时对百度品牌也是大的推动。前端开发是新兴的行业,理念更新,更趋于开放,几乎所有在浏览器执行的代码都是open source的,应该走在前面。

前端行业比较年轻,在公司经常处于一个尴尬的容易被忽视的地位,尤其是老牌的互联网公司。改变这种状况,不要指望其他人,要行业自救。要让BOSS看到我们价值所在,让BOSS去推动事情。在公司内部要积极争取更多的资源,对国内前端开发行业就是非常杰出的贡献。

“技术改变世界”是我的技术价值观,也是我人生的信条之一。这么些年来,我们可以看到,技术在改变互联网,而互联网在改变世界。如果我们能对前端开发行业做出哪怕一点点努力,那也是改变世界的动力,这也正是我们技术人人生意义的一部分。

纵使十年不将军,不可一日不拱卒。人生还很长,慢慢来吧。

ps: 多次听到百度前端代码框架有开源的计划,期待快点发布吧。

更新:

  1. 百度前端技术交流会视频
  2. 百度代码框架已经开源,项目名称为Tangram(七巧板),请访问http://tangram.baidu.com