Piranha, lo strumento OpenSource di Uber che va a caccia del codice obsoleto

0

Uber ha reso disponibile il progetto open-source Piranha, uno strumento che permette di cancellare automaticamente porzioni di codice “stale” (vecchio, non più in uso).

Dal blog di Uber:

“At Uber, we use feature flags to customize our mobile app execution, serving different features to different sets of users. These flags allow us to […] gradually roll-out features to our users and experiment with different variations of the same functionality […] However, after a feature has either been 100% rolled out to our users or an experimental feature has been deemed unsuccessful, the feature flag in the code becomes obsolete”,

“Qui in Uber, utilizziamo delle feature flag per personalizzare l’esecuzione della nostra app mobile, per offrire diversi set di funzionalità per diversi set di utenti. Queste flag ci permettono […] di implementare gradualmente le funzionalità per i nostri utenti e sperimentare diverse varianti della stessa funzionalità […] Tuttavia, dopo che una feature è stata rilasciata a tutti gli utenti, tali flag nel codice diventano obsolete”

Come funziona? Per farla molto, molto semplice:

Al tool vengono dati in pasto il codice sorgente, la feature flag obsoleta, un eventuale risultato del codice (il suo output) e l’autore. Piranha scansiona il codice, si occupa del refactoring e notifica l’autore indicando tutte le differenze necessarie e tutti i riferimenti alla feature flag che verranno cancellati. L’autore può quindi decidere se accettare le modifiche o procedere personalmente ad’ una ulteriore ottimizzazione. Un bot apposito, tale PiranhaTidy, notifica con appositi reminder le “diff” non applicate da troppo tempo. Per non lasciare nulla al caso, Piranha è in grado di analizzare il codice (secondo Uber può gestire tranquillamente milioni di righe per scansione) e segnalare agli autori feature flag non ottimizzate da troppo tempo (indicabile, chiaramente, con un valore a scelta).

A cosa serve tutto ciò? Il processo di refactoring e pulizia del codice incide sulla velocità di release ed è uno dei task che richiede un carico di lavoro notevole da parte degli sviluppatori. Lo step di ottimizzazione del codice, con Piranha, è a carico dello strumento, che si occupa di “rimasticarlo” e inoltrarlo per la sola revisione a chi nel frattempo può occuparsi di sviluppare nuove feature.

Il tutto, fosse il caso di ribadirlo, disponibile in forma open-source. Mica male…

Amministratore di sistema “umile ma onesto”. Inciampato in Linux per caso, è stato l’inizio di una storia d’amore bellissima.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *