Quay lại phần Tin tức dành cho nhà phát triển

Gặp gỡ nhà phát triển - Ấn bản React tại Meta (Andrea Ferrando)

27 tháng 4, 2023Tác giảNavyata Bawa

Bài viết này do Andrea Ferrando - Kỹ sư phần mềm tại Meta và Sean Keegan - Chuyên gia về quan hệ lập trình viên tại Meta cùng hợp tác soạn thảo.

Tham gia với chúng ta trong cuộc phỏng vấn hôm nay là Andrea Ferrando, một kỹ sư giao diện người dùng tại Meta. Đội ngũ của anh phát triển Ứng dụng Trình quản lý quảng cáo, nơi người dùng tạo, chỉnh sửa và giám sát các chiến dịch quảng cáo.

Vui lòng giới thiệu về bản thân.

Tôi là Andrea Ferrando, một kỹ sư phần mềm có niềm đam mê cung cấp các sản phẩm kỹ thuật số và trải nghiệm người dùng vượt trội. Tôi đang phát triển Ứng dụng Trình quản lý quảng cáo (AMA). Đây là ứng dụng hỗ trợ nhà quảng cáo tạo, giám sát và quản lý các chiến dịch của họ trên tất cả nền tảng của Meta. Ứng dụng này cung cấp một giải pháp toàn diện cho nhà quảng cáo để tiếp cận đối tượng mục tiêu của họ, do đó trở thành một công cụ quan trọng cho bất kỳ ai muốn quảng cáo hiệu quả. Tôi phát triển AMA mới chỉ hơn một năm mà đã có thể tạo ra tác động thực sự đến sự phát triển của ứng dụng này.

Điều thôi thúc tôi đến với React Native là tiềm năng mang lại trải nghiệm người dùng liền mạch và hiệu quả cho cả người dùng iOS lẫn Android. Với các thành phần có thể tái sử dụng và khả năng quản lý trạng thái dễ dàng, React Native có thể tạo ra những ứng dụng chất lượng cao một cách nhanh chóng và hiệu quả. Khả năng viết mã một lần rồi chạy mã đó trên nhiều nền tảng cũng là một lợi thế rất lớn, vì nhờ vậy, chúng tôi có thể tiếp cận cơ sở người dùng lớn hơn và mang lại trải nghiệm nhất quán trên mọi thiết bị.

Anh sử dụng React ở mức độ nào?

Tôi sử dụng React hàng ngày và ứng dụng này đã trở thành một phần không thể thiếu trong vai trò của tôi. Với vai trò trưởng đội ngũ công nghệ phụ trách một sản phẩm tập trung vào khách hàng tại Meta, tôi đảm nhận những trách nhiệm cao hơn trong việc quản lý toàn bộ quá trình phát triển sản phẩm, định hướng và làm việc với các đội ngũ đa chức năng. Nhưng đồng thời tôi cũng có cơ hội đóng góp tích cực cho AMA khi phát triển các tính năng quan trọng và tạo ra những đóng góp thực tiễn.

Anh có thể nêu một số dự án mà mình phụ trách tại Meta có sử dụng React không?

Kể từ khi đầu quân cho Meta, công việc của tôi chỉ tập trung vào Ứng dụng Trình quản lý quảng cáo. Đội ngũ chúng tôi có toàn quyền sở hữu đối với sản phẩm đó, điều này cũng liên quan đến việc đóng góp vào quá trình phát triển chức năng phụ trợ, nhưng AMA là ứng dụng React duy nhất mà tôi phụ trách.

Tại sao đội ngũ của anh lại chọn sử dụng React và lựa chọn này giúp anh cũng như đội ngũ mình đạt được mục tiêu phát triển như thế nào?

Chúng tôi tự hào rằng Ứng dụng Trình quản lý quảng cáo là một trong những ứng dụng React Native đầu tiên trên thế giới. Ai cũng biết React Native bắt nguồn từ cuộc thi hackathon của Facebook vào năm 2013 và ứng dụng của chúng tôi là một trong những ứng dụng tiên phong dùng công nghệ này. Ứng dụng đó cung cấp cho nhà quảng cáo thông tin chi tiết và đề xuất để giúp họ gặt hái thành công trong các chiến dịch quảng cáo. Vì thế, React Native hoàn toàn phù hợp cho mục đích như vậy. Với các tính năng phát triển nhanh chóng cho cả nền tảng iOS lẫn Android cùng khả năng mang lại hiệu suất tuyệt vời, React Native là công cụ tạo nên thành công của AMA.

