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 07-06-2010, 08:13   #1
Kralizek
Senior Member
 
L'Avatar di Kralizek
 
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
[OT: Rapporti sociali] - Vita d'ufficio

Oggi ho riaperto un pezzo di codice che avevo scritto tempo fa ed ho avuto la sensazione di vedere un roseto potato con una trebbiatrice... é il caso che lo faccio notare?
Kralizek è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 08:18   #2
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Beh, quando capita io lo faccio. Lo sanno anche i muri, in ufficio, che disprezzo il mio vecchio codice.

Appena devo rimetterci mano per qualche aggiornamento ne approfitto per rifattorizzarlo o, eventualmente, riscriverlo.

Ad esempio, è da un paio di settimane che sto ristrutturando l'intero codice di un progetto che è in produzione, ma che continua a subire modifiche a causa di nuovi requisiti. E siccome mi sono stancato di prendere pali (visto che sono soltanto un pezzo di una "catena di montaggio", e per fare dei test seri dovrei scomodare tutti gli altri pezzi; cosa alquanto difficile), mi sono preso il tempo che mi serve e sto passando tutto alla TDD. Adesso sono MOLTO più sereno.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 09:12   #3
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Quote:
Originariamente inviato da Kralizek Guarda i messaggi
Oggi ho riaperto un pezzo di codice che avevo scritto tempo fa ed ho avuto la sensazione di vedere un roseto potato con una trebbiatrice... é il caso che lo faccio notare?
Personalmente ho smesso di lamentarmi del codice già scritto. Dopo un pò ho imparato che nella quotidianità del lavoro non puoi mai sapere perchè un certo pezzo di codice sia scritto nella maniera in cui è scritto.

Anche quelli bravi scrivono codice di merda, a volte.

Non è un comportamento dovuto all'incapacità, ma in un mondo di deadline, analisi di requisiti discordanti, utenti schizofrenici, cambi progetto, riunioni, strumenti di sviluppo inadeguati, "standard" aziendali che dopo 6 mesi sono obsoleti, ecc, ecc... non puoi sapere perchè quel pezzo di codice sia scritto cosi.

Purtroppo non si riesce sempre a scrivere codice elegante, per svariati motivi che non dipendono dall'individuo, ma dall'ambiente. Quello che si fa sul lavoro, comunemente, è piuttosto lontanto dall'arte della programmazione. Il refactoring in certi casi lo puoi fare se il cliente te lo paga. O se hai tempo libero, e non ti hanno spostato ad altri progetti.

In conclusione: non me ne uscirei con un "OMG! WTF iz this CRAP!??!?!111"... ma magari con un "Penso che questo pezzo possa essere strutturato in maniera più flessibile e performante."

My 2 centz.
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 09:38   #4
Kralizek
Senior Member
 
L'Avatar di Kralizek
 
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
rileggendo l'OP mi sa che non ho reso l'idea, il problema é che un altro collega ha messo le mani su questa pagina é l'ha distrutta scrivendo codice molto poco performante (oltre che sporco)

per la serie: io ero il giardiniere che aveva tirato su il roseto, e questo collega era il contandino su trebbiatrice :P
Kralizek è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 09:42   #5
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Quote:
Originariamente inviato da Kralizek Guarda i messaggi
rileggendo l'OP mi sa che non ho reso l'idea, il problema é che un altro collega ha messo le mani su questa pagina é l'ha distrutta scrivendo codice molto poco performante (oltre che sporco)

per la serie: io ero il giardiniere che aveva tirato su il roseto, e questo collega era il contandino su trebbiatrice :P
Si io avevo capito proprio cosi.
Vale sempre il discorso che ho fatto, puoi far notare la cosa in maniera 'polite'
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 09:42   #6
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
In tal caso... a morte il contadino.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 10:01   #7
Ryuzaki_Eru
Senior Member
 
L'Avatar di Ryuzaki_Eru
 
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
E siccome mi sono stancato di prendere pali (visto che sono soltanto un pezzo di una "catena di montaggio", e per fare dei test seri dovrei scomodare tutti gli altri pezzi; cosa alquanto difficile), mi sono preso il tempo che mi serve e sto passando tutto alla TDD. Adesso sono MOLTO più sereno.
Ero scettico riguardo al TDD. Poi ho dovuto impararlo per partecipare ad un progetto e mi sono dovuto ricredere. Magari può prendere tempo per scrivere i test, ma poi vivi tranquillo
Ryuzaki_Eru è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 11:22   #8
vladix
Member
 
