Logo UGIdotNET

Discussione 'Una gara sui Design Pattern?'

# Pubblicato il 16 feb 2004 21.29 - Rispondi
Luca Minudel
Una gara sui Design Pattern?
Ciao a tutti,

questa proposta riguarda i design pattern ed un modo per impararli e ricordarli facilmente.
In rete è facile trovare spiegazioni dei design pattern e implementazioni di esempio in C# e anche VB.NET.

Quello che manca invece sono dei casi d'uso di ogni singolo design pattern, un caso d'uso che riguarda del software che sia ben noto a noi sviluppatori .NET.

Ho notato che associando un caso d'uso del mondo .NET ad ogni design pattern (per esempio System.DBNull.Value al pattern Singleton) diventa _molto_ più facile ed immediato capire e ricordare il design pattern, cioè diventa più facile ed immediato applicarlo!

Quindi propongo una "gara" tra i membri di UGIdotNET, la gara consisterebbe nell'individuare un caso d'uso di un design pattern nel .NET Framework.

Magari ogni settimana potrebbe essere proposto un design pattern, e tra tutti i casi d'uso segnalati dai membri di UGI, verrebbe scelto quello che è più semplice e noto (ossia usato più frequentemente e quindi molto conosciuto da noi sviluppatori .NET).
E magari... alla fine UGIdotNET potrebbe premiare il membro della comunity che ha proposto i migliori casi d'uso!

Cosa ne pensate?

bye (luKa)

http://www.luca.minudel.it/freestaff/
http://dev.luca.minudel.it/
http://nullabletypes.sf.net/

# Pubblicato il 17 feb 2004 9.51 - Rispondi
Federico Zanin
Re: Una gara sui Design Pattern?
Ciao a tutti,
condivido e sostengo l'idea di Luca, e quindi invito lo staff di UGIdotNet a considerare la fattibilità dell'iniziativa. Per prima cosa lo staff potrebbe preparare un regolamento del concorso, che stabilisca le modalità di partecipazione e i tempi di svolgimento e, perché no, i premi per i vincitori, come per ogni concorso che si rispetti. Magari con il supporto di qualche sponsor!
# Pubblicato il 23 feb 2004 19.29 - Rispondi
Ernest Morariu
Re: Una gara sui Design Pattern?

Una sola domanda : Che cosa sono i Design Pattern ?

Ernest
# Pubblicato il 06 mar 2004 11.38 - Rispondi
Andrea Saltarello [UGIdotNET]
Re: Una gara sui Design Pattern?
> Ciao a tutti,
>
Ciao Luca

> questa proposta riguarda i design pattern ed un modo per impararli e
> ricordarli facilmente.
ipnosi? :-D

> In rete è facile trovare spiegazioni dei design pattern e implementazioni di
> esempio in C# e anche VB.NET.
>
yup, a partire dal celeberrimo http://www.dofactory.com

> Quello che manca invece sono dei casi d'uso di ogni singolo design pattern, un
> caso d'uso che riguarda del software che sia ben noto a noi sviluppatori .NET.
>
concordo: singleton per le windows forms, factory method per adonet, observer per un editor, ...

> Ho notato che associando un caso d'uso del mondo .NET ad ogni design pattern
> (per esempio System.DBNull.Value al pattern Singleton) diventa _molto_ più
> facile ed immediato capire e ricordare il design pattern, cioè diventa più
> facile ed immediato applicarlo!
>
concordo: in effetti, Fowler sul sito dofactory ci prova, ma deve cmq ricondurre il tutto ad esempi (pur reali) non strettamente attinenti al framework

> Quindi propongo una "gara" tra i membri di UGIdotNET, la gara consisterebbe
> nell'individuare un caso d'uso di un design pattern nel .NET Framework.
>
> Magari ogni settimana potrebbe essere proposto un design pattern, e tra tutti i
> casi d'uso segnalati dai membri di UGI, verrebbe scelto quello che è più
> semplice e noto (ossia usato più frequentemente e quindi molto conosciuto da noi
> sviluppatori .NET).
> E magari... alla fine UGIdotNET potrebbe premiare il membro della comunity che
> ha proposto i migliori casi d'uso!
>
> Cosa ne pensate?
>
penso che sia una buona idea. Potremmo creare una categoria "Design Patterns" nella sezione articoli, nella quale pubblicare i contributi, ed enfatizzzare l'iniziativa in qualche modo. Dovremmo anche scegliere quali pattern "ammettere", anche se IMHO potremmo iniziare focalizzandoci sui GoF
Altre idee?

> bye (luKa)
.A
# Pubblicato il 23 feb 2004 21.58 - Rispondi
Luca Minudel
Re: Una gara sui Design Pattern?
Ciao Ernest,
nella programmazione Object-Oriented capita spesso di trovarsi a risolvere problemi comuni (per esempio: assicurarsi che di una classe esista una sola istanza; ma ci sono molti altri esempi di design pattern).

Questi problemi comuni si ripetono indipendentemente dal tipo di applicazione che si stà sviluppando.

