Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-01-2006, 16:29   #1
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
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
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2006, 16:35   #2
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
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.
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2006, 17:20   #3
fek
Senior Member
 
L'Avatar di fek
 
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/
fek è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2006, 18:22   #4
dnarod
Senior Member
 
L'Avatar di dnarod
 
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|
dnarod è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2006, 18:27   #5
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da dnarod
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?
Refactoring e' definito da Fowler come una serie di piccoli passi che preservano il comportamento osservabile del programma e che servono per migliorare la struttura e la leggibilita' del codice.

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.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2006, 20:54   #6
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da fek
E per impratichirti con i refactoring usa i tool messi a disposizione da Eclipse.

E poi:

http://www.refactoring.com/

vabbe prima mi leggo il libro
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2006, 22:43   #7
dnarod
Senior Member
 
L'Avatar di dnarod
 
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|
dnarod è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 01:12   #8
dnarod
Senior Member
 
L'Avatar di dnarod
 
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|
dnarod è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 09:29   #9
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da dnarod
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)
Grrr... se non la smetti con questo disfattismo...
fek è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 10:18   #10
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
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??
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 11:37   #11
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
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
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 12:17   #12
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da Bonfo

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??
mi ricordi qualcuno :|

devo ancora prendere i libri consigliati da fek anni fa su ngi...
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:25   #13
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
ehm...qualcosa di più "on-line" ??
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 14:22   #14
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
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
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 16:38   #15
dnarod
Senior Member
 
L'Avatar di dnarod
 
Iscritto dal: Nov 2002
Messaggi: 4329
Quote:
Sono d'accordo con Fek...
Nessuno è nato imparato e tutti hanno imparato quello che sanno a piccoli, per non dire piccolissimi, passi !!!
se non fosse che la mia situazione è un tantino diversa...io questo corso l ho gia seguito anni fa e l ho anche passato LOL...solo che per problemi vari ho rinunciato alla carriera e ho perso tutti gli esami.....poi mi son reiscritto (non chiedetemi perche l ho fatto, ci vorrebbe un libro per spiegarlo)...fatto sta che questo corso teoricamente dovrei farlo ad occhi chiusi mentre mi ha creato notevoli problemi, almeno fino a oggi a pranzo....eh si perche oggi a pranzo ho acceso il cervello (che era spento e non avevo controllato) e mi è venuto da pensare che in fondo il gioco forza 4 è di una semplicita che fa spavento e che la sua risoluzione l avrei potuta pensare anche 10 anni fa quando avevo le cacche al naso....fatta questa semplice considerazione il mio cervello si sta lentamente riallineando nel giusto binario, ho codato mezz ora e l es di lab è bello che finito (devo solo piu finire dei metodi farlocchi per salvare e caricare le partite da files di testo ma son piccolezze) e tipo domani lo consegno...

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|
dnarod è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 17:25   #16
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da dnarod
(non chiedetemi perche l ho fatto, ci vorrebbe un libro per spiegarlo)
Non faccio alcuna fatica a crederti

Quote:
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....
Devi leggere Refactoring di Fowler e Refactoring To Patterns di Krjievsky (o come si scrive lui). E poi imparare il dono della sintesi! Se scrivi due righe di troppo in Diamonds ti taglio le mani
fek è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 17:31   #17
fek
Senior Member
 
L'Avatar di fek
 
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
fek è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 18:01   #18
dnarod
Senior Member
 
L'Avatar di dnarod
 
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|
dnarod è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 18:35   #19
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Basta che non vai mai a capo
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 20:27   #20
cover
Senior Member
 
L'Avatar di cover
 
Iscritto dal: May 2002
Città: Milan
Messaggi: 572
Quote:
Originariamente inviato da fek
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

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!
cover è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Gli Stati Uniti hanno armi in orbita: ar...
Robot aspirapolvere in offerta su Amazon...
ChatGPT inventa testimoni falsi e un avv...
Find X10 Pro Max di OPPO arriverà...
L'IA scriverà codice migliore del suo st...
Valve apre le prenotazioni di Steam Fram...
ECOVACS T50 OMNI Gen3 a 379€: il riferim...
Netflix e Sega insieme: arrivano i film ...
Veeam ottiene la certificazione da parte...
XIAOMI Redmi Buds 8 a 37,94€: auricolari...
Il fotovoltaico scende sott'acqua: nuove...
Microsoft chiede supervisione umana nell...
MicroSD Samsung T9 da 256GB a 65,88€: sc...
Una RTX 3090 e nessuna riga di codice: Q...
Windows e Excel di nuovo nel caos dopo i...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:10.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v