L'Avatar di vladix
 
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
In tal caso... a morte il contadino.
voto unanime

PS: un pezzettino di codice trovato su una delle applicazioni che sto modificando
Codice HTML:
logger.debug("sono dentroooooooooooooooooooo"); // oooh siii ... che goduria
vladix è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 11:53   #9
Ryuzaki_Eru
Senior Member
 
L'Avatar di Ryuzaki_Eru
 
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
Non ci credo
Ryuzaki_Eru è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 11:56   #10
Kralizek
Senior Member
 
L'Avatar di Kralizek
 
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
Kralizek è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 17:12   #11
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da Kralizek Guarda i messaggi
Nei momenti di maggiore tensione si scrivono queste ed altre perle.
Tipo
Codice:
void merda()
{
...
}
oppure
Codice:
   printf("Ma che oooooh...\n");  // se non bestemmio stavolta...
cose temporanee che in teoria non dovrebbero vedere neanche il tramonto, ma che a volte in modi misteriosi finiscono pure nel repository .

Piccolo OT visto che si parla di cose che restano oltre il dovuto... Una volta ho preparato una macchina per un collega (diciamo Pinco). ho messo una password temporanea e per essere sicuro che la cambiasse ho scelto "PincoStupido". "Cosi' sono sicuro che la cambi quanto prima".
E' ancora li'...
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 17:46   #12
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da marco.r Guarda i messaggi
Nei momenti di maggiore tensione si scrivono queste ed altre perle.
Tipo
Codice:
void merda()
{
...
}
oppure
Codice:
   printf("Ma che oooooh...\n");  // se non bestemmio stavolta...
cose temporanee che in teoria non dovrebbero vedere neanche il tramonto, ma che a volte in modi misteriosi finiscono pure nel repository .

Piccolo OT visto che si parla di cose che restano oltre il dovuto... Una volta ho preparato una macchina per un collega (diciamo Pinco). ho messo una password temporanea e per essere sicuro che la cambiasse ho scelto "PincoStupido". "Cosi' sono sicuro che la cambi quanto prima".
E' ancora li'...
[imbarazzatissimo mode on]

io sono uno dei contadini

alle volte nelle mie porzioni di codice puoi trovare cose del genere:

Codice:
//ci riesco stavolta a far venir fuori la lista ?
private IList HowTheHellReturnThisList(....)
{
   .....
}
[imbarazzatissimo mode off]



Oppure catturo delle eccezioni facendomi restituire solo un "ASD", e ne metto così tante che poi
non capisco più a chi "ASD" si riferisce....
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 18:43   #13
Ryuzaki_Eru
Senior Member
 
L'Avatar di Ryuzaki_Eru
 
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
Quella di Raoul è geniale, soprattuto la parte degli asd....
Ryuzaki_Eru è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 19:55   #14
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da Ryuzaki_Eru Guarda i messaggi
Ero scettico riguardo al TDD. Poi ho dovuto impararlo per partecipare ad un progetto e mi sono dovuto ricredere. Magari può prendere tempo per scrivere i test, ma poi vivi tranquillo
Ne prende abbastanza, ma è tutto tempo ripagato: te ne accorgi dopo, non appena fai qualche modifica e c'è qualche test che fallisce segnalandoti che hai fatto una cazzata.

In pratica s'investe già in fase di sviluppo per quella di test. Con l'indiscutibile vantaggio di ritrovarti con una test case che puoi usare sempre a fine sviluppo, ma soprattutto con un sistema molto più solido.
Quote:
Originariamente inviato da vladix Guarda i messaggi
PS: un pezzettino di codice trovato su una delle applicazioni che sto modificando
Codice HTML:
logger.debug("sono dentroooooooooooooooooooo"); // oooh siii ... che goduria
Questa è da antologia.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 20:14   #15
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da RaouL_BennetH Guarda i messaggi
io sono uno dei contadini
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 20:57   #16
minerte
Member
 
