Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio
DEEBOT T90 PRO OMNI abbina un sistema di aspirazione basato su tecnologia BLAST ad un rullo di lavaggio dei pavimenti dalla larghezza elevata, capace di trattare al meglio le superfici di casa minimizzando i tempi di lavoro. Un robot completo che riesce anche ad essere sottile e garantire automazione ed efficienza nelle operazioni di pulizia di casa
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Per diversi giorni il Galaxy S26 Ultra di Samsung è stato il nostro compagno di vita. Oltre alle conferme del colosso coreano come la qualità del display e una suite AI senza rivali, arriva il Privacy Display, un unicum nel mondo smartphone. Ci sono ancora alcuni gap che non sono riusciti a colmare lato batteria e fotocamera, seppur con alcuni miglioramenti.
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Diablo II Resurrected: il nuovo DLC Reign of the Warlock
Abbiamo provato per voi il nuovo DLC lanciato a sorpresa da Blizzard per Diablo II: Resurrected e quella che segue è una disamina dei nuovi contenuti che abbiamo avuto modo di sperimentare nel corso delle nostre sessioni di gioco, con particolare riguardo per la nuova classe dello Stregone
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-01-2006, 17: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, 17: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, 18: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, 19: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, 19: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, 21: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, 23: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, 02: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, 10: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, 11: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, 12: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, 13: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, 14: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, 15: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, 17: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, 18: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, 18: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, 19: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, 19: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, 21: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


Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lav...
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
Diablo II Resurrected: il nuovo DLC Reign of the Warlock Diablo II Resurrected: il nuovo DLC Reign of the...
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Starfield arriva su PS5: data ufficiale,...
iPad Air 13" (M4) scende di prezzo: -100...
Oracle annuncia Java 26 con il Java Veri...
OPPO Find N6 è ufficiale: sottile...
Influencer sotto controllo Agcom: arriva...
Scontro in OpenAI sul ChatGPT per adulti...
Apple Watch Series 11 a 349€ e altri int...
Starlink rinnova i piani residenziali in...
POCO X8 Pro e Pro Max ufficiali: potenza...
Jensen Huang propone i token come nuovo ...
Realme 16 Pro e 16 Pro+ tra i più...
Dall'enciclopedia all'algoritmo: Encyclo...
Il CEO di Epic Games Tim Sweeney ha comp...
PSSR aggiornato su PS5 Pro: Sony svela i...
Scope elettriche low cost a prezzo strac...
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: 16:59.


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