(luKa)
Scrum, XP, Team dynamics, Leadership, Creativity & Fun
<< Esempio di codice con e senza IF/SWITCH
|
Home
|
Creatività: dove noi tecnici possiamo migliorare >>
I programmatori migliori usano meno IF/SWITCH (codice di esempio)
Ecco un esempio con le 2 implementazioni a confronto:
Esempio di codice con e senza IF/SWITCH
Ecco altri esempi qui:
Codice Anti-If di esempio
Tags :
Agile
|
Pratiche
|
Disciplina
|
Professione
|
Semplicità
|
Progettazione Software
|
Print
| posted @ lunedì 30 marzo 2009 0.52
Comments on this entry:
#
re: I programmatori migliori usano meno IF/SWITCH (codice di esempio)
by
Luca Minudel
at 30/03/2009 0.58
@Antonio
L'esempio che hai chiesto é il primo
@Raffaele
Ecco degli esempi di codice.
In questi casi non mi sembra una "riduzione a tutti i costi" che anch'io reputo sbagliata, sono invece applicazioni di skill acquisiti
Se trovi il tempo e l'occasione di dice come F# avrebbe aiutato in questi casi sei il benvenuto visto che hai provocato la mia curiosita :)
#
re: I programmatori migliori usano meno IF/SWITCH (codice di esempio)
by
Davide Mauri
at 30/03/2009 1.42
Io ho la mia idea su come definire l'approcio di chi scrive le 57 righe di codice al posto delle ottimali 8:
community.ugiss.org/.../brute-force-coding.aspx
L'ho scritta avendo in mente il codice SQL, ma direi che si può estendere a qualsiasi linguaggio.
#
re: I programmatori migliori usano meno IF/SWITCH (codice di esempio)
by
Antonio Ganci
at 30/03/2009 8.59
Bella la prima implementazione!
Migliorerei la leggibilità di questa riga di codice:
> Point moveDirection = (Point)moveCommand.Direction * Math.Sign(moveCommand.Steps);
Anzichè Point userei la classe Vector2d (o anche solo Vector ma non è chiaro che è composto da due elementi).
Diventerebbe così:
Vector2d moveDirection = Vector2d.From(moveCommand.Direction).MultiplyBy(moveCommand.Steps).Normalize();
Nel codice precedente IMHO si davano troppe cose per scontato.
Cosa ne pensi?
#
re: I programmatori migliori usano meno IF/SWITCH (codice di esempio)
by
Luca Minudel
at 30/03/2009 9.30
@Antonio
concodo - un dubbio su normalize che magari é troppo matematichese - ma giusto per dire
#
re: I programmatori migliori usano meno IF/SWITCH (codice di esempio)
by
Luca Minudel
at 30/03/2009 13.39
@Davide
"Brute Force" mi evoca l'uomo primitivo - nome azzeccato :)
#
re: I programmatori migliori usano meno IF/SWITCH (codice di esempio)
by
Raffaele Rialdi
at 30/03/2009 14.19
Come dicevo, lo switch mappa molto bene e spesso sul polimorfismo e infatti uno degli esempi è proprio quello.
L'altro esempio è un 'classico' :)
Non è purtroppo sempre così facile.
Per quanto riguarda l'esempio F#, leggi questo thread:
blogs.msdn.com/.../...e-numeri-pari-e-dispari.aspx
Anche la soluzione funzionale con C# è ovviamente 'de-iffizzata' in quanto è la logica funzionale a rendere cicli (che implicitamente includono degli if) e controlli non imperativi.
Va da se che anche in F# hai la necessità di eseguire gli if (cosa ovvia visto che le comparazioni sono una delle poche cose che una CPU sa fare). Il vantaggio è il partizionamento dei linguaggi funzionali.
Your comment:
Title:
Name:
Email:
Website:
Comment:
Remember Me?
Please add 7 and 6 and type the answer here:
Enter the code shown above:
My Company
Translate
Translate into ENGLISH
Traduci al ITALIANO
Scan Dev Tour
Agile Testing Days
Øredev 2011
Italian Agile Day
License
This Blog
by
Luca Minudel
is licensed under a
Creative Commons Attribution 3.0 Unported License
.
About
Contact
Login
Tag Cloud
Agile
Aziende
Cliente
Complessità
Comunicazione
Conflitto
Creatività
Disciplina
Innovazione
Leadership
Lean Agile
Motivazione
Negoziazione
Pratiche
Progettazione Software
Semplicita
Team
Team building
Team Work
Tools
Archives
febbraio 2012 (2)
gennaio 2012 (7)
dicembre 2011 (7)
novembre 2011 (1)
ottobre 2011 (5)
settembre 2011 (2)
agosto 2011 (8)
luglio 2011 (5)
giugno 2011 (4)
maggio 2011 (3)
aprile 2011 (4)
marzo 2011 (5)
febbraio 2011 (6)
gennaio 2011 (5)
dicembre 2010 (3)
novembre 2010 (8)
ottobre 2010 (5)
settembre 2010 (14)
agosto 2010 (16)
luglio 2010 (31)
giugno 2010 (11)
maggio 2010 (17)
aprile 2010 (11)
marzo 2010 (8)
febbraio 2010 (7)
gennaio 2010 (7)
dicembre 2009 (15)
novembre 2009 (18)
ottobre 2009 (16)
settembre 2009 (11)
agosto 2009 (7)
luglio 2009 (18)
giugno 2009 (36)
maggio 2009 (8)
aprile 2009 (19)
marzo 2009 (32)
febbraio 2009 (21)
gennaio 2009 (26)
dicembre 2008 (17)
novembre 2008 (9)
ottobre 2008 (16)
settembre 2008 (14)
agosto 2008 (24)
luglio 2008 (16)
giugno 2008 (30)
maggio 2008 (25)
aprile 2008 (12)
marzo 2008 (11)
febbraio 2008 (5)
gennaio 2008 (10)
dicembre 2007 (8)
novembre 2007 (17)
ottobre 2007 (15)
settembre 2007 (15)
agosto 2007 (5)
luglio 2007 (5)
giugno 2007 (3)
maggio 2007 (6)
aprile 2007 (4)
marzo 2007 (7)
febbraio 2007 (9)
gennaio 2007 (10)
dicembre 2006 (8)
novembre 2006 (14)
ottobre 2006 (10)
settembre 2006 (6)
agosto 2006 (11)
luglio 2006 (6)
giugno 2006 (10)
maggio 2006 (1)
aprile 2006 (4)
marzo 2006 (7)
febbraio 2006 (6)
gennaio 2006 (6)
dicembre 2005 (10)
novembre 2005 (12)
ottobre 2005 (6)
settembre 2005 (5)
agosto 2005 (1)
luglio 2005 (8)
giugno 2005 (7)
maggio 2005 (10)
aprile 2005 (8)
marzo 2005 (12)
febbraio 2005 (6)
gennaio 2005 (4)
dicembre 2004 (6)
novembre 2004 (3)
ottobre 2004 (2)
settembre 2004 (9)
giugno 2004 (2)
maggio 2004 (2)
febbraio 2004 (2)
novembre 2003 (3)
ottobre 2003 (5)
Post Categories
Progettazione Software
Team Work
Blogs
Links
dev.luca.minudel.it
freestaff
NullableTypes
Photo Suggest
UGIdotNETWiki
www.luca.minudel.it
Syndication:
RSS
ATOM