SDCC 2015前端专场札记:Facebook、百度、腾讯、美团、饿了么等互联网公司的前端实战

本文主要是介绍SDCC 2015前端专场札记:Facebook、百度、腾讯、美团、饿了么等互联网公司的前端实战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SDCC 2015前端专场札记:Facebook、百度、腾讯、美团、饿了么等互联网公司的前端实战

发表于 2015-11-27 14:14| 682次阅读| 来源 AdMaster| 1 条评论| 作者 刘越凡
SDCC 札记 前端
width="22" height="16" src="http://hits.sinajs.cn/A1/weiboshare.html?url=http%3A%2F%2Fwww.csdn.net%2Farticle%2F2015-11-27%2F2826342-SDCC&type=3&count=&appkey=&title=SDCC2015%E4%B8%AD%E5%9B%BD%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E8%80%85%E5%A4%A7%E4%BC%9A%E5%B7%B2%E6%88%90%E5%8A%9F%E9%97%AD%E5%B9%95%EF%BC%8C%E4%B8%BB%E5%8A%9E%E6%96%B9%E6%80%BB%E8%AE%A1%E9%82%80%E8%AF%B7%E4%BA%8695%E4%BD%99%E4%BD%8D%E6%BC%94%E8%AE%B2%E5%98%89%E5%AE%BE%EF%BC%8C%E4%B8%BA%E5%8F%82%E4%BC%9A%E8%80%85%E5%A5%89%E7%8C%AE%E4%BA%8610%E4%B8%AA%E4%B8%BB%E9%A2%98%E6%BC%94%E8%AE%B2%EF%BC%8C9%E5%A4%A7%E6%8A%80%E6%9C%AF%E4%B8%93%E5%9C%BA%E8%AE%BA%E5%9D%9B%E5%8F%8A5%E5%9C%BA%E7%89%B9%E8%89%B2%E6%B4%BB%E5%8A%A8%E3%80%82%E6%9C%AC%E6%96%87%E6%98%AFAdMaster%E5%89%8D%E7%AB%AF%E9%AB%98%E7%BA%A7%E5%B7%A5%E7%A8%8B%E5%B8%88%E5%88%98%E8%B6%8A%E5%87%A1%E5%8F%82%E5%8A%A0%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91%E4%B8%93%E5%9C%BA%E7%9A%84%E5%90%AC%E8%AF%BE%E6%9C%AD%E8%AE%B0%EF%BC%8C%E4%BB%A5%E9%A3%A8%E8%AF%BB%E8%80%85%E3%80%82&pic=&ralateUid=&language=zh_cn&rnd=1448710407183" frameborder="0" scrolling="no" allowtransparency="true"> 摘要:SDCC2015中国软件开发者大会已成功闭幕,主办方总计邀请了95余位演讲嘉宾,为参会者奉献了10个主题演讲,9大技术专场论坛及5场特色活动。本文是AdMaster前端高级工程师刘越凡参加前端开发专场的听课札记,以飨读者。

【编者按】11月21日,为期三天的 SDCC2015中国软件开发者大会成功闭幕,主办方总计邀请了95余位演讲嘉宾,为参会者奉献了10个主题演讲,9大技术专场论坛(80余场技术演讲),另外还有5场特色活动。另外,据官方统计参会人数高达1067名(不含工作人员)。

其中20日的前端开发专场,现场听讲人数一度爆满,而没有机会亲临现场的童鞋们,我们特邀请了业内专家、与会者分享他们的听课感受及他们眼中的前端专场。以下是来自AdMaster前端高级工程师刘越凡参加前端开发专场的听课札记,以飨读者。

以下是刘越凡的听课札记:

Facebook前端工程师ShihChi Huang(黄士旗):Why React matters/scale