Ogni singolo Design Pattern è quindi un modello che descrive la parte sostanziale di un singolo problema problema e la sua soluzione, in maniera sufficentemente astratta che la soluzione possa essere applicata ad una infinità di casi concreti (di quel problema).

Ogni singolo Design Pattern è contraddistinto da un nome, dalla descrizione del problema, la soluzione (il termini di classi, relazioni, responsabilità) e le caratteristiche della soluzione (pregi, difetti, compromessi, varianti).

Un Design Pattern nasce da soluzioni concrete che sono state applicate con successo in casi reali.

Ecco un esempio concreto: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/singletondespatt.asp

Questo è il famoso libro che spiega l'argomento e individua i più famosi e comuni Design Pattern: Design Patterns - Erich Gamma et al. - Addison Wesley Professional.

Quindi per un programmatore di linguaggi Object Oriented come C# e VB.NET conoscere i Design Pattern (quelli descritti dal libro di cui sopra) e saperli applicare ai problemi che incontra significa avere una marcia in più.
Inoltre se nel team di sviluppo tutti conoscono i design pattern, parlare e descrivere i problemi utilizzando i Design Pattern significa mettere un turbo alla comunicazione e la comprensione reciproca e quindi migliorare la sinergia.

bye (luKa)
# Pubblicato il 24 feb 2004 17.41 - Rispondi
Ernest Morariu
Re: Una gara sui Design Pattern?
Luca,

il termine non mi è proprio sconosciuto. Io mi sono comprato qualche mese fà un libro chiamato proprio "Design Patterns" (per .NET) ; quando mi è arrivato, gli ho dato un'occhiata, però , a dire la verità, li ho datto una precedenza bassa, nel senso che mi sono proposto tanti altri libri, prima di leggere questo. Non è che lo considero di poca importanza, ma credo che il requisito principale di questo libro è di avere chiari tutti i concetti, tutti gli strumenti presenti nella tecnologia NET ; sicome io ho ancora molte lacune, ho deciso lasciarla per più tradi.

A quanto ho capito io, "design-patterns" è una specia di elenco di "Best Practices" per fare certe/determinate cose.

Quello che non ho capito, ed il motivo per cui ho fatto la mia domanda , è cosa sarebbe una gara di "design-patterns" ? Questi patterns(modelli), sono sempre il soggetto di un compromesso(come te stesso dicevi) di velocita - generalità - praticità - funzionalità - comodità ...

Sarà difficile dire "questo è il migliore" , "il migliore" nel senso assoluto , perchè dopo ci sarà sempre un "... dal punto di vista..." .

Ernest






on 23. Feb 2004 21:58 Luca Minudel wrote:
> Ciao Ernest,
> nella programmazione Object-Oriented capita spesso di trovarsi a risolvere problemi
> comuni (per esempio: assicurarsi che di una classe esista una sola istanza; ma ci sono
> molti altri esempi di design pattern).
>
> Questi problemi comuni si ripetono indipendentemente dal tipo di applicazione che si stà
> sviluppando.
>
> Ogni singolo Design Pattern è quindi un modello che descrive la parte sostanziale di un
> singolo problema problema e la sua soluzione, in maniera sufficentemente astratta che la
> soluzione possa essere applicata ad una infinità di casi concreti (di quel problema).
>
> Ogni singolo Design Pattern è contraddistinto da un nome, dalla descrizione del problema,
> la soluzione (il termini di classi, relazioni, responsabilità) e le caratteristiche della
> soluzione (pregi, difetti, compromessi, varianti).
>
> Un Design Pattern nasce da soluzioni concrete che sono state applicate con successo in
> casi reali.
>
> Ecco un esempio concreto:
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/singletondespa
> tt.asp
>
> Questo è il famoso libro che spiega l'argomento e individua i più famosi e comuni Design
> Pattern: Design Patterns - Erich Gamma et al. - Addison Wesley Professional.
>
> Quindi per un programmatore di linguaggi Object Oriented come C# e VB.NET conoscere i
> Design Pattern (quelli descritti dal libro di cui sopra) e saperli applicare ai problemi
> che incontra significa avere una marcia in più.
> Inoltre se nel team di sviluppo tutti conoscono i design pattern, parlare e descrivere i
> problemi utilizzando i Design Pattern significa mettere un turbo alla comunicazione e la
> comprensione reciproca e quindi migliorare la sinergia.
>
> bye (luKa)
# Pubblicato il 24 feb 2004 20.59 - Rispondi
Luca Minudel
Re: Una gara sui Design Pattern?

>
> A quanto ho capito io, "design-patterns" è una specia di elenco di "Best Practices" per fare
> certe/determinate cose.
>


Per evitare fraintendimenti, per design pattern _non_ intendo le linee guida architetturali che per esempio MS discute e propone qui (che consiglio vivamente di guardare a chi progetta applicazioni .NET):
- http://msdn.microsoft.com/architecture/
- http://www.microsoft.com/resources/practices/completelist.asp

bensì intendo questi design pattern:
Abstract Factory, Adapter, Bridge, Builder, Chain of Responsibility, Command, Composite, Decorator, Facade, Factory Method, Flyweight, Interpreter, Iterator, Mediator, Memento, Observer, Prototype, Proxy, Singleton, State, Strategy, Template Method e Visitor.

>
> cosa sarebbe una gara di "design-patterns"
>

Un design pattern alla volta verrebbe proposto (magari uno a settimana) ed i partecipanti alla gara dovrebbero scovare un caso di impiego di quel design pattern nel .NET Framework (nella BCL, ASP.NET, ADO.NET, WinForms, etc).
Per esempio per il pattern Singleton un partecipante potrebbe rispondere segnalando System.DBNull.Value.

Tra tutte le risposte verrebbe scelta quella che è più semplice e nota (ossia che si riferisce a classi/parti del .NET Framework usate più frequentemente ossia più conosciute).

Alla fine dei pattern verrebbe stilata la classifica con i migliori contributori... e noi tutti avremmo a disposizione una valida lista di casi d'uso reali dei design pattern nel .NET Framework (ricordo, utile allo scopo di meglio comprenderli e più facilmente ricordarli quindi per meglio applicarli).

Sono riuscito ad essere comprensibile ;-) ?

ciao (luKa)
# Pubblicato il 27 feb 2004 14.34 - Rispondi
Ernest Morariu
Re: Una gara sui Design Pattern?

Grazie 1000 !

Ernest

# Pubblicato il 12 mar 2004 20.42 - Rispondi
Luca Minudel
Re: Una gara sui Design Pattern?
Ciao Andrea,

mi fa piacere l'idea ti interessi ;-)

> penso che sia una buona idea. Potremmo creare una categoria "Design Patterns" nella
> sezione articoli, nella quale pubblicare i contributi, ed enfatizzzare l'iniziativa
> in qualche modo. Dovremmo anche scegliere quali pattern "ammettere", anche se IMHO
> potremmo iniziare focalizzandoci sui GoF

Concordo e ribadisco queste precisazioni fatte a Ernest: http://www.ugidotnet.org/forum/b.asp?m=33341

>
> Altre idee?
>

Mi piacerebbe che all'iniziativa beneficiassero soprattutto quanti sono nuovi o quasi ai design pattern, come se questa fosse una "esercitazione" guidata.

Per questo suggerirei che prima di fissare su Articolo i contributi migliori, la "gara" avvenga sul Forum Metodologie (mi sembra la mamma sua o sbaglio?) in modo che tutti possano partecipare.

Inoltre per lasciare spazio proprio a chi vuole esercitarsi... gli "esperti" gli metterei nella giuria, esclusi dalla gara, con il compito di dare contributi aggiuntivi solo dopo che tutti si sono già espressi.

Resta da capire... a quanti interessa fare questa gara ;-)
E quale premio mettere in palio per motivarli a partecipare :-O
# Pubblicato il 14 mar 2004 23.27 - Rispondi
Adrian Florea
Re: Una gara sui Design Pattern?
Ciao Andrea, ciao luKa,

> Potremmo creare una categoria "Design Patterns" nella
> sezione articoli, nella quale pubblicare i contributi,

Sto preparando qualcosa di bello :-) Da un paio di settimane ho postato degli spunti su questo argomento sul mio blog: http://www.ugidotnet.org/7322.blog

(Ma a proposito di blog, li leggete tutti tramite SharpReader o altro RSS aggregator oppure qualcuno visita ogni tanto anche la home dei blog via web: http://www.ugidotnet.org/blog.aspx ?)

> potremmo iniziare focalizzandoci sui GoF

Sul mio blog potete vedere anche pattern presi dall'eccellente libro di Fowler (EofEAA) che è vero che offre esempi meno classici di GoF ma secondo me più vicini alla pratica di ogni giorno, in più ci regala tante implementazioni in C# e ha sempre un occhio di riguardo per .NET

> > bye (luKa)
> .A

Ciao a tutti,

Adrian
# Pubblicato il 15 mar 2004 18.48 - Rispondi
Luca Minudel
Re: Una gara sui Design Pattern?
Ciao Adrian,

ho letto il tuo blog ed è *esattamente* quello che intendevo!!!

Lo scopo della "gara" è quello di coinvolgere anKe a ki preferisce dedicare tempo ad Design Pattern guidato da qualcuno, usare la "gara" come una esercitazione guidata o semplicemente fare da spettatore per iniziare a studiare i pattern.

# Pubblicato il 15 mar 2004 18.48 - Rispondi
Luca Minudel
Re: Una gara sui Design Pattern?
Ciao Adrian,

ho letto il tuo blog ed è *esattamente* quello che intendevo!!!

Lo scopo della "gara" è quello di coinvolgere anKe a ki preferisce dedicare tempo ad Design Pattern guidato da qualcuno, usare la "gara" come una esercitazione guidata o semplicemente fare da spettatore per iniziare a studiare i pattern.


© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185