Torna alle notizie per sviluppatori

Meet the Developers - React @ Meta Edition (Andrea Ferrando)

Questo articolo è stato scritto in collaborazione con Andrea Ferrando, Software Engineer di Meta, e Sean Keegan, Developer Advocate di Meta.

Per l'intervista di oggi abbiamo con noi Andrea Ferrando, front-end engineer di Meta. Il suo team lavora all'app Ads Manager in cui gli utenti creano, modificano e monitorano le campagne pubblicitarie.

Parlaci di te.

Mi chiamo Andrea Ferrando, sono un ingegnere informatico appassionato di fornitura di prodotti digitali ed esperienze utente eccezionali. Attualmente lavoro all'app Ads Manager (AMA); si tratta di un'app che consente agli inserzionisti di creare, monitorare e gestire le proprie campagne su tutte le piattaforme Meta. Questa app fornisce agli inserzionisti una soluzione completa per raggiungere il proprio pubblico di destinazione, il che la rende uno strumento fondamentale per chiunque desideri fare pubblicità in modo efficace. Lavoro all'AMA da poco più di un anno e in questo lasso di tempo posso dire di aver contribuito attivamente al suo sviluppo.

Ciò che mi ha stimolato a partecipare a React Native è stata l'opportunità di offrire un'esperienza utente fluida ed efficiente sia agli utenti iOS che Android. Con i suoi componenti riutilizzabili e la capacità di gestire facilmente lo stato, React Native consente di creare app di alta qualità in modo rapido ed efficiente. La possibilità di scrivere codice un'unica volta per poi eseguirlo su più piattaforme rappresenta un enorme vantaggio aggiunto, in quanto ci consente di raggiungere una base di utenti più ampia e offrire un'esperienza coerente su tutti i dispositivi.

Con quali modalità utilizzi React?

Uso React quotidianamente ed è diventato parte integrante del mio ruolo. In qualità di responsabile tecnico di Meta per un prodotto orientato al cliente, ho molte responsabilità nella gestione dello sviluppo del prodotto end-to-end, nella definizione dell'approccio da adottare e nella collaborazione con team interfunzionali; ma allo stesso tempo, ho anche l'opportunità di contribuire attivamente ad AMA lavorando su funzioni critiche e fornendo un contributo pratico.

Parlaci di alcuni dei progetti su cui hai lavorato in Meta che utilizzano React.

Da quando sono entrato in Meta, il mio lavoro si è concentrato esclusivamente sull'app Ads Manager. Il nostro team gestisce la proprietà end-to-end del prodotto, il che implica anche contribuire allo sviluppo delle funzionalità di back-end, ma AMA è l'unica app React su cui lavoro.

Perché il tuo team ha scelto di utilizzare React e in che modo questo vi aiuta a raggiungere i vostri obiettivi di sviluppo?

Siamo orgogliosi del fatto che l'app Ads Manager sia stata una delle prime app React Native al mondo. È risaputo che React Native è nato nel 2013 da un hackathon di Facebook e la nostra app è stata uno dei pionieri nell'utilizzo di questa tecnologia. L'app fornisce agli inserzionisti approfondimenti e consigli per aiutarli ad avere successo con le loro campagne pubblicitarie e React Native è perfetto per questo scopo. Grazie alle capacità di sviluppo rapido per entrambe le piattaforme iOS e Android e alle sue incredibili prestazioni, React Native è stato determinante per il successo di AMA.

Vuoi condividere qualche aspetto che ti ha entusiasmato o di cui vai particolarmente fiero di recente?

Ultimamente, mi sono dedicato molto alla nostra infrastruttura di notifiche push, con particolare attenzione a garantirne l'affidabilità.

Le notifiche svolgono un ruolo cruciale nelle applicazioni mobili e, nel caso di AMA, sono ancora più importanti in quanto assicurano una consegna tempestiva di informazioni agli utenti, fattore che può fare la differenza nel successo di una campagna pubblicitaria.

Occorre però specificare che è fondamentale trovare un equilibrio per evitare di sovraccaricare gli utenti con troppe notifiche. Inoltre, il modo in cui le notifiche vengono trattate e gestite differisce tra iOS e Android e devono essere tenute in considerazione le regole sulla privacy per questi due sistemi operativi mobili. Nonostante le sfide, è un progetto entusiasmante su cui lavorare, in quanto richiede competenze sia tecniche e che di prodotto per garantire la migliore esperienza utente possibile e sviluppare flussi diversi per iOS e Android, assicurandosi al contempo di gestire le notifiche in modo appropriato per ciascuna piattaforma.

