问题 1:您好!很荣幸有机会有机会采访您,请简单地做个自我介绍吧。
很荣幸接受你们ITPUB的采访。
我先自我介绍一下,我叫蒋宏伟,是《React Native 新架构实战课》专栏的作者。
我是2015年开始转行开始做前端工程师的;在2018年的时候,担任了58RN项目的负责人,负责58集团内部React Native技术基础设施建设;在2020年,从单兵作战变成了小组长,负责了更多技术方向和业务方向。
带团队和单兵作战很不一样,单从技术层面讲,最关键的是定技术方向,你要对得起大家,别把大家带错路了,因此对类似于React Native新架构这类前沿技术的探索,也成了我的必修课。
问题 2:您在开始做React Native架构之前主要负责的工作是?
在2018开始负责58RN基建之前,也就是2016年和2017年,那时我主要是负责的是 RN 业务的开发,也深度参与了一些58RN相关基建工作。
之所以,老板让我来负责58RN基建,我觉得和我自己好奇心很强有关系吧。其实2015年刚刚入行的时候,除了扎实基础之外,也花了很多时间调研了React。要知道,那时候团队同学用的都是JQuery,并且还对兼容IE6有一定要求,React放在那时候就是非常新的技术了。
也正因为,在2015年对React有了一定研究,2016年团队上 React Native 项目时,我就被派去参与了相关基建工作的开发了;由于参与了React Native基建的开发,在2017年启动第二个React Native业务时,我就被派去独立负责业务开发了;在2018年正好有个机会,也就顺理成章地负责起了58RN的基建了。
问题 3:现在React Native 架构对于您所在的58带来了那些价值?这些价值会一直持续增长嘛?
这个问题挺有意思的,我认为React Native的价值其实分为两个方面,一方面是提升了用户体验,另一方面是降低了企业的成本。
首先,React Native相对于 H5 来说,是能提升用户体验的。
举个例子,我们有一个短视频的业务用的就是React Native开发的,但这样的短视频业务用H5是开发不了的,业内也很少有用H5开发短视频的,因为用H5体验太差了,解决不了复杂手势冲突和视频功能定制的问题。
但我们在React Native上的沉淀比较多,开发出来的短视频业务性能不比Native差,甚至还有公司中有团队主动把 Native短视频下了,替换成React Native短视频。因为React Native不仅体验好而且能够热更新,产品需求一天迭代好几次都没问题,这能让用户始终享用我们最新的、最好用的功能。
其次,React Native相对于iOS/Androd,是能降低企业成本的。
降低成本很好理解,一套代码运行两端嘛。开发React Native只要一套代码就行了,而开发iOS/Android需要两套代码,开发一套代码肯定比两套代码的成本要低一些嘛。而且我们内部有着丰富的React Native生态,很多功能直接拿来用就行了,又能进一步的降低研发成本。
最后,我相信React Native能持续的给用户、给公司带去更多的价值。现在可以肯定,React Native新架构的出现会让用户的体验变得更好,另外在我们内部使用React Native的App也越来越多了,最近一年又有5、6个App接入了58RN,这自然给公司带去了更多的价值。
问题4: 今年在React Native新架构落地之前有没有遇到记忆深刻的问题?如何解决的?
我认为最难的问题,就是把集成了React Native老架构的App,给升级到新架构。
升级的主要问题不是技术上的问题,而是工程上的问题,关键是要做好风险、成本和收益的权衡。
我从去年9月份就开始研究React Native新架构了,React Native新架构几乎把整个React Native底层都重写了,现在React Native为了兼容,底层有两套代码,既有新架构代码又有老架构代码。既然底层改动量这么大,贸然升级风险肯定也不小,所以得控制升级的风险。
当然,现在谈论如何升级其实有点早了,因为React Native新架构正式版还没有出来。今年4月新架构预览版出来了,我估计新架构正式版的发布可能要到今年年底了。在今年年底或者明年年初,会有一些想尝鲜的团队开始小规模的尝试,比如在一些没有历史包袱的App,或者一些用户量小的App上先试试。等明年年底,或许会有更多的团队和项目进行升级跟进吧。
现在,我们对升级的风险、成本和收益的整体评估其实心里大致有了个数,就是得耐心的等待,等待一个 Ready 的时机。
问题 5:React Native架构与同系列架构的区别是什么?React Native架构日后会成为这个技术方向的主流吗?
可以换一种描述吗?比如,对比跨端架构之间的区别,优劣等等。
不太懂“同系列”指的是什么,也不太懂“这个技术方向”指代的是什么。
如果指的是跨端方向,那么 React Native、小程序、Flutter 之间的区别很大,而且架构一旦定型了想改难度很大,所以不同的跨端框架的架构上可能很难趋同。
问题6:没有计算机基础的前提下,是怎样的契机促使您走进了这个领域?
初生牛犊不怕虎吧。
2014年底的时候,我在北京的一个好朋友告诉我,他做前端工资12k,而我当时的工资才4k,年轻人谁不想多赚点钱呢,于是就有了转行的冲动。自学一个月HTML和CSS基础后,觉得自己还行是这块料,就下定决心辞职,拜师学艺三个月,把JavaScript学完了,再找了一个月工作,就完成了转行。
现在想想,除了初生牛犊不怕虎的精神外,更重要的原因是赶上了个好的时代,自己也抓住了机会。2015年移动互联网刚刚兴起,前端人才匮乏,企业对前端岗位需求量又大,我面试了40+家公司,拿到3个不错的 offer,就进入了前端的技术领域。
问题 7:最后,您对技术人员未来职业路线选择是否有一些好的意见和建议?
我在技术领域工作年限其实也不长,也就七年,谈不上什么建议,我分享一下我的观察和思考,不一定对。
我认为,技术人员未来职业线路大概有三种:
- 第一种是,做了几年技术后,就对技术不感兴趣了。有的人选择回老家干份轻松的工作,有的人选择考公务员、做老师之类的。其实每个人都有自己喜欢的事情,回老家或者转行也是一件挺好的事。
- 第二种是,一直在某个技术方向上深耕,成为了技术专家。我身边的同龄人很多这样的例子,这些人手里有货,走哪都不慌。
- 第三种是,技术出身转去做产品、做管理和创业了。他们多是大我一轮的前辈,他们本身在技术领域就很厉害,又能把技术领域的成功经验复制到其他领域,创造更大的价值。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。