来自Facebook的 ShihChi Huang(黄士旗)分享的内容更侧重于知识普及,从几个核心技术要点讲解了一些内容。

  1. UI = f(state)React 的 render() 函数便是其中的 f,将state渲染成Virtual DOM,Virtual DOM被React渲染成真正的DOM。我们不需要再关心DOM是如何变更的,我们只需要将我们想渲染的东西告诉 React,然后重新渲染Virtual DOM,它会自动帮你把UI的改变渲染到真正的DOM上。
  2. Predictable同样的input应该返回同样的output。UI在相同state的条件下,应该渲染出相同的界面。
  3. ImmutableVirtual DOM会小限度的修改DOM,但是有时候还是不够,通过在 shouldComponentUpdate 阶段比较 state,我们可以更精细的控制component 是否渲染,但是这样就遇到一个问题,javascript 中对比两个对象有先天性不足,React 社区得到 clojure 的启发,引入了 immutable 数据,即函数式编程中的不可变数据,我们就放心的对对象进行任意操作,进行简单对比就可以判断出 state 有没有发生变化,是否需要渲染。React 吸收了很多函数式编程的思想,组件的形式也是函数式的用法。
  4. Flux最后还提到了flux ,单向数据流,官方的flux还比较简陋,只提供了思想,有很多不错的第三方实现,其中 Redux 目前比较受欢迎。


Strikingly CTO、联合创始人郭达峰 : React.js in Strikingly

Strikingly的CTO 郭达峰,之前在论坛上有过一些交流,这次终于见到真人了。

