七年时间,从技术小白成为跨端专家

2022-05-19 00:00:00 架构 技术 开发 升级 基建


问题 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 项目时,我就被派去参与了相关基建工作的开发;也因为参与了基建工作的缘故,在 2017 年启动第二个 React Native 业务时,我就被派去独立负责业务开发了;在 2018 年正好有个机会,也就顺理成章地负责起了 58RN 的基建了。

问题 3:现在React Native 架构对于您所在的58带来了那些价值?这些价值会一直持续增长嘛?

这个问题挺有意思的,我认为价值其实分为两个方面,一方面是提升了用户价值,另一方面是降低了企业成本。

首先,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 新架构的问题,升级的问题不是技术上的问题,而是工程上的问题。

升级的关键是要做好风险、成本和收益的权衡。

我从去年 9 月份就开始研究 React Native 新架构了,React Native 新架构几乎把整个 React Native 底层都重写了,现在 React Native 为了兼容,底层是既有新架构代码又有老架构代码。既然底层改动量这么大,贸然升级风险肯定很大,所以得控制升级风险。

当然,现在谈论如何升级其实有点早了,因为 React Native 新架构正式版还没有出来。今年 4 月新架构预览版出来了,我估计新架构正式版会发布可能要到今年年底了。在今年年底或者明年年初,会有一些想尝鲜的团队开始小规模的尝试,比如在一些没有历史包袱的 App,或者一些用户量小的 App 上先试试。等明年年底,或许会有更多的团队和项目进行升级跟进吧。

现在,我们对升级的风险、成本和收益的整体评估其实大致已经有了,就是得耐心的等待,等待一个 Ready 的时机。

问题 5React Native架构与同系列架构的区别是什么?React Native架构日后会成为这个技术方向的主流吗?

可以换一种描述吗?比如,对比跨端架构之间的区别,优劣等等。

不太懂同系列指的是什么,也不太懂这个技术方向指代的是什么。

如果指的是跨端方向,那么 React Native、小程序、Flutter 之间的区别很大,而且架构一旦定型了想改难度很大,所以不同的跨端框架的架构上可能很难趋同。

问题6:没有计算机基础的前提下,是怎样的契机促使您走进了这个领域?

初生牛犊不怕虎吧。

2014年底的时候,我在北京的一个好朋友告诉我,他做前端工资12k,而我当时的工资才4k,年轻人谁不想多赚点钱呢,于是就有了转行的冲动。自学一个月HTMLCSS基础后,觉得自己还行是这块料,就下定决心辞职,拜师学艺三个月,把JavaScript学完了,再找了一个月工作,就完成了转行。

现在想想,除了初生牛犊不怕虎的精神外,更主要的原因是赶上了个好的时代,自己也抓住了机会。2015年移动互联网刚刚兴起,前端人才匮乏,企业对前端岗位需求量又大,我面试了40+家公司,拿到3个不错的 offer,就进入了这个行业。

问题 7:后,您对技术人员未来职业路线选择是否有一些好的意见和建议?

我在技术领域工作年限其实也不长,也就七年,谈不上什么建议,只是我的观察和思考,不一定对。

我认为,技术人员未来职业线路大概有三种:

             种是,做了几年技术后,就对技术不感兴趣了。有的人选择回老家干份轻松的工作,有的人选择考公务员、做老师之类的。其实每个人都有自己喜欢的事情,回老家或者转行也是一件挺好的事。

             第二种是,一直在某个技术方向上深耕,成为了技术专家。我身边的同龄人很多这样的例子,这些人手里有货,走哪都不慌。

             第三种是,技术出身转去做产品、做管理和创业了。他们多是大我一轮的前辈,他们本身在技术领域很厉害,又能把技术领域的成功经验复制到其他领域,创造更大的价值。

相关文章