|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
Refactoring...chi mi presenta questo sconosciuto?
Bene.
Finalmente ho fatto il mio primo task (thanks Cdimauro) e ora mi sento molto più TDD. Ma mi manca ancora un passetto...il REFACTORING. La parola è molto eloquente...RIFARE. Quindi prendere in mano il codice e vedere se si può fare qualcosa di più elegante e semplice. Ok...ma come si fa ?? ![]() Non è che c'è qualcuno che mi dà uno schema d'attaco?? Grazie
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Vai a passi piccoli. Vedi che una variabile non serve? La elimini e lanci i test.
Vedi che ci sono 3 if che fanno la stessa cosa? Semplifichi e lanci i test. Non committare mai un refactoring senza aver lanciato i test prima. Con il refactoring vuoi semplificare quello che c'è già. Non aggiungere mai nessuna feature. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
E per impratichirti con i refactoring usa i tool messi a disposizione da Eclipse.
E poi: http://www.refactoring.com/
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 4329
|
ma il refactoring è piu o meno cio che si fa "a mano" sviluppando non in test driven, right?...tipo ricontrollo il prog e "smusso" gli angoli, magari facendo diventare elegante qualcosa che prima era racchio....giusto?
__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga| |ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck| |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Le due frasi in grassetto sono i due punti chiave. Al termine di un refactoring: - il comportamento osservabile deve essere il medesimo - la struttura del codice deve essere migliore (piu' semplice) e il codice piu' leggibile Un refactoring banale (ma fra i piu' importanti) e' rinominare una variabile o un metodo o una classe, perche' mantiene ovviamente invariato il comportamento osservabile e migliora la leggibilita'. Un altro refactoring fondamentale e' Extract Method, che prende una certa porzione di codice e la estrae in un metodo che poi e' invocato al posto del codice.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Quote:
![]() vabbe prima mi leggo il libro
|
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 4329
|
cioe piu o meno quello che mi insegna il prof di algoritmi...io gli porto un metodo di 10 righe e lui lo riscrive a mente in 2 righe e fa le stesse cose che fa il mio migliorandone l efficienza...al che ora sto cercando di emularlo e tutto quello che scrivo cerco di farlo stare nel minimo possibile e che sia il piu pulito possibile...
__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga| |ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck| |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 4329
|
se penso che non riesco nemmeno a fare forza4, mi viene male...ma si puo essere piu stupidi? spero entro domani di levarmelo dai piedi, cosi possimo iniziare a pensare a cose spesse (penso sempre che cimentadosi in imprese piu grandi di te, per un po si annaspa, ma almeno ci si skilla piu infretta)
__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga| |ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck| |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
Sono d'accordo con Fek...
Nessuno è nato imparato e tutti hanno imparato quello che sanno a piccoli, per non dire piccolissimi, passi !!! Figurati...a me piace il 3D ...è praticamente da quando ho 16 anni che mi dico che devo imparare a programmare le DirectX e OpenGL...bhè, nè ormai 24 e sono allo stesso punto. A proposito...qualcuno sa se ci sono dei Tutorial per DirectX, e caso mai per MDX, tipo qulli NeHe per OpenGL?? |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Un buon libro e via
"Introduction to 3D Game Programming with DirectX 9.0" è molto ben fatto a mio parere |
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Quote:
devo ancora prendere i libri consigliati da fek anni fa su ngi... |
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
ehm...qualcosa di più "on-line" ??
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
boh cercando con goggle ho trovato un sito che ne linka il pdf però non so se è legale (anche se il sito dice che è legale ma boh)... Non me la rischio a postarlo
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 4329
|
Quote:
che c entra con diamonds tutto questo vi chiederete? c entra, perche se non fossi nemmeno riuscito a fare una semplicissima consegna banale di un corso inutile per niubbi, non avrei mai acquisito la scimmia (scimmia == fiducia in me stesso) necessaria per buttarmi in un task di diamonds... fek non ti preoccupare, non sono piu come 3 anni fa: fino all anno scorso se non riuscivo a fare una cosa per x tempo, concludevo di non avere stoffa e lasciavo perdere...se non riesco adesso, concludo che se mi infogno per x+y tempo (con y direttamente proporzionale al mio livello di concentrazione) ci riesco comunque! poi ci si fara pure fatica, ma aimè questo è il prezzo che si paga a voler programmare.... per quanto riguarda i libercoli consigliati: mi sono procurato oltre a test driven by examples anche l altro di beck e thinking in java e extreme programming cookbook, credo che siano un gustoso inizio no? per ora sono ancora su T D D by example e lo trovo molto interessante, se non altro ora capisco la strada che si segue qui...seguendo i task e 3d di pair prog devo dire che il codice trattato mi spaventa molto meno di una settimana fa, anche se cmq dovro come minimo leggermelo tutto prima di avere anche solo velatamente chiaro il disegno d insieme; ma gia il mio cervello si sta evolvendo.... per tornare in topic, si puo dire che oggi abbia fatto un refactoring un po radicale....da una cascata di due o 3 metodi ricorsivi malfunzionanti ho compattato (anche in termini di eleganza e spazio) in un metodo iterativo che fa meno giri, funziona perfettamente ed e piu semplice da pensare
__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga| |ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck| |
|
|
|
|
|
|
#16 | ||
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
||
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
La sintesi. Mi ricorda un aneddoto raccontato in Refactoring To Patterns.
Vado a memoria. Un giorno un venditore di cappelli decide di creare un'insegna per il suo negozio, parte con la prima bozza: il disegno di un cappello e sotto la scritta: "Hatter, makes and sells hats for ready money". Guarda cio' che ha scritto e pensa che Hatter non serva, se vende cappelli lo e' per forza, allora scrive "Makes and sells hats for ready money". Poi pensa che se vende i cappelli, qualcuno li dovra' pure fare allora cambia in "Sells hats for ready money". Ma se vende cappelli, lo fa per soldi, quindi arriva a "Sells hats". Poi e' un negozio, vendera' sicuramente qualcosa, non serve ripeterlo "Hats", sotto il disegno di un cappello. Non serve piu' la scritta, basta il disegno, il dono della sintesi
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 4329
|
lol, verissimo...io abbraccio questo stile, fortunatamente...se potessi scrivere un metodo in 1 riga e fosse efficiente e chiaro sarei sempre felice
__________________
|18k+|slk800|a7n8x|1Gb/ddr400|Gf4mx440|Pio108|WD 160Gb|Case|Uni|Album|AnimeClick|OneManga| |ClassicThrash!|BNR Metal|TrueMetal|Dime|Chuck| |
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Basta che non vai mai a capo
|
|
|
|
|
|
#20 | |
|
Senior Member
Iscritto dal: May 2002
Città: Milan
Messaggi: 572
|
Quote:
Altro libro da prendere...ma quando finirò di leggere tutto ? :| sono a quota 26500/27000 pagine...pazzia ?
__________________
.:. NEONISI .:. a new island for online auctions. It's worldwide, safe, simple and free. Join Us! |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:59.





















