問題 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:最後,您對技術人員未來職業路線選擇是否有一些好的意見和建議?
我在技術領域工作年限其實也不長,也就七年,談不上什麼建議,我分享一下我的觀察和思考,不一定對。
我認為,技術人員未來職業線路大概有三種:
- 第一種是,做了幾年技術後,就對技術不感興趣了。有的人選擇回老家幹份輕鬆的工作,有的人選擇考公務員、做老師之類的。其實每個人都有自己喜歡的事情,回老家或者轉行也是一件挺好的事。
- 第二種是,一直在某個技術方向上深耕,成為了技術專家。我身邊的同齡人很多這樣的例子,這些人手裡有貨,走哪都不慌。
- 第三種是,技術出身轉去做產品、做管理和創業了。他們多是大我一輪的前輩,他們本身在技術領域就很厲害,又能把技術領域的成功經驗複製到其他領域,創造更大的價值。