Gần đây, có điều gì mà anh cảm thấy hào hứng hay vô cùng tự hào không?

Gần đây, tôi dồn tâm huyết vào cơ sở hạ tầng thông báo đẩy, tập trung chủ yếu vào việc đảm bảo độ tin cậy của cơ sở hạ tầng này.

Thông báo đóng vai trò chủ chốt trong các ứng dụng di động và trong trường hợp của AMA, chúng đặc biệt quan trọng vì kịp thời cung cấp thông tin chi tiết cho người dùng. Yếu tố này có thể tạo nên sự khác biệt hoàn toàn trong một chiến dịch quảng cáo thành công.

Tuy nhiên, điều quan trọng là phải duy trì sự cân bằng để tránh gửi quá nhiều thông báo khiến người dùng bị quá tải. Ngoài ra, chúng tôi phải xem xét cả cách xử lý và quản lý thông báo khác nhau giữa iOS và Android, cũng như quy tắc về quyền riêng tư cho hai hệ điều hành di động này. Dù phải đối mặt với nhiều thách thức nhưng đây là một dự án thú vị. Dự án này đòi hỏi cả kỹ năng về sản phẩm và kỹ thuật để đảm bảo mang lại trải nghiệm người dùng tốt nhất, cũng như để phát triển các quy trình khác nhau cho iOS và Android trong khi vẫn quản lý thông báo theo cách phù hợp với từng nền tảng.

Nhờ React Native, chúng tôi có thể đơn giản hóa quy trình phát triển để tập trung vào quy trình đó, bằng cách trừu tượng hóa hầu hết logic khác nhau giữa các thực thể đại diện cho thông báo trên iOS và Android.

Có điều gì đặc biệt thú vị khi trở thành nhà phát triển React tại một công ty như Meta không?

Làm việc với vai trò nhà phát triển ứng dụng React Native tại Meta là một trải nghiệm thực sự tuyệt vời. Khả năng tiếp cận cơ sở người dùng khổng lồ trong công việc và tạo ra tác động đáng kể đến rất nhiều người mang lại cảm giác vô cùng phấn khởi. Tuy nhiên, làm việc ở quy mô lớn như vậy cũng đi kèm những thách thức riêng khiến công việc này trở nên lý thú và luôn biến chuyển.

Một khía cạnh quan trọng của công việc này là đảm bảo quyền riêng tư và tính toàn vẹn dữ liệu cho người dùng. Với vai trò nhà phát triển, chúng tôi cần hiểu rõ về những loại dữ liệu mình có thể và không thể lưu trữ, đồng thời phải hợp tác chặt chẽ với các đội ngũ quyền riêng tư để bảo vệ quyền riêng tư của người dùng. Đây là một khía cạnh chủ chốt trong công việc có thể bị bỏ qua ở những dự án hoặc công ty khởi nghiệp có quy mô nhỏ hơn, nhưng lại là vấn đề ưu tiên hàng đầu tại Meta và đòi hỏi chúng tôi phải linh hoạt cũng như thích nghi trong cách tiếp cận.

Một khía cạnh thách thức khác khi phát triển ứng dụng giao diện người dùng được sử dụng trên toàn cầu là vấn đề bản địa hóa. Mặc dù việc thiết kế và phát triển một ứng dụng bằng tiếng Anh tương đối đơn giản, nhưng việc dịch toàn bộ ứng dụng sang hơn 20 ngôn ngữ có thể gây ra những sai sót và lỗi nhỏ chưa từng thấy trước đây. Cùng một từ nhưng bản dịch sang ngôn ngữ khác có thể dài gấp ba đến bốn lần. Do đó, chúng tôi cần phải thiết kế cẩn thận và phát triển chính xác để đảm bảo xử lý mọi giới hạn theo cách phù hợp. Kinh nghiệm trước đây khi làm việc cho các ngân hàng và hãng hàng không đã giúp tôi chuẩn bị kỹ lưỡng cho khía cạnh này trong công việc. Tôi đã vận dụng rất nhiều kinh nghiệm đó vào vai trò hiện tại của mình tại Meta.

