微信号:frontshow

介绍:InfoQ大前端技术社群:囊括前端、移动、Node全栈一线技术,紧跟业界发展步伐。

专访程墨:聊聊React的那些事儿

2018-06-11 18:30 程墨
策划|覃云
嘉宾|程墨

React 从 2013 年开源至今,一路过关斩将,终成前端三大框架之一。但对很多初学者来说,他们很容易陷入焦虑之中,因为他们不知道应该从何学起,也不知道 React 是否有前景。对此,InfoQ 邀请了 Hulu 资深开发工程师程墨来跟我们聊一聊关于 React 的那些事儿。

程墨老师也在即将到来的 GMTC 大会上做技术分享,喜欢程老师的同学不要错过哦。

在 Hulu 内部,React 有哪些应用场景?

Hulu 在 React 上投入很大,历史上 Hulu 的网页是基于 jQuery 和 backbone 的技术栈开发,从 2016 年开始,Hulu 尝试采用 React 开发网站,从 2017 年开始,所有新开发的网页都基于 React。除了对外网站,Hulu 内部网页应用工具也在逐渐向 React 迁移。

Hulu 在使用 React 的过程中踩过哪些坑?

因为重度使用 React,我们几乎踩过所有开发者都会踩的坑,最大的一个坑是关于 React 的同构处理,我们的确走了很大一段弯路,因为 Facebook 自己也并不使用 React 来做服务器端渲染,所以对于同构的处理业界也一直在摸索。

归根结底,React 并不是一个严格意义上的“框架”,React 非常中立,它没有规定你怎么组织建构你的应用,这样留给了很多空白给开发者去填补,而填补这些空白有很多选择,在选择的时候难免会犯一些错误,重要的是及时发现某些技术选择不适应自身需要,然后做对应的调整。

开发者在选择框架时,总是不知道该如何选择,对此,您有什么建议?而 React 更适合哪种项目?

我对开发者只有一点建议:哪个框架自己最熟悉,就用哪个框架,千万不要盲目跟风,不要在实际产品中应用自己并不熟悉的技术。

原因很简单 ,任何框架都有自己的优势和缺陷,不存在十全十美的框架,一个框架不管别人吹得有多厉害,也未必完全适合你自己的产品,使用自己熟悉的技术是最靠谱的方法。

当然,听到我这话,肯定会有人蹦出来说:“不用新技术那还算合格工程师吗?不学新技术还能进步吗?”

首先,合格工程师应该是用最可靠的方法来满足实际需求,新技术未必是可靠的技术,即使对别人可靠,也未必代表你自己能够掌控得了;另外,学习新技术和应用新技术并不矛盾,在工作之余可以任意学习新技术,但是不要仓促草率地把新技术用到实际工作中,毕竟,我们的产品可是关系到个人和公司的声誉。

对于“React 更适合哪种项目”这个问题,我觉得更应该问“React 更适合哪种团队”,因为 React 能解决的问题,用 Vue 和 Angular 都能够解决,在我看来,这些技术并没有高低之分,主要还要看团队更熟悉那种技术。

React+redux+saga 这样的学习曲线非常陡峭,0 基础怎么上手进行学习?

React 和 Redux 的学习曲线并不算陡峭,我写了本书《深入浅出 React 和 Redux》,已经把这两种技术讲得很清楚了,真的不是很难。

至于 Redux-Saga,的确难了一点点,不过要和 RxJS 相比,那还只是小儿科,我还写了一本《深入浅出 RxJS》,尽我所能把 RxJS 这门技术讲得通俗易懂。

话说回来,软件开发是要为真实需求服务,并不是说一个产品用了 Saga 或者 RxJS 就更牛,用户感觉不到你用了什么技术,用户只能感觉到你的产品功能好不好用,性能是不是够快,开发人员一定要记住这一点,不要盲目追求应用什么技术,要根据实际需要去选取技术,实际上,我觉得大部分团队根本用不上 Saga 和 RxJS 这样的技术。

如果非要说 0 基础如何上手,那就是找个有真实需要的应用,动手写代码吧。

你怎么看 React 的前景?它还有哪些地方需要进一步改善?

我个人非常看好 React,因为 React 对用户界面开发有一个很好的抽象,能够让前端开发更加规范,此外,Facebook 对 React 的投入很大,在他们自己的网站中也重度使用 React,之前还有不少人担心 licence 的问题,现在 React 已经是使用 MIT licence,所以这也不再是问题,我相信使用 React 的团队和个人肯定会越来越多。

很长时间以来,React 自身都不怎么涉及状态管理,而网页应用一个重要部分就是状态管理,尤其是涉及到 IO 操作的数据获取,所以使用 React 不得不使用其他框架来做这方面工作,我一直希望 React 在这方面能够提供一个比较好的方案,不过,最近 React 也提出了 Suspense 的概念,可以看做数据管理上有一个重大进步,我很期待 React 能够在继续完善状态管理的功能。

您说自己曾面试过上百人,那么您认为(前端)开发者从写简历到面试最需要注意哪些问题?您对(前端)开发者求职有什么建议?

实际上我不是面试过上百人,而是面试过数百人,这其实也并不是一个什么了不起的数字,只要你在这个行业待的时间足够长,迟早也会面试这么多人。

经常有人问我写简历和面试应该怎么应对,其实技巧很简单,了解你所申请的企业,了解对方需要什么特质的人才,然后为这个需要定制自己的简历,突出自己的特点,让对方觉得你适合他们的需要,在面试的过程中也是一样,展现自己满足对方需要的特质。

此外,很多前端开发者都没有意识到,前端工程师也是工程师,首先要是一个合格的工程师,然后才是一个前端工程师,如果你缺乏基本的计算机基础知识,缺乏解决问题的工程化思维,那用过多少前端框架会多少种编程语言,在用人单位眼里都不会显得很有竞争力。我建议前端开发者一样要注重计算机基础知识的学习,这样路会越走越宽。

  嘉宾简介

程墨,Hulu 资深开发工程师,互联网行业老兵,曾服务于摩托罗拉、微软、雅虎,云鸟配送联合创始人,知乎专栏《进击的 React》作者,著有《深入浅出 React 和 Redux》《深入浅出 RxJS》两书。

在即将到来的GMTC大前端技术大会上,程墨老师将给大家带来《Hulu基于React的框架演进》的主题演讲,感兴趣的同学不要错过哦。

 活动推荐

GMTC全球大前端技术大会携手顶级共创伙伴:APICloud企业互联网化生态平台,历时半年筹备,为大家梳理了目前大前端领域的最新动态,并邀请到了来自Google、Twitter、Instagram等国外一线前端专家前来分享他们的前端前沿技术和最佳实践,更有iOS社区大神Mattt、Apollo GraphQL负责人等大牛的助阵,可谓干货满满,不容错过。

目前大会倒计时门票热销中,团购更优惠,购票咨询:18514549229(同微信)戳阅读原文或识别下图二维码,了解更多干货详情!


 
前端之巅 更多文章 引擎V8推出“并发标记”,可节省60%-70%的GC时间 为什么前端开发这么不稳定? 你需要了解的23种JavaScript设计模式 Node之父ry发布新项目deno:下一代Node 谷歌AMP和百度MIP,你选哪个?
猜您喜欢 Go语言的2017年回顾及展望 Java 9 正式发布! 打飞的的人用什么APP?QuestMobile2017年中国航空出行人群洞察报告 2016年9月12日,今日全球能源资讯(油价下跌) 【视频+音频】测试开发必备的27个技巧(下)