Iscritto dal: Mar 2008
Messaggi: 142
bhe a volte per tempi di consegna strettissimi sono "necessari"...purtroppo le basi dell'ingegneria del software mancano...ma non ha chi struttura/scrive il codice ma al cliente....vaglielo a spiegare che magari allungando la consegna potresti scrivere un codice più pulito facile da manutenere etc etc.... ma c'è anche il discorso più manutanzione => più lavoro.
Bhe io ho imparato il detto dell'antico programmatore cinese
"non toccare codice che funziona"
Infatti attualmente nel "mio" progetto c'è una classe di 5800 righe ( ) che gestisce metà "applicazione" (penso che chi l'abbia scritta venisse della programmazione procedurale) a cui non farei il refactoring nemmeno con la pistola puntata contro......
minerte è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 21:17   #17
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Io, invece, ho una generale tendenza alla rifattorizzazione (sono malato: aiutatemi!!! ).

Magari dirò un'eresia, ma la trovo un'attività più stimolante e appagante della stessa (prima) scrittura del codice.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 21:26   #18
Albitexm
Senior Member
 
Iscritto dal: Jun 2008
Messaggi: 384
Quote:
Originariamente inviato da Kralizek Guarda i messaggi
rileggendo l'OP mi sa che non ho reso l'idea, il problema é che un altro collega ha messo le mani su questa pagina é l'ha distrutta scrivendo codice molto poco performante (oltre che sporco)

per la serie: io ero il giardiniere che aveva tirato su il roseto, e questo collega era il contandino su trebbiatrice .
E' il caso che lo faccia notare?:P
Dipende tutto dalla posizione di potere che ha il "contadino" nella tua azienda.
Insomma il peso e il rapporto che ha con te e con le alte sfere, questo "trebbiatore".
In azienda non c'è democrazia..
Albitexm è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 22:20   #19
minerte
Member
 
Iscritto dal: Mar 2008
Messaggi: 142
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Io, invece, ho una generale tendenza alla rifattorizzazione (sono malato: aiutatemi!!! ).

Magari dirò un'eresia, ma la trovo un'attività più stimolante e appagante della stessa (prima) scrittura del codice.
ma per me il problema e sempre quello economico....
Se ci troviamo in un progetto open o personale io lo farei sempre....
ma in un progetto "closed" e "legacy" dove magari la logica che gestisce e contorta(dalle varie modifiche negli ) ma "funziona" ti conviene(se non per reali esigenze), sia in termini di tempo che economici fare un reverse engineering per capirne il funzionamento e rischiare?
Tutto quello che ho detto è contrario a ciò che ho studiato, ma da quello che ho sempre visto le cose vanno cosi......
minerte è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2010, 22:35   #20
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da minerte Guarda i messaggi
ma per me il problema e sempre quello economico....
Se ci troviamo in un progetto open o personale io lo farei sempre....
ma in un progetto "closed" e "legacy" dove magari la logica che gestisce e contorta(dalle varie modifiche negli ) ma "funziona" ti conviene(se non per reali esigenze), sia in termini di tempo che economici fare un reverse engineering per capirne il funzionamento e rischiare?
Tutto quello che ho detto è contrario a ciò che ho studiato, ma da quello che ho sempre visto le cose vanno cosi......
è dimostrato che il continuous refactoring migliora la qualità del codice e a lungo andare DIMINUISCE i costi.
Se non si rifattorizza costantemente il codice la complessità per effettuare una modifica cresce esponenzialmente e di conseguenza anche il costo per il cliente.
TDD e continuous refactoring sono le basi per avere una buona codebase e per mantenere i costi di sviluppo costanti.
__________________
^TiGeRShArK^ è 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, ...
Dopo 23 anni di silenzio, Warcraft 3 spi...
Roblox sfida l'ecosistema gaming: app st...
OpenAI accusata di plagio dai migliori m...
Altro attacco hacker dell'IA: gli agenti...
Stiamo davvero perdendo il controllo del...
Microsoft perde un pilastro: Frank Shaw ...
Diablo V annunciato a sorpresa: il colpo...
Meno di 5 euro per il 5G: l'offerta Kena...
World of Warcraft: Forever è il Classic+...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
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: 17:09.


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