React Native ci consente di semplificare il processo di sviluppo estrapolando la maggior parte della logica che differisce tra i delegati di notifica iOS e Android, in modo tale da poterci concentrare sul processo di sviluppo.

Cosa ti entusiasma di più dell'essere uno sviluppatore React presso una società come Meta?

Lavorare come sviluppatore su un'app React Native per Meta è un'esperienza incredibile. La possibilità di raggiungere un'enorme base di utenti con il tuo lavoro e di avere un impatto significativo su così tante persone è incredibilmente gratificante. Allo stesso tempo, lavorare su una scala così ampia comporta anche sfide uniche che rendono il lavoro entusiasmante e in continua evoluzione.

Un aspetto chiave del lavoro è garantire la privacy e l'integrità dei dati per gli utenti. In qualità di sviluppatori, dobbiamo essere informati su quali dati possiamo conservare e quali no, lavorando a stretto contatto con i team per la protezione della privacy degli utenti. Questo è un aspetto critico del lavoro che può essere secondario nell'ambito di progetti più piccoli o start-up, ma è una priorità assoluta in Meta che richiede di avere un approccio flessibile e adattabile.

Un altro aspetto impegnativo del lavoro su un'app front-end utilizzata a livello globale è la localizzazione. Sebbene sia relativamente semplice progettare e sviluppare un'app in inglese, tradurre tutto in più di 20 lingue può portare alla luce difetti e bug che non erano stati precedentemente notati. La stessa parola può essere da tre a quattro volte più lunga in un'altra lingua, il che richiede un'attenta progettazione e uno sviluppo preciso per garantire che tutti i limiti siano gestiti correttamente. La mia precedente esperienza lavorativa presso banche e compagnie aeree mi ha dato una buona preparazione per questo aspetto del lavoro, che mi torna incredibilmente utile nel mio attuale ruolo in Meta.

Qual è l'aspetto più stimolante di lavorare nel contesto React oggi?

Lavorare come sviluppatore React in Meta è un'opportunità fantastica, in quanto ti consente di collaborare e comunicare in maniera diretta con il team React, il che offre una posizione unica all'interno dell'azienda.

Per essere un ingegnere di successo su un prodotto orientato al consumatore, è necessario possedere una serie di competenze diversificata. Scrivere un codice pulito e affidabile che dia la priorità alle prestazioni è essenziale, oltre a concentrarsi su aspetti come l'esperienza utente e l'accessibilità. È qui che lavorare con un linguaggio dinamico come React si rivela vantaggioso, in quanto consente agli sviluppatori di focalizzarsi sul processo di sviluppo senza un sovraccarico eccessivo. Con un background nello sviluppo mobile nativo, in particolare con applicazioni su larga scala, ho sperimentato in prima persona come le tempistiche dello sviluppo possano incidere sul lavoro quotidiano portando via tempo prezioso. Questo è il motivo per cui apprezzo l'uso di un DOM virtuale in React, che permette aggiornamenti efficienti e un rendering in tempo reale dei componenti dell'interfaccia utente. Nonostante la sua notevole diffusione tra sviluppatori e aziende di tutto il web, React rimane intuitivo e accessibile, grazie anche all'impiego di JavaScript/TypeScript (JS/TS), linguaggi ampiamente utilizzati dagli sviluppatori. Personalmente sono un fan di TypeScript con React, in quanto si tratta di un linguaggio statisticamente tipizzato che rende molto più semplice individuare bug già dalle prime fasi del processo di sviluppo.

Apprezzo molto anche i componenti funzionali di React per la loro utilità; la funzione di memorizzazione permette di ottimizzarne le prestazioni, il che a sua volta comporta un miglioramento significativo delle prestazioni dell'app prevenendo aggiornamenti di visualizzazione non necessari. In particolare, la facilità di riutilizzo dei componenti è fondamentale per le applicazioni su larga scala, dato che semplifica la manutenzione, i test e la gestione della base di codice.

Ti sei imbattuto in qualche falso mito su React o sullo sviluppo di software open source nel tuo percorso professionale?

In realtà, nella mia carriera non mi sono scontrato con molte convinzioni errate né su React né sul software open source; la maggior parte delle più grandi aziende del mondo utilizza e sviluppa software open source nelle proprie operazioni quotidiane e un'ampia community di sviluppatori lavora su progetti open source.

Ho sentito varie preoccupazioni riguardo a React Native, in particolare che è lento e adatto solo a piccoli progetti, con capacità limitate. Alcuni pensano che l'uso di JavaScript in React Native per interagire con i componenti nativi causi prestazioni più lente rispetto alle app scritte in modo nativo. Ci sono alcuni casi, come lo streaming, in cui le app native possono funzionare meglio, ma per la maggior parte delle app di uso quotidiano, che visualizzano principalmente immagini e testo e che favoriscono l'interazione dell'utente, React Native funziona altrettanto bene.

Caso ti aspetti in futuro da React?

React Native ha un'architettura solida ed è pensato per gestire applicazioni su larga scala grazie ai suoi aggiornamenti efficienti e al rendering dell'interfaccia utente in tempo reale. Assicura inoltre una notevole facilità di gestione del codice, aspetto che ne fa la soluzione ideale per progetti di grandi dimensioni. Inoltre, React Native offre agli sviluppatori la possibilità di accedere ai moduli nativi, fornendo accesso alle funzionalità native, e quindi consentendo di sviluppare applicazioni complete.

Quali risorse pensi siano utili per iniziare a utilizzare React? Hai qualche consiglio?

Quando ancora avevo poca dimestichezza con React agli inizi del mio percorso professionale, ho avuto la fortuna di lavorare per un'azienda che offriva l'accesso gratuito a un importante portale di formazione online con lezioni video tenute da esperti. Per me, il modo migliore per imparare è stato guardare quei video tutorial, grazie ai quali ho appreso in maniera graduale tutte le nozioni fondamentali. Una volta imparate le basi, l'esperienza pratica acquisita lavorando su progetti reali è stata preziosa per approfondire la mia comprensione di React. A chi non ha l'opportunità di farlo al lavoro, suggerisco di scegliere una cosa qualsiasi di proprio interesse e crearci un'app. Io decisi di iniziare creando il mio sito web personale con il mio portfolio. Devo anche dire che ho trovato la documentazione ufficiale di React Native davvero ben scritta, mi è stata di grande aiuto nella ricerca di informazioni specifiche.

Dove possono trovarti i nostri lettori per seguire il tuo lavoro?

Ho un account Github, ma la maggior parte delle mie esperienze lavorative sono proprietarie per ragioni di riservatezza di lavoro o sono progetti personali che non sono open-source. Mi piace utilizzare i social media e avere una buona presenza su Instagram, ma non li uso come piattaforma per parlare di lavoro e sviluppo. A dire il vero, sono più che altro una via di fuga.


Bene, a questo punto ringraziamo Andrea per aver dedicato un po' del suo tempo a questa intervista. È stato fantastico scoprire di più sul modo in cui React viene utilizzato per migliorare le applicazioni e come possiamo sfruttare quello che impariamo da ciò che creiamo qui per dare il nostro contributo alla community React. Ci auguriamo che abbiate trovato utile questa intervista e che vi abbia dato un'idea di come e dove React viene utilizzato in Meta.

Informazioni sulla serie Meet the Developers - React @ Meta

React è uno dei progetti open source più popolari e continua a confermarsi come uno dei framework web "più amati" negli ultimi anni. Noi di Meta crediamo che React sia una libreria eccezionale che aiuta gli sviluppatori a creare interfacce utente in modo semplice e su larga scala. Utilizzato da milioni di sviluppatori in tutto il mondo, dai semplici siti web alle applicazioni aziendali, React è una libreria open source adatta a qualsiasi esigenza.

Questo post fa parte della nostra serie Meet the Developers, in cui invitiamo ingegneri e sviluppatori che utilizzano regolarmente React a condividere le proprie esperienze e parlarci degli straordinari prodotti che stanno sviluppando con React qui in Meta. Cerca altri post di interviste in cui altri ingegneri e condividono con noi le loro opinioni su questo argomento.

Per maggiori informazioni su Meta Open Source, visita il nostro sito open source, iscriviti al nostro canale YouTube o seguici su Twitter, Facebook e LinkedIn.