[关闭]
@qinyun 2018-06-11T11:44:20.000000Z 字数 2317 阅读 2020

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

未分类


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》两书。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注