Điều gì tiếp thêm sinh lực cho anh khi làm việc trong lĩnh vực React hiện nay?

Làm việc với vai trò nhà phát triển React tại Meta là một cơ hội thực sự đặc biệt, vì bạn có thể ở gần đội ngũ React để trực tiếp cộng tác và trao đổi. Điều này đặt bạn vào một vị trí có một không hai trong công ty.

Để trở thành kỹ sư thành công về một sản phẩm tập trung vào người tiêu dùng, bạn cần phải có một bộ kỹ năng đa dạng. Điều cốt yếu là phải viết mã rõ ràng và đáng tin cậy, ưu tiên hiệu quả, đồng thời chú trọng vào các khía cạnh như trải nghiệm người dùng và khả năng truy cập. Đây là lúc việc sử dụng một ngôn ngữ động như React phát huy lợi ích, vì nhà phát triển có thể tập trung vào quá trình phát triển mà không mất nhiều chi phí. Với chuyên ngành về phát triển di động gốc, đặc biệt là những ứng dụng có quy mô lớn, tôi đã trực tiếp trải nghiệm việc thời gian xây dựng có thể cản trở công việc hàng ngày và lãng phí thời gian quý báu như thế nào. Đây là lý do tại sao tôi đánh giá cao việc sử dụng DOM ảo trong React để có thể cập nhật hiệu quả và hiển thị các thành phần giao diện người dùng theo thời gian thực. Mặc dù được các nhà phát triển và công ty sử dụng rộng rãi trên web, React vẫn thân thiện với người dùng và dễ tiếp cận, một phần nhờ vào nền tảng của ứng dụng này là JavaScript/TypeScript (JS/TS). Đây là những ngôn ngữ mà các nhà phát triển thường dùng. Tôi thích sử dụng TypeScript với React. TypeScript là ngôn ngữ được nhập tĩnh, giúp việc bắt lỗi sớm trong quá trình phát triển trở nên dễ dàng hơn.

Cá nhân tôi cũng thực sự thích các thành phần chức năng trong React vì chúng rất hữu ích. Bạn có thể tối ưu hóa hiệu quả của những thành phần này bằng tính năng ghi nhớ. Chúng có thể cải thiện đáng kể hiệu quả của ứng dụng bằng cách ngăn chặn các bản cập nhật kết xuất không cần thiết. Cụ thể, việc dễ dàng sử dụng lại thành phần có ý nghĩa đặc biệt quan trọng đối với các ứng dụng có quy mô lớn, vì công tác bảo trì, kiểm tra và quản lý cơ sở mã sẽ trở nên đơn giản hơn.

Đâu là một số quan niệm sai lầm về React hoặc hoạt động phát triển phần mềm mã nguồn mở mà anh đã gặp phải trong sự nghiệp của mình?

Trong sự nghiệp của mình, thực tế là tôi chưa từng nghe thấy nhiều quan niệm sai lầm về React hoặc phần mềm mã nguồn mở. Hầu hết các công ty lớn nhất thế giới đều sử dụng và phát triển phần mềm mã nguồn mở trong hoạt động hàng ngày của họ. Một cộng đồng lớn gồm các nhà phát triển cũng tham gia vào những dự án mã nguồn mở.

Tôi thấy nhiều người lo ngại rằng React Native hoạt động chậm và chỉ phù hợp với các dự án nhỏ với tính năng hạn chế. Một số người cho rằng việc React Native dùng JavaScript để tương tác với các thành phần gốc làm cho hiệu suất bị chậm hơn so với những ứng dụng được viết gốc. Trong một số trường hợp như phát trực tuyến, ứng dụng gốc có thể hoạt động tốt hơn. Tuy nhiên, đối với hầu hết ứng dụng dùng hàng ngày (chủ yếu hiển thị hình ảnh và văn bản cũng như ưu tiên hoạt động tương tác với người dùng), React Native hoạt động cũng tốt không kém.

Anh mong chờ điều gì về tương lai của React?

React Native có kiến trúc mạnh mẽ và được trang bị bản cập nhật hiệu quả cùng quy trình kết xuất giao diện người dùng theo thời gian thực để xử lý các ứng dụng có quy mô lớn. Ứng dụng này còn giúp quản lý mã dễ dàng nên trở thành một công cụ lý tưởng cho những dự án lớn. Ngoài ra, React Native mang đến cho nhà phát triển khả năng truy cập vào những mô-đun gốc, cấp quyền truy cập vào chức năng gốc, từ đó hỗ trợ phát triển các ứng dụng toàn diện.

Đâu là những thông tin và nguồn lực hữu ích khi bắt đầu sử dụng React? Còn việc đóng góp thì sao?

Khi bắt đầu sử dụng React từ sớm trong sự nghiệp của mình, tôi may mắn được làm việc tại một công ty cung cấp quyền truy cập miễn phí vào cổng thông tin học tập trực tuyến lớn với những video bài học do chuyên gia giảng dạy. Đối với tôi, cách tốt nhất để học hỏi là xem những video hướng dẫn này. Chúng hướng dẫn tôi từng bước về mọi thứ tôi cần biết. Sau khi nắm được kiến thức cơ bản, tôi nhận thấy rằng kinh nghiệm thực tiễn - bằng cách tham gia vào dự án thực tế - là tài sản vô giá giúp tôi hiểu rõ hơn về React. Nếu không có cơ hội làm như vậy tại nơi làm việc, bạn nên tìm gì đó mà mình đam mê và phát triển ứng dụng cho đam mê đó. Tôi đã bắt đầu tạo trang web cá nhân cho danh mục đầu tư của mình. Ngoài ra, tôi thấy tài liệu chính thức về React Native được viết rất chỉn chu và vô cùng hữu ích khi tôi cần tra cứu thông tin cụ thể.

Mọi người có thể tìm thấy anh và theo dõi công việc của anh ở đâu?

Tôi có tài khoản Github, nhưng hầu hết kinh nghiệm làm việc của tôi đều là tài sản độc quyền do tính bảo mật liên quan đến công việc hoặc là những dự án cá nhân không phải mã nguồn mở. Tôi thích tham gia mạng xã hội và có sự hiện diện tốt trên Instagram, nhưng tôi không dùng ứng dụng này làm nền tảng để thảo luận về hoạt động phát triển. Thay vào đó, Instagram là nơi tôi "xả hơi" sau khi làm việc.


Xin cảm ơn Andrea đã dành thời gian tham gia cuộc phỏng vấn này. Thật tuyệt vời khi biết React đang được sử dụng như thế nào để cải thiện các ứng dụng lớn, cũng như cách chúng ta học hỏi từ tất cả những sản phẩm mà mình xây dựng ở đây và đóng góp lại cho cộng đồng React. Chúng tôi hy vọng rằng cuộc phỏng vấn này hữu ích với bạn và cung cấp thông tin chi tiết về cách thức cũng như sản phẩm mà Meta đang sử dụng React.

Giới thiệu về loạt bài phỏng vấn Gặp gỡ nhà phát triển - React tại Meta

React là một trong những dự án mã nguồn mở phổ biến nhất và liên tục được xếp hạng là một trong những khung web "được yêu thích nhất" trong vài năm qua. Tại Meta, chúng tôi tin rằng React là một thư viện vượt trội hỗ trợ nhà phát triển xây dựng giao diện người dùng dễ dàng và trên quy mô lớn. Được hàng triệu nhà phát triển trên khắp thế giới sử dụng, trong mọi sản phẩm từ trang web đơn giản đến ứng dụng doanh nghiệp, React là một thư viện mã nguồn mở dành cho tất cả mọi người.

Blog này nằm trong loạt bài phỏng vấn Gặp gỡ nhà phát triển của chúng tôi. Ở loạt bài này, chúng tôi mời các kỹ sư và nhà phát triển thường xuyên sử dụng React để chia sẻ kinh nghiệm của họ, cũng như cho chúng tôi biết về những sản phẩm tuyệt vời mà họ đang xây dựng bằng React tại Meta. Hãy xem thêm các blog phỏng vấn để gặp gỡ những kỹ sư khác và lắng nghe họ chia sẻ về chủ đề này.

Để tìm hiểu thêm về Meta Open Source, hãy truy cập vào trang web nguồn mở của chúng tôi, đăng ký kênh YouTube của chúng tôi hoặc theo dõi chúng tôi trên Twitter, FacebookLinkedIn.