Architettura a plug-in
L’idea è di utilizzare una sorta di architettura a plug-in, estendibile da altri sviluppatori senza comprometterne le funzionalità esistenti e la logica dei dati.
Questo permette al team di sviluppo di un prodotto di delegare parte dello sviluppo a terze parti o addirittura all’utilizzatore, e di concentrarsi sullo sviluppo di funzionalità core. Inoltre il meccanismo a plugin può essere utilizzato dagli sviluppatori stessi per ottenere una migliore organizzazione del codice.
Cerchiamo di rendere più chiaro quest’ultimo concetto.
Pensiamo alla nostra applicazione per la quale si prevedono dei punti di estensibilità. Definiremmo delle interfacce ad hoc per permettere agli utilizzatori di avere la possibilità di estenderla secondo le loro esigenze. Questo comporta che noi, sviluppatori di questa applicazione, non dobbiamo progettarla prevedendo tutti i possibili scenari di utilizzo (anche quelli più singolari) bensì concentrandosi sulle funzionalità utili a tutti. Avere un progetto estendibile porterebbe vantaggi in termini commerciali perché alla classica domanda “Questo prodotto può fare questa cosa?” la risposta passerebbe da “No” a “No, ma potresti svilupparla per rispondere ad una tua esigenza”.