返回開發人員最新消息

認識開發人員:Meta React 專題特輯 (Andrea Ferrando)

2023年4月27日發佈者:Navyata Bawa

本文由 Meta 軟件工程師 Andrea Ferrando 和 Meta 開發人員大使 Sean Keegan 合作撰寫。

今天,我們有幸訪問 Meta 的前端工程師 Andrea Ferrando。他的團隊負責研發廣告管理員應用程式。用戶可透過此應用程式建立、編輯和監察廣告宣傳活動。

請先自我介紹。

我是軟件工程師 Andrea Ferrando,開發出色數碼產品和提供優質用戶體驗是我一直以來努力的方向。我目前負責研發廣告管理員應用程式 (AMA)。廣告客戶可透過這款應用程式來在所有 Meta 平台上建立、監控和管理宣傳活動。這款應用程式可提供全面的解決方案,讓廣告客戶接觸目標廣告受眾,因此對正在尋求有效廣告刊登方法的用戶來說是非常重要的工具。我負責研發 AMA 剛好滿一年多,已經能夠對其開發工作產生確切影響。

啟發我採用 React Native 的原因,在於它有潛力為 iOS 和 Android 用戶帶來順暢而有效的用戶體驗。React Native 的元件可重複使用,而且能夠輕鬆管理狀態,因此可以快速而有效地建立優質應用程式。這個架構的另一個強大優勢,在於我們僅需撰寫一次程式碼就能在多個平台上執行,這讓我們能夠接觸更大規模的用戶群,並在所有裝置上提供一致的體驗。

您有多常使用 React?

我每天都在使用 React,這已是我工作中不可或缺的一部分。身為 Meta 顧客導向型產品的技術主管,由管理端對端產品開發、確立方向以至與跨職能團隊合作方面,我都肩負更高層次的職責;但與此同時,我也有機會透過研究關鍵功能和作出實際貢獻,積極推動 AMA 發展。

您在 Meta 處理過哪些使用 React 的專案?

自從加入 Meta 之後,我的工作基本上只專注於廣告管理員應用程式。我們的團隊負責產品的端對端部分,其中還牽涉到開發後端功能,但 AMA 是我唯一參與的 React 應用程式。

為什麼您的團隊選擇使用 React?使用 React 如何幫助您和團隊達成開發目標?

廣告管理員應用程式是世上首批 React Native 應用程式之一,對此我們引以為傲。眾所周知,React Native 起源於 2013 年舉辦的一次 Facebook 程式設計馬拉松,而我們的應用程式是使用此技術的先峰之一。這款應用程式可以為廣告客戶提供洞察報告和建議,幫助他們透過廣告宣傳活動取得成功,而 React Native 對實踐上述用途便是最適合不過。React Native 具有適用於 iOS 和 Android 平台的多種快速開發功能,還能提供卓越的效能,因此是對 AMA 取得成功不可或缺的好幫手。

最近有什麼事讓您感到振奮或自豪?

最近,我在推送通知基礎結構上投放了不少心思,重點確保這方面的可靠性。

通知是流動應用程式的關鍵部分,對 AMA 來說尤為重要,因為通知可及時為用戶提供洞察報告,這點對廣告宣傳活動取得成功的影響相當深遠。

不過,我們要注意取得平衡,以免用戶收到過多通知。此外,我們也要留意 iOS 和 Android 在處理和管理通知方式之間的不同,還要考慮這兩種流動作業系統的私隱規則。話雖如此,即使面臨這些挑戰,我也認為處理這個專案非常令人振奮,因為我們不止需要兼顧產品技能和技術技能來確保提供最佳用戶體驗,並為 iOS 和 Android 開發不同的流程,同時還要顧及以適合各平台的方式管理通知。

React Native 能讓我們抽取出 iOS 和 Android 通知委派的大部分不同邏輯,簡化開發流程,讓我們專注於開發流程本身。

在 Meta 這樣的公司擔任 React 開發人員,有什麼特別令人振奮的事情嗎?

在 Meta 擔任 React Native 應用程式開發人員,絕對是一種非凡獨特的體驗。我們的工作能接觸到龐大的用戶群,能對大量用戶帶來深遠影響,這一點令我感到莫大滿足。然而,處理這種大規模工作也伴隨著獨特的挑戰,這樣正好讓工作充滿新鮮刺激感,不再苦悶。

這份工作的其中一個關鍵,是要維護用戶私隱和資料完整性。身為開發人員,我們必須掌握能夠儲存哪些資料、不能儲存哪些資料,我們要與私隱團隊密切合作,致力保護用戶私隱。這是我們工作的重點之一,但這一點在小型專案或新創公司中可能會被忽略。然而,對 Meta 來說,這是我們的優先事務,我們在處理資料上必須做到靈活應變。

處理供全球使用的前端應用程式時,我們遇到的另一項挑戰是本地化。以英文設計和開發應用程式固然相對直接了當,但將所有內容翻譯成 20 多種語言後,便可能會暴露之前未能發現的缺陷和錯誤。同一個詞語在另一種語言中,長度可能多出三至四倍,因此我們需要仔細設計和精準開發,以確保正確處理所有限制。我之前曾在銀行和航空公司工作,這些經驗都可套用到我目前 Meta 的工作上,可說得上為我做好充分準備,助我克服以上挑戰。

目前在 React 空間工作,您的動力來自哪裡?

在 Meta 擔任 React 開發人員是非常特別的機會,因為我能與 React 團隊近距離接觸,與他們直接協作及溝通。這在公司內部也是萬中無一的難得機會。

要成為成功的消費者導向產品工程師,就要具備多項技能。除了編寫以效能為優先而且清晰可靠的程式碼以外,重點考慮用戶體驗和無障礙功能也是不可或缺的因素。從這一點來看,使用 React 之類的動態語言很有優勢,因為這些語言可讓開發人員專注於開發流程,避免過多額外負擔。我擁有流動原生開發的背景,在大型應用程式方面的經驗尤其豐富,我親身體會過構建時間如何阻礙日常工作和浪費寶貴的時間。因此,我很喜歡 React 所用的虛擬 DOM,這可以實現高效率更新並即時呈現 UI 元件。React 已在網絡世界中獲不同開發人員和公司廣泛採用,但仍保持方便使用和無障礙的特質,其中一部分原因是因為它以開發人員廣泛使用的 JavaScript/TypeScript (JS/TS) 語言為基礎。我喜歡結合 React 使用 TypeScript。TypeScript 屬於靜態類型,因此更易在開發程序的早期識別錯誤。

我個人也非常喜歡 React 中的實用功能元件,不止可使用記憶化功能來優化自身效能,還可透過避免不必要的顯示更新來大幅改善應用程式的效能。另外,元件可以輕鬆重複使用,這一點對大型應用程式更是格外重要,可使維護、測試和管理程式碼庫變得更加容易。

在您工作以來,您遇到過哪些關於 React 或開放原始碼軟件開發的誤解?

事實上,我在工作中很少聽說關於 React 或開放原始碼軟件的誤解;大部分全球大公司都會在日常營運中使用及開發開放原始碼軟件,還會設立大型的開發人員社群,以便處理開放原始碼專案。

不過,我確實聽說過關於 React Native 的各種疑慮,其中以運行速度緩慢和只適合功能有限的小型專案居多。有些人認為 React Native 使用 JavaScript 與原生元件互動,導致效能比起原生編寫的應用程式較慢。在串流等情況下,原生應用程式的表現可能的確較佳,但對於大部分主要顯示圖像和文字及促成用戶互動的日常應用程式而言,React Native 的表現不比原生應用程式遜色。

您對 React 的未來有何期待?

React Native 擁有強大的架構,而且能夠透過有效更新和即時用戶介面顯示來應付大型應用程式的需要。另外還能提供方便的程式碼管理,是大型專案的理想選擇。此外,React Native 讓開發人員可以存取原生模組,從而提供原生功能存取權,支援開發全方位的應用程式。

如要開始使用 React,有哪些實用資源?又怎樣付諸實行?

我在剛開始工作不久時接觸 React,當時剛好公司讓我們免費存取一個大型的網上學習入口網站,當中有由專家講授的影片課程。 對我來說,觀看這些影片教學導覽就是最好的學習方法,這些教學帶我逐步學習所需的一切知識。掌握基本概念後,我開始著手實際的專案並累積實務經驗,這是進一步熟悉 React 的寶貴歷練。如果沒有機會在工作中實際使用,我強烈建議您嘗試為自己真正熱愛的事物自行開發一個應用程式。我自己便是由設立載有個人代表作的私人網站開始。另外,我認為 React Native 的官方說明文件寫得不錯,在有需要尋找具體資訊時很有幫助。

大家可以怎樣聯絡您並追蹤您的工作動向?

我有 GitHub 帳戶,但當中內容因為工作關係需要保密,屬於機密專有性質,而除此之外其他內容是我自己的個人專案,並不是開放原始碼。我喜歡使用社交媒體,在 Instagram 上相當活躍,但我不會在這個平台上討論開發工作。相反,這是我工作以外的娛樂之一。


謝謝 Andrea 抽空接受這次訪問。透過這次精彩的訪問,我們明白到如何使用 React 改善大型應用程式,以及我們如何將在此學習的經驗回饋 React 社群。希望大家在今天的訪問中有所得著,大家會更了解對 Meta 使用 React 的方式及用途。

關於「認識開發人員:Meta React 專題特輯」系列

React 是廣受歡迎的開放原始碼專案之一,在過去幾年來一直獲評為「最受歡迎」的網絡框架之一。Meta 相信 React 是一個出色的資源庫,有助開發人員輕鬆建立大規模用戶介面。從簡單的網站乃至企業應用程式,React 開放原始碼程式庫已在全球各地獲數百萬名開發人員採用,可謂各適其適。

本網誌是「認識開發人員:Meta React 專題特輯」系列的一部分。在這個系列中,我們邀請經常使用 React 的工程師和開發人員分享自己的體驗,向我們講述他們目前在 Meta 使用 React 構建的精彩產品。敬請留意我們推出的更多訪問網誌文章,屆時將有其他工程師分享他們對這個主題的看法。

如需進一步了解 Meta Open Source,歡迎瀏覽我們的開放原始碼網站、訂閱我們的 YouTube 頻道,或在 TwitterFacebookLinkedIn 上追蹤我們。