"My" review

Più cresce la complessità dell'architettura di una soluzione (niente di che, nel mio caso, ovviamente... ), più mi trovo a scrivere cose tipo:

sample.InsertedBy = Authentication.AuthenticationManagerFactory.GetAuthenticationManager().CurrentUser;

Il codice diventa sempre più dannoso per il tasto "." tanto più aumenta la profondità di annidamento degli AbstractFactory.

Il pensiero è andato subito alla classe My introdotta in Visual Basic 2005 (anche se ormai uso al 90% C#) e stavo pensando ad una classe simile anche se rigorosamente internal (l'associazione di colori è puramente casuale) in cui riversare le chiamate ai metodi statici più gettonati, tipo:

sample.InsertedBy = MyBiz.CurrentUser;

Non so se siano in tanti ad aver adottato una tecnica simile, sinceramente tranne nel caso del My di VB non ho sentito altri "use cases". Vedremo se emergeranno delle controindicazioni...

Print | posted @ lunedì 1 ottobre 2007 20:54

Comments on this entry:

Gravatar # Re: "My" review
by Roberto Messora at 02/10/2007 01:48

Oppure Mario si smette di usare Abstract Factory fatte a manina e si comincia ad utilizzare un framework di IoC...
;-)
saluti
Gravatar # re: "My" review
by Mario Duzioni at 02/10/2007 12:45

Beh, un framework è tutt'altra cosa rispetto ad un trick interno per scrivere un pochino meno codice...

Due pesi ben distinti giustificati da due obiettivi ben distinti. (Cmq ribadisco che non ho nulla a priori contro l'adozione di un framework di IoC).

Ciao Roby!
Gravatar # re: "My" review
by Tommaso Caldarola at 02/10/2007 12:45

Una controindicazione potrebbe essere il refactoring, io nel mio team ho vietato l'uso di using non per le classi del framework; con questa direttiva si possono usare nomi più corti, ovvero se vuoi un manager da un factory può bastare una Get dopo AuthenticationManagerFactory.
Gravatar # re: "My" review
by Tommaso Caldarola at 02/10/2007 14:21

Riguardo il MyCompanyName.MyProductName.BizLayer.MyEntityManager.GetEntity(myId) si, tutti scrivono in quel modo, e bada, dopo diversi mesi con una decina di persone la leggibilità è la cosa più importante.

Per la Get intendevo dire che, in molti casi c'è ripetitività, quindi si potrebbe scrivere Authentication.Manager.Get per indicare che tale metodo restituisce appunto un manager... sempre se si scrive tutto!!!

Ciao.

Comments have been closed on this topic.