Назад к новостям для разработчиков

Встречи с разработчиками — разработка на React в Meta (Андреа Феррандо)

Эта статья написана Андреа Феррандо, разработчиком программного обеспечения (Meta), и Шоном Киганом, консультантом разработчиков (Meta).

Сегодня мы поговорим с Андреа Феррандо, frontend-разработчиком в Meta. Его команда работает над приложением Ads Manager, в котором пользователи могут создавать, редактировать и отслеживать рекламные кампании.

Расскажите нам о себе.

Меня зовут Андреа Феррандо, я разработчик программного обеспечения. Я обожаю создавать цифровые продукты высокого качества, которыми удобно пользоваться. Сейчас я работаю над приложением Ads Manager (AMA), с помощью которого рекламодатели могут создавать, отслеживать и контролировать свои кампании на всех платформах Meta. В приложении можно найти всё, что нужно рекламодателям, чтобы охватить целевую аудиторию. Оно необходимо всем, кто хочет, чтобы реклама была эффективной. Я работаю над AMA всего около года, но мне уже удалось серьезно продвинуться в его разработке.

На использование React Native меня вдохновили его возможности создать удобный и эффективный интерфейс как для пользователей iOS, так и Android. В React Native есть многократно используемые компоненты, а ещё в нем легко управлять статусом, поэтому мы можем быстро и эффективно создавать новые высококачественные приложения. Из дополнительных преимуществ отмечу возможность написать код один раз, а затем запускать его на нескольких платформах. Так мы можем охватить большую базу пользователей и создать приложение, которое будет исправно работать на любых устройствах.

Как часто вы используете React?

Я использую React каждый день, и он уже стал неотъемлемой частью моей работы в этой роли. На мне как на техническом руководителе по продуктам для клиентов в Meta лежит большая ответственность за управление всем циклом разработки, постановку целей и работу с командами из разных подразделений. В то же время я могу активно работать над AMA, разрабатывать особенно важные функции и вносить практический вклад.

Над какими другими проектами в Meta вы работали, используя React?

С тех пор как я стал частью Meta, я работаю только над приложением Ads Manager. Нашей команде принадлежит весь процесс разработки этого продукта, в который входит и backend-функциональность, но AMA — это единственное приложение, над которым я работаю с применением React.

Почему ваша команда выбрала React? Как его использование помогает вашей команде достигать целей разработки?

Мы гордимся тем, что приложение Ads Manager стало одним из первых в мире, разработанных на React Native. Известно, что React Native был создан на хакатоне Facebook ещё в 2013 году. Наше приложение стало одним из первых, использующих эту технологию. В приложении для рекламодателей предусмотрена полезная статистика и рекомендации, которые помогут запускать более эффективные кампании. React Native — идеальный инструмент для разработки такого решения. Он позволяет быстро внедрять возможности как в iOS, так и в Android, обеспечивая при этом непревзойденную производительность. React Native сыграл важную роль в успехе AMA.

Чему вы особенно рады или чем гордитесь в последнее время?

В последнее время я вложил много сил в инфраструктуру push-уведомлений, стремясь обеспечить ее надежность.

Уведомления играют важную роль в мобильных приложениях. В случае AMA они особенно важны, потому что должны своевременно предоставлять статистику, на которую опираются пользователи, если хотят, чтобы их рекламные кампании были успешными.

При этом важно соблюдать баланс и не перегружать пользователей слишком большим количеством уведомлений. Кроме того, методы обработки уведомлений и управления ими в iOS и Android различаются, поэтому необходимо учитывать правила конфиденциальности для этих двух мобильных операционных систем. Несмотря на трудности, работа над этим проектом очень увлекательна. Она требует как навыков управления продуктом, так и знания технологий, чтобы обеспечить наилучший пользовательский опыт и при этом разработать подходящие процессы обработки уведомлений для iOS и Android.

React Native позволяет нам упростить процесс разработки, изолировав большую часть логики, в которой состоит разница между делегатами уведомлений iOS и Android. Благодаря этому мы можем сосредоточиться на самом процессе разработки.

Что вас особенно увлекает в разработке на React в такой компании, как Meta?

Быть разработчиком приложения на React Native в Meta — поистине исключительный опыт. Я ценю возможность работать с большой базой пользователей и влиять на опыт такого количества людей. Конечно, когда работаешь в таком масштабе, приходится иметь дело с проблемами, с которыми никогда не сталкивался раньше, но они делают работу только интереснее.

Один из основных аспектов работы — обеспечение конфиденциальности и целостности данных пользователей. Мы, разработчики, должны знать, какие данные мы можем хранить, а какие нет, поэтому мы тесно сотрудничаем с командами защиты конфиденциальности, чтобы обезопасить конфиденциальность пользователей. Это чрезвычайно важный аспект, который можно упустить из виду в небольших проектах или стартапах. Однако в Meta он является основным приоритетом, поэтому наш подход должен быть достаточно гибким и адаптивным.

Ещё один сложный аспект работы над frontend-приложением, которое используется во всем мире, — локализация. Проектирование и разработка приложения на английском языке относительно просты, а вот перевод всего приложения более чем на 20 языков может выявить дефекты и ошибки, которые мы раньше не замечали. Например, какое-то слово на другом языке может быть в три-четыре раза длиннее, и это требует тщательного проектирования и точной разработки, чтобы все ограничения обрабатывались правильно. Мой предыдущий опыт работы в банках и авиакомпаниях хорошо подготовил меня к этому аспекту работы. Полученные знания я использую в своей нынешней роли в Meta.

Что вдохновляет вас в работе в пространстве React сейчас?

Быть разработчиком на React в Meta — это особенная возможность, которая позволяет близко работать с командой React, налаживать прямое сотрудничество и общение. Это ставит тебя в уникальное положение в компании.

Чтобы быть успешным инженером продуктов для клиентов, требуются самые разные навыки. Нужно писать понятный и надежный код, ставя в приоритет производительность, а также не забывать об интерфейсе и доступности. Именно в этом случае раскрываются преимущества работы с таким динамическим языком, как React, поскольку разработчики могут сосредоточиться на процессе разработки и не тратить время на побочные задачи. У меня есть опыт нативной разработки для мобильных устройств, особенно крупномасштабных приложений, поэтому я отлично знаю, как время сборки может мешать повседневной работе и тратить драгоценное время. Именно поэтому я ценю использование виртуального DOM в React, который обеспечивает своевременное обновление и рендеринг компонентов пользовательского интерфейса в режиме реального времени. Несмотря на широкое распространение среди разработчиков и компаний во всем Интернете, React позволяет обеспечивать удобство для пользователей и доступность, отчасти благодаря тому, что он основан на JavaScript/TypeScript (JS/TS) — языках, активно используемых разработчиками. Мне нравится использовать TypeScript с React. TypeScript статически типизирован, что облегчает отслеживание ошибок на ранних стадиях разработки.

Лично мне также очень нравятся функциональные компоненты в React, поскольку они очень полезны в работе. Их можно оптимизировать для производительности с помощью функции мемоизации и значительно повысить производительность приложения, предотвращая ненужные обновления рендеринга. В частности, для масштабных приложений особенно важна простота многократного использования компонентов, что облегчает обслуживание, тестирование и управление кодовой базой.

Сталкивались ли в своей карьере с какими-либо заблуждениями относительно React или разработки программного обеспечения с открытым исходным кодом?

За свою карьеру я не часто сталкивался с заблуждениями в отношении React или ПО с открытым исходным кодом. Большинство крупнейших мировых компаний используют и разрабатывают ПО с открытым исходным кодом в своей повседневной деятельности, и большое сообщество разработчиков работает над такими проектами.

Я слышал различные опасения по поводу React Native, в частности, что он работает медленно и подходит только для небольших проектов с ограниченным функционалом. Некоторые считают, что использование в React Native JavaScript для взаимодействия с нативными компонентами приводит к снижению производительности по сравнению с нативными приложениями. В некоторых случаях, например для трансляций, нативные приложения могут работать лучше, но для большинства повседневных приложений, в которых демонстрируются преимущественно изображения и текст и есть активное взаимодействие с пользователем, React Native ведет себя не хуже.

Что вы ожидаете в будущем от React?

У React Native надежная архитектура, и он приспособлен для работы с крупномасштабными приложениями благодаря своевременным обновлениям и рендерингу пользовательского интерфейса в режиме реального времени. Он также позволяет легко управлять кодом, что делает его идеальным для больших проектов. Кроме того, React Native дает разработчикам возможность обращаться к нативным модулям и использовать их функциональность, тем самым позволяя разрабатывать комплексные приложения.

Какие ресурсы будут полезны в начале работы с React? Например, материалы сообщества?

Когда я начинал работу с React, мне посчастливилось быть в компании, которая предлагала бесплатный доступ к крупному онлайн-порталу с видеоуроками от экспертов. Для меня лучшим способом обучения был просмотр этих видеоуроков, где шаг за шагом показывали всё, что мне нужно было знать. Изучив основы, я обнаружил, что для глубокого понимания React неоценимую роль сыграл практический опыт работы над реальными проектами. Если у вас нет возможности заниматься этим на работе, я очень советую найти что-то интересное вам и разработать для этого приложение. Я начал с создания личного сайта с портфолио. Кроме того, когда я искал конкретную информацию, мне очень помогла официальная документация по React Native. Она понятно написана и содержит много полезного.

Где можно следить за вашей жизнью и работой?

У меня есть аккаунт на Github, но большинство моих наработок либо закрыты из-за правил конфиденциальности, связанных с работой, либо это личные проекты без открытого исходного кода. Мне нравятся социальные сети, я активно пользуюсь Instagram, но не обсуждаю там разработку. Это, скорее, мой способ отвлечься от работы.


Мы благодарим Андреа за интервью и уделенное нам время. Нам было интересно узнать, как React используется для улучшения крупных приложений, как мы учимся на своем опыте и вносим свой вклад в сообщество React. Надеемся, что и вам было интересно и теперь у вас есть некоторое представление о том, как и где используется React в Meta.

О серии интервью "Встречи с разработчиками — разработка на React в Meta"

React — один из самых популярных проектов с открытым исходным кодом, который на протяжении нескольких последних лет неизменно входит в число самых используемых веб-фреймворков. По мнению специалистов Meta, React — это отличная библиотека, которая помогает разработчикам легко создавать пользовательские интерфейсы и масштабировать их. React — это библиотека с открытым исходным кодом, в которой найдется возможность для каждого. Это подтвердят миллионы разработчиков как простых сайтов, так и корпоративных приложений, по всему миру.

Этот блог является частью нашей серии "Встречи с разработчиками", где мы приглашаем инженеров и разработчиков, регулярно использующих React, поделиться своим опытом и рассказать нам об удивительных продуктах, которые они создают с помощью React в Meta. Ожидайте новых выпусков блога, в которых мы встретимся с другими разработчиками, чтобы обсудить, что они думают на эту тему.

Чтобы узнать больше о Meta Open Source, перейдите на наш сайт, посвященный открытому исходному коду, подпишитесь на наш YouTube-канал или следите за нами в Twitter, на Facebook и в LinkedIn.