Dependency injection framework per unity

Diffussissimo engine multipiattaforma creato da Unity Technologies.
Avatar utente
Paolo Bragonzi
Messaggi: 4
Iscritto il: 02 gen 2016, 10:26
Località: Milano
Nome: Paolo
Cognome: Bragonzi
Contatta:

Dependency injection framework per unity

Messaggioda Paolo Bragonzi » 10 mar 2016, 21:57

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?
[Brago]
Paolo Bragonzi
@IndieConstruct

Avatar utente
Davide Barbieri
Messaggi: 58
Iscritto il: 16 nov 2015, 22:10
Nome: Davide
Cognome: Barbieri

Re: Dependency injection framework per unity

Messaggioda Davide Barbieri » 11 mar 2016, 15:16

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? =)

Avatar utente
Paolo Bragonzi
Messaggi: 4
Iscritto il: 02 gen 2016, 10:26
Località: Milano
Nome: Paolo
Cognome: Bragonzi
Contatta:

Re: Dependency injection framework per unity

Messaggioda Paolo Bragonzi » 14 mar 2016, 15:35

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 ;)
[Brago]
Paolo Bragonzi
@IndieConstruct

Avatar utente
Davide Barbieri
Messaggi: 58
Iscritto il: 16 nov 2015, 22:10
Nome: Davide
Cognome: Barbieri

Re: Dependency injection framework per unity

Messaggioda Davide Barbieri » 14 mar 2016, 17:07

Sisì, quando hai fatto un po' più di esperienza posta, che la cosa mi interessa =))


Torna a “Unity3D”

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite