Pagina 1 di 1

Dependency injection framework per unity

Inviato: 10 mar 2016, 21:57
da Paolo Bragonzi
Ciao a tutti!
mi son deciso finalmente ad usare un framework di dependency injection per i miei progetti.
Dopo un po' di confronti e vari test ho fatto la mia scelta e mi sono buttato su Zenject (https://github.com/modesttree/Zenject) progetto open source, molto attivo fin dalla sua creazione, 1 contributor maggiore più una quindicina di minori e una nutrita community.
Ultima nota, ma non meno importante, nato da un fork di un progetto di Sebastiano Mandalà (tra i fondatori di gameprog).

Qualcuno lo usa / lo userà o usa un altro framework di DI?

Re: Dependency injection framework per unity

Inviato: 11 mar 2016, 15:16
da Davide Barbieri
Sembra fatto bene; ricordo Sebastiano che ne aveva fatto uno tempo fa.

Io preferisco non usare framework di dependency injection. Non mi piace che tutto il mio codice dipenda da
un framework (quindi escludo tutte le soluzioni dove mettere attributi tipo [Inject], ecc.)
e passo le dipendenze da costruttore (se necessarie), e via proprietà (se opzionali).
Alcuni framework ti permettono di usare direttamente il costruttore senza "sporcare" le varie classi;
mi pare anche questo, per cui mi sembra apprezzabile.

Non sono completamente d'accordo che sia necessario avere un'unica composition root, vicina all'entry point del programma,
o almeno io non ne ho sentito il bisogno. In teoria ne capisco il motivo, ma in pratica,
se l'architettura del software è fatta bene, io non ho visto grossi problemi a separare i contesti
e rendere "usa e getta" 3 o 4 classi diverse dove scegliere le implementazioni delle interfacce.

Però magari quando mi toccherà un progetto un po' più grande, cambierò idea XD

A te cosa ha fatto cambiare idea? =)

Re: Dependency injection framework per unity

Inviato: 14 mar 2016, 15:35
da Paolo Bragonzi
Ciao Davide! Sei sempre un passo avanti! :)
In effetti anche io per ora lo sto usando nella stessa maniera che descrivevi tu, tutte le dipendenze iniettate nei costruttori in modo da evitare di perderne il controllo (peraltro è suggerito anche nella documentazione di usare solo i costruttori se possibile) comprese le factory per gli oggetti da istanziare a Runtime.
Ho provato ad usare tutte le varie funzionalità che mette a disposizione come i sub-container, decorators, etc, ma devo ancora capirne a fondo l'utilizzo e l'effettiva utilità. Conto di inserire man mano le funzionalità quando dovessero rendersi necessarie/convenienti.
Per quanto riguarda le motivazioni, è sempre la stessa: cercare di crearmi un framework ordinato, più manutenibile e riutilizzabile con il minor sforzo di refactoring possibile (e qui spero che gli installer consentano proprio quello). Non ci sono ancora arrivato, ma le prime impressioni mi fanno ben sperare. Posterò magari aggiornamenti sulla mia esperienza a riguardo ;)

Re: Dependency injection framework per unity

Inviato: 14 mar 2016, 17:07
da Davide Barbieri
Sisì, quando hai fatto un po' più di esperienza posta, che la cosa mi interessa =))