Prendiamo come esempio il progetto Cultura. Il progetto Cultura è un esempio tipico e un riferimento per altri siti. Abbiamo lavorato su vari aspetti tecnici, tra cui:
- Uso di API esterne: abbiamo utilizzato le API (un'interfaccia che consente a diverse applicazioni software di comunicare e scambiare dati tra loro) per collegare il sito a servizi esterni. Questo ci ha permesso di migliorare il sito con nuove funzionalità.
- Proporre un'API: abbiamo sviluppato e presentato un'API per consentire ad altri sistemi di interagire con la nostra applicazione.
- Impostazione di una connessione SSO: abbiamo implementato una soluzione di Single Sign-On (che consente a un utente di effettuare il login una sola volta per accedere a diverse applicazioni senza doverlo rifare) per semplificare l'autenticazione degli utenti tra i diversi servizi.
- Utilizzo di funzionalità di back office nel front office: abbiamo utilizzato strumenti di back office per creare una sezione professionale accessibile dalla parte visibile del sito (front office). Questo ha reso l'interfaccia più facile da usare.
Questo progetto è stato un vero lavoro di squadra, con un'organizzazione rigorosa. Abbiamo applicato (quasi) alla lettera i principi di Scrum (regole che aiutano i team a lavorare in modo flessibile e collaborativo per realizzare progetti in piccole fasi). Questo ci ha permesso di strutturare bene il lavoro e di rispettare le scadenze.
"Perché considero questo progetto un successo? Perché non solo abbiamo raggiunto gli obiettivi tecnici e funzionali, ma abbiamo anche migliorato il nostro processo di sviluppo".
L'applicazione di metodologie agili, in particolare Scrum, ha facilitato il coordinamento del team e ha garantito la consegna di funzionalità di alta qualità nei tempi previsti. Questi progetti dimostrano la nostra capacità di gestire compiti complessi e di lavorare in modo collaborativo per fornire soluzioni efficaci e innovative.
Sono curioso di sapere come fate a garantire che il codice che scrivete rimanga non solo funzionale ma anche manutenibile a lungo termine. Potrebbe spiegarmi come riesce a garantire elevati standard di codifica e prestazioni ottimali per le applicazioni PHP che sviluppa? Quali strumenti o pratiche utilizzate per raggiungere questi obiettivi?
Lavoriamo principalmente con PHP, utilizzando Ibexa come Digital Experience Platform (DXP) e Symfony come framework. Symfony (il framework PHP più utilizzato in Francia) fornisce una struttura robusta e raccomandazioni di best practice che seguiamo rigorosamente. Allo stesso modo, Ibexa offre standard di qualità che integriamo sistematicamente nei nostri sviluppi.
Per garantire la qualità del codice, abbiamo messo in atto una serie di pratiche:
- Uso degli standard Symfony e Ibexa: seguiamo le raccomandazioni e le best practice proposte da Symfony e Ibexa, che ci aiutano a mantenere un codice pulito, performante e sicuro.
- Revisione del codice: ogni modifica al codice passa attraverso una Merge Request (MR) su diversi rami. Questa fase permette a diversi collaboratori di rivedere il codice, il che aiuta a identificare e correggere potenziali errori e a condividere le conoscenze all'interno del team.
- Test unitari e di integrazione: scriviamo test unitari per verificare che ogni componente funzioni correttamente. Inoltre, eseguiamo test di integrazione per garantire che i vari moduli interagiscano correttamente. Questo ci aiuta a individuare e prevenire le regressioni prima che il codice venga unito al ramo principale.
- Automazione dei test: utilizziamo strumenti di integrazione continua (CI) per automatizzare i test. Ogni volta che il codice viene modificato, viene eseguita automaticamente una suite di test per garantire che le nuove modifiche non introducano bug.
- Monitoraggio delle prestazioni: monitoriamo regolarmente le prestazioni delle nostre applicazioni in produzione ed effettuiamo ottimizzazioni ove necessario. Gli strumenti di monitoraggio e profilazione ci aiutano a individuare i colli di bottiglia e a migliorare l'efficienza delle nostre applicazioni.
"Adottando queste pratiche, ci assicuriamo di mantenere elevati standard di codifica e di fornire applicazioni affidabili e ad alte prestazioni".
Ora che avete stabilito queste best practice a pieni voti, mi chiedo come vedete evolvere il vostro ruolo di PHP Lead Developer nei prossimi anni. Ha qualche obiettivo specifico in termini di responsabilità o competenze che vorrebbe raggiungere?
A medio termine, il mio obiettivo è quello di capitalizzare la mia esperienza come PHP Lead Developer per posizionarmi come Technical Architect. Voglio ampliare le mie responsabilità al di là della gestione quotidiana dei progetti e del team, concentrandomi maggiormente sulla progettazione e sull'implementazione di soluzioni tecniche avanzate.
Aspiro a svolgere un ruolo chiave nella definizione di architetture software robuste e scalabili. Come posso farlo? Allineando strettamente le nostre scelte tecnologiche agli obiettivi strategici dell'azienda.
Questo include un forte coinvolgimento nella ricerca e nell'adozione di nuove tecnologie, nonché la supervisione dell'architettura generale dei progetti.
Amine, sviluppatore capo PHP presso l'agenzia digitale di Inforca
"A lungo termine, sono motivato ad accrescere le mie competenze e la mia influenza come Technical Architect. Questo mi permetterà di dare un contributo significativo all'innovazione e alla crescita tecnologica della nostra organizzazione."
In sintesi, sono determinato a crescere in questo ruolo per poter utilizzare le mie competenze tecniche e la mia leadership per sostenere il successo duraturo della nostra azienda.
In che modo Inforca sostiene le sue ambizioni e la accompagna nel suo sviluppo? In che modo l'azienda le consente di progredire nelle sue mansioni quotidiane?
L'azienda offre un ambiente di lavoro stimolante e risorse tecnologiche avanzate.
Quotidianamente, posso contare su un solido supporto tecnico che mi permette di risolvere efficacemente le sfide incontrate nei miei progetti. Inoltre, l'azienda investe nella formazione continua, che mi permette di mantenere le mie competenze aggiornate e di adattarmi ai cambiamenti del settore.
Infine, la cultura della collaborazione e dell'innovazione dell'azienda favorisce uno spirito di squadra dinamico, che ritengo essenziale per raggiungere insieme i nostri obiettivi.
Intervista di A.F, Digital Development and Events Manager di Inforca, ad Amine, PHP Lead Developer dell'agenzia digitale di Inforca.