
PTC per il software: traduzione IA premium, coerente in tutto il tuo sito web e prodotto
Sviluppi software o app mobili oltre al tuo sito WordPress? PTC, il motore di traduzione IA di WPML, ora traduce anche questi.
La programmazione funzionale è un argomento molto discusso tra gli sviluppatori oggigiorno, e non senza motivo. La versione 4.5 di WPML è stata un progetto su larga scala che ha introdotto l’opzione per tradurre automaticamente il tuo sito web. Per noi, è stato anche il momento giusto per passare alla programmazione funzionale. Ecco cosa abbiamo imparato durante il processo.
Probabilmente avrai sentito dire che la programmazione funzionale rende il tuo codice più leggibile ed è più facile da testare. Ma per cogliere appieno la programmazione funzionale, è importante comprenderne i concetti correlati.
Per cominciare, la programmazione funzionale è un paradigma di programmazione in cui l’enfasi è sull’uso di funzioni per costruire software e sulla composizione di funzioni tra loro per creare funzioni più complesse. La programmazione funzionale rende il codice di natura più dichiarativa. Esprimi ciò che vuoi ottenere, piuttosto che avere una sequenza di istruzioni che aggiornano lo stato del programma.
È importante prendere nota delle funzioni che utilizza, in particolare le funzioni pure. Le funzioni pure ricevono dati e restituiscono dati, ma non hanno altri effetti collaterali. Questo rende le funzioni molto facili da testare perché, se fornisci gli stessi parametri, ottieni lo stesso risultato.
In parole povere, nella programmazione funzionale l’output dipende dall’input.
WPML è un progetto grande e complesso. Fino a poco tempo fa, abbiamo utilizzato la programmazione orientata agli oggetti (OOP) per cercare di gestire questa complessità. Una delle sfide principali è scrivere codice di test (unit test) per tutti i nostri progetti. Quando scriviamo codice testabile, dobbiamo assicurarci che le modifiche apportate non rompano il codice esistente.
Gli unit test sul codice OOP possono arrivare solo fino a un certo punto. Le dipendenze del codice devono essere mockate affinché le classi possano essere testate in modo indipendente. Di conseguenza, i test finiscono per essere grandi e complessi.
Si dice che l’obiettivo principale della programmazione funzionale sia “Cosa risolvere”. Al contrario, la programmazione orientata agli oggetti adotta un approccio basato sul “Come risolvere”. Con questo in mente, ci è sembrato che la programmazione funzionale potesse aiutarci a superare alcune delle nostre sfide.
Quando parliamo di programmazione funzionale, il PHP non è il primo linguaggio che viene in mente, anche se ci permette di introdurre uno stile funzionale. Per esempio, gli hook e i filtri che permettono di estendere WordPress usano le funzioni per sovrascrivere le funzionalità di WordPress.
Sfortunatamente, non esiste una libreria standard per utilizzare un paradigma più funzionale in PHP. Abbiamo esaminato molte librerie, ma nessuna aveva esattamente ciò di cui avevamo bisogno per scrivere codice espressivo in stile funzionale. Quindi, abbiamo deciso di scrivere la nostra libreria. Abbiamo tratto ispirazione da diverse fonti, ma soprattutto dalle librerie Javascript, che abbiamo trovato più mature.
La programmazione funzionale ha un approccio diverso rispetto ad altri paradigmi, quindi passare a un paradigma di programmazione funzionale è in realtà un grande passo. Ti richiede di cambiare il modo in cui pensi alla scrittura del codice e alla risoluzione dei problemi. Ci vuole molta pratica per scrivere codice espressivo che sia chiaro e conciso.
Pensiamo decisamente di sì. La programmazione funzionale ha una serie di caratteristiche che giocano a nostro vantaggio:
Ma ovviamente, niente è perfetto. Sebbene la programmazione funzionale sia più concisa e prevedibile, presenta degli svantaggi, specialmente se non hai familiarità con essa:
Inutile dire che la popolarità della programmazione funzionale è molto più di una semplice tendenza. Per la sua natura, la programmazione funzionale è ottima per attività come il machine learning e l’analisi dei dati. Di conseguenza, aziende di tutte le dimensioni hanno iniziato a mostrare interesse, o addirittura a iniziare la loro transizione verso la programmazione funzionale. Questo non significa che dovresti dire addio per sempre alla programmazione orientata agli oggetti, ma vale la pena dare una possibilità alla programmazione funzionale. Anche se alla fine non la userai mai, è probabile che migliorerai le tue competenze come sviluppatore.
Se ti interessa saperne di più, ti suggeriamo di iniziare con la serie di articoli del blog Composing Software.
Una volta che sarai pronto ad approfondire, dai un’occhiata al repository del nostro progetto FP.
Siamo sempre alla ricerca di sviluppatori eccezionali da inserire nel nostro team. Se pensi di essere la persona giusta, non aspettare oltre – candidati oggi stesso.