达峰分享的侧重点在于实践,分享了很多 Strikingly 使用 React 过程中积累的经验。

  1. React 与 第三方库的融合使用 React 的时候会遇到一个问题,有现成的 jQuery 的插件,但是不确定是否能使用在 React 中,用 React 重新实现的话可能又要花费大量的精力。达峰用一个 jQuery 插件 Sortable 举例,将其封装成了一个 React component,使用时不仅能修改 DOM 也会更新 state 。感觉他对于 React 的态度比较理性,不是原旨主义,不追求所有的东西一律 React 化,而是去融合,这一点我很赞同。
  2. Lazy load component利用 webpack 的特性实现 js 文件的按需加载,达到的最终效果是需要渲染某个 component 时,才去请求对应的 js 文件这一点对于被 SPA js 文件过大困扰的人很有诱惑力。grunt 和 gulp 现在的问题是需要自己组装大量的插件,插件的质量也是参差不齐,插件不好用的时候,自己就要去折腾,去砍树之前,需要自己做把刀。webpack 配合  React Hot Loader 还能实现代码热插拔,开发效率上也能提高很多,有时候等 browserify 编译其实也挺痛苦的。
  3. Container component划分特定用途的 component,之前有类似的使用,但是没有接触过这样明确的概念behaviour Container => Sortable component 动作UI Layout Container => SplitPane component 布局Data Container => 为 pure component 提供 state
  4. Global state object这是我最感兴趣的一个,可以用 Global state object 将页面完全还原,前端开发中 debug 是个很纠结的问题,有些 bug 很难重现出来,但是如果能复制出一摸一样的页面,这个问题就简单多了,当测试人员/用户遇到问题时,自动将当时的 state 发送给开发人员,开发人员利用 state 还原现场,非常有助于定位 bug。


    美团技术终端组高级工程师吕伟  :前端分布式编译系统的设计

    吕伟分享的内容是前端分布式编译系统,有种鸟枪换大炮的感觉。

    大型系统的分布式编译挺常见,但前端代码倒真是第一次听说,目前开发的产品用的是grunt + browserify, 虽然代码并不是很多,但也会有个不长不短的编译时间, 也是有点难受。同时我非常好奇美团的前端代码究竟是有多少,都到了分布式编译的地步。 核心思想还是共享运算资源,具体原理没有细听,目的是取代webpack 和 browserify, 正式投产后会完全开源,github见。


    饿了么资深前端架构师兼大前端团队负责人林建锋  :ELE.ME是如何运行的

    来自饿了么的林建锋也就是sofish鱼哥分享的内容是饿了么在前段工程化上的一些实践。

    1. 前后端分离这个不需要解释。Rest API,Nginx 托管静态资源。
    2. 开发与发布构建了一套成熟的开发/发布体系,而且封装成了简单的命令,甚至还做了一个界面化的 nginx 配置,不过手写 nginx 配置应该算是前端的必备技能了吧?
    3. 优化使用了  Rest api batch 的做法,将一批请求包括多个API调用合并成一个HTTP请求,减少 HTTP 连接数,有人质疑到合并后会不会影响到页面的分步渲染速度,但据说并不会,因为浏览器对同一域下并发连接数是有限的,一次太多的 http 请求过去也是4个4个的走,所以影响并不大。


    百度EFE团队资深工程师,百度ECharts产品工程师乔刚:前端数据可视化实践

    Echarts团队的乔刚分享的内容是数据可视化的一些案例和 echarts v3.0 的一些新特性。

    目前的产品中正在使用 echarts,可以说真的是非常熟悉, 算是一个挺不错的图表库,简单易用,图表种类繁多, 虽然不是 svg 但也支持很多交互事件,之前文档组织的不够清晰, 但自从有了那个配置参考之后方便了很多,当然也存在一些不足, 我比较看重的是移动端展现的问题,几乎挤成一团,移动端的产品只好换成 chartjs 展现,希望能在接下来的 v3.0 中有所改善。


    百姓网资深前端工程师贺师俊:如何制定和实施ES6+代码风格和质量标准

    百姓网的贺师俊,也就是前端圈内的老司机hax,他提到了coding style 的制定和实施,确保实施的关键点在于工具,这一点很有体会, 如果团队里的开发工具都是千奇百怪的,coding style 的统一就更难保证了。我们的团队在开发工具的统一上做的比较好,统一使用 Vim,连接到远端机器编写代码, 只要手里有一台有键盘、能联网的机器,就能进行开发。

    贺老一直在力推ES2015,这次还分享了一些使用中的一些疑难问题,

    • arrow VS function,
    • async VS generator,
    • const VS let,
    • template VS 安全,

    已经开始使用 ES2015 的同学应该都有一些自己的体会。快结束的时候还不忘引发圣战,SPACE VS TAB。


    腾讯互联网增值业务前端团队负责人钟鹏飞  :Hybrid模式的深度融合

    腾讯的钟鹏飞分享的内容是腾讯手机QQ H5优化与监控自动化建设。这部分由于临时有事,只听了一部分,有些遗憾。hybrid 也是最近很火的一个话题, 具有native app 的系统福利,又有 web app 的开发效率。 由于之前这方面接触的不多,学习到了一个新的知识,hybrid app 启动中 Webview 的耗时占比很大。


    总结

    说实话,这次参会主要还是奔着React 来的,然后还看到了很多前端工程化方面的实践, 收获颇丰,解决了之前的一些疑惑, 也看到了一些方向。

    React 打开了前端开发的新的思路, Virtual DOM,组件化,State 数据流,函数式编程;webpack 使代码编译变得更加简单; 美团的分布式编译让人觉得前端开发正在向客户端开发靠拢;其实前端开发的演化也是在不断借鉴客户端开发的经验, 毕竟我们在开发的已经不是一个单调的 page,而是一个功能丰富的 application。

    也许有一天,当前端把客户端走过的路再走一遍的时候,前端工程体系会变得成熟完善, 我们能把更多的时间集中在真正的开发中。

    这篇关于SDCC 2015前端专场札记:Facebook、百度、腾讯、美团、饿了么等互联网公司的前端实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



    http://www.chinasem.cn/article/671109

    相关文章

    网页解析 lxml 库--实战

    lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

    Vue3 的 shallowRef 和 shallowReactive:优化性能

    大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

    百度/小米/滴滴/京东,中台架构比较

    小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

    这15个Vue指令,让你的项目开发爽到爆

    1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

    【 html+css 绚丽Loading 】000046 三才归元阵

    前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

    【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

    【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

    性能分析之MySQL索引实战案例

    文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

    C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

    哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

    滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

    咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

    计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

    🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能