|
|
|
|
Strumenti |
03-01-2006, 23:26 | #101 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7061
|
ohmmadonna! è arrivato l'elfo! comunque pensa ke a me all'esame di ingSW mi hanno valutato x la qualità della javadoc ke ho prodotto! cmq non sono io il professore kiedi al tuo amico fek la mail di ghezzi e non mi tormentate!
ahah commentare non serve! xkè adesso noi parliamo in C! C è una classe di equivalenza del linguaggio naturale! in C si può esprimere qualsiasi cosa! ok adesso devo scappare mi dispiace! comunque è stato divertente!! ps. ah grazie x avermi detto dei nomi delle variabili autoesplicativi! pensa ke io le kiamavo pippo1, pippo2 e pippo3! |
03-01-2006, 23:28 | #102 | |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
ciao |
|
03-01-2006, 23:29 | #103 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7061
|
ah fek! dimenticavo! sai ke JML nn ci azzecca niente con UML vero?
|
03-01-2006, 23:30 | #104 | |
Senior Member
Iscritto dal: Oct 2002
Città: California
Messaggi: 11781
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" |
|
03-01-2006, 23:31 | #105 | |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7061
|
Quote:
|
|
03-01-2006, 23:34 | #106 | |
Senior Member
Iscritto dal: Oct 2002
Città: California
Messaggi: 11781
|
Quote:
Sono due strumenti diversi che perseguono gli stessi scopi (e che non adoro).
__________________
"We in the game industry are lucky enough to be able to create our visions" |
|
03-01-2006, 23:35 | #107 | |
Senior Member
Iscritto dal: Oct 2002
Città: California
Messaggi: 11781
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" |
|
03-01-2006, 23:37 | #108 | |
Senior Member
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
|
Quote:
Immaginati di essere uno che si trova con quel pezzo di codice davanti la prima volta, o tu stesso dopo 3 anni; a mio avviso ci vorrebbero dei commenti che rispondessero alle domande che riporto. Codice:
mConfig.UseHDR = true; // Variabile che serve a cosa e dove? Nel pezzo di codice subito seguente non è usata... mAutoExposureEnabled = true; // Impostata a true perchè? Non è dichiarata qua, quindi resetto il valore qualunque fosse stato prima if (CheckCapabilities()) // OK, faccio un controllo; ma in merito a cosa? Alla memoria, alla banda, ai puffi? { CreateRenderTargets(); CreateFilters(); EnableBloom(mBloomEnabled); EnableColorCorrection(mAutoExposureEnabled); } else { mForceDisabled = true; // Ok, lo imposto a true, ma perché nell'if non l'ho impostato a false? } Non è che devi commentare proprio tutto, ma dove serve. E ora mi darai del figlio di Sun di nuovo, ma se scrivi bene dei commenti durante lo sviluppo, poi hai anche la documentazione (leggi javadoc) Non mi dire che "quando modifichi, poi non li aggiorni", perché allora ti potrei rispondere che "quando modifichi senza commento, prendi cantonate". Dipende dall'attenzione con cui fai le cose, in un caso e nell'altro. |
|
03-01-2006, 23:45 | #109 | |||
Senior Member
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4740
|
Quote:
Quote:
Quote:
hai la fortuna che un simbolo in C non ha praticamente vincoli sul naming... perchè non sfruttarlo per far assomigliare un programma a un "discorso" in inglese?
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate
Ultima modifica di jappilas : 04-01-2006 alle 00:16. |
|||
03-01-2006, 23:48 | #110 | ||||
Senior Member
Iscritto dal: Oct 2002
Città: California
Messaggi: 11781
|
Quote:
Codice:
mConfig.UseHDR = true; // Variabile che serve a cosa e dove? Nel pezzo di codice subito seguente non è usata... // Imposta l'uso dell'HDR, c'e' scritto :) mAutoExposureEnabled = true; // Impostata a true perchè? Non è dichiarata qua, quindi resetto il valore qualunque fosse stato prima Imposta l'uso dell'autoesposizione, c'e' scritto :) if (CheckCapabilities()) // OK, faccio un controllo; ma in merito a cosa? Alla memoria, alla banda, ai puffi? // Fa un controllo delle capabilities, c'e' scritto :) { CreateRenderTargets(); // Crea i render target, c'e' scritto :) CreateFilters(); // Crea i filtri, c'e' scritto :) EnableBloom(mBloomEnabled); // Abilita il bloom a seconda della variabile, c'e' scritto. :) EnableColorCorrection(mAutoExposureEnabled); // Abilita la correzione del colore in base al valore della variabile impostata prima, c'e' scritto pure questo :) } else { mForceDisabled = true; // Ok, lo imposto a true, ma perché nell'if non l'ho impostato a false? // Perche' e' impostato dal costruttore, c'e' scritto nella lista di inizializzazione :) } Quote:
Quote:
Quote:
E' questione che il 99% dei commenti sono una chiara violazione del principio DRY come ho detto, sono nient'altro che una duplicazione delle informazioni. E duplicare le informazioni quando si programma e' un male, diminusce la mantenibilita' del codice. Prova a scrivere meno commenti, concentrati sul codice stesso, riscrivilo in maniera piu' chiara di modo che sia leggibile come fosse inglese: il tuo codice ti ringraziera'. I commenti sono come il deodorante per la puzza, meglio lavarsi
__________________
"We in the game industry are lucky enough to be able to create our visions" |
||||
03-01-2006, 23:53 | #111 | |
Senior Member
Iscritto dal: Oct 2002
Città: California
Messaggi: 11781
|
Quote:
Come dicevo non e' inutile commentare in tutti i casi, e' inutile commentare laddove una semplice riorganizzazione del codice porta ad una struttura piu' leggibile e comprensibile senza essere appesantito da inutili commenti che non fanno altro che riaffermare cio' che il codice gia' afferma. Inoltre il codice che si autodocumenta e' per definizione sempre in perfetta sincronia con se' stesso. Poi rimane il restante 1% di commenti utili alla comprensione delle assunzioni. L'esempio che faccio sempre in questo caso e' quello della complessita' computazionale di un algoritmo: e' spesso utile commentare che, ad esempio, una ricerca e' O(N) piuttosto che O(N^2) per informare il cliente sul suo utilizzo. E' perfettamente inutile commentare, invece, il fatto che un metodo chiamato FindRecord sta cercando un record
__________________
"We in the game industry are lucky enough to be able to create our visions" |
|
04-01-2006, 00:01 | #112 | |||
Senior Member
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4740
|
Quote:
ad esempio... la CheckCapabilities: a me appare quasi scontato che ad essere verificate saranno delle flag relative a funzionalità delle directx supportate o meno, e probabilmente qualunque sviluppatore del settore grafico si troverà a scrivere una funzione con quello scopo e, per esplicatività, a darle un nome simile a quello scelto da fek Quote:
in questo caso un commento che vedrei bene riguarda se una flag sia attesa vera o falsa di default, non il significato delle variabili... Quote:
ps: mi scuso per la scarsa chiarezza, sono un tantino stanco...
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate
Ultima modifica di jappilas : 04-01-2006 alle 00:14. |
|||
04-01-2006, 00:26 | #113 |
Senior Member
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
|
@fek e jappilas
Vi offendete se vi dico che sono punti di vista ?? Non potete partire dal presupposto che un codice è scritto in uno stile che per consuetudine comprendete. Io che non arrivo dalla computer grafica, devo potere comprendere cosa fa un singolo pezzo di codice senza dovermi studiare i pezzi prima o i pezzi dopo. Poi semmai vado a vederli. Può darsi che per voi le Capabilities siano una cosa, ma che arrivi un programmatore che con Capabilities ne intende un altra. Un minimo cenno evita menate. Nei "controcommenti" mi hai detto cosa fanno certe variabili, ma questo si capiva. Infatti ho detto che il codice era comprensibile. Ma non mi hai detto il perché lo fanno li, piuttosto che non altrove, o perché in un modo piuttosto che in un altro. E' questo che giustifica la logica del codice: non deve fare qualcosa, ma arrivare a qualcosa. Ti potrei sbattere lì un loop che non fa niente e dirti: "E' chiaro, sta contando da 1 a 1000". Ok, grazie. Ma perché? Se non c'è un perchè, probabilmente è un refuso. Per quel che ne so, tra 2 mesi guardano quel pezzo di codice che hai postato, potrebbe avere avuto senso inizializzare la variabile a false. Perchè non l'ho fatto? Vuoi mica che mi vada a risfogliare 2000 pagine di specifiche, sempre che esistano ? Probabilmente alla Sun sono rimasti indietro perché hanno scritto troppo codice |
04-01-2006, 08:26 | #114 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Quote:
E' una questione di conoscenza ed esperienza: se ho sufficienti capacità acquisite, potrò mettere le mani al sorgente di un programma, al motore di una macchina, ma anche all'eseguibile di un programma di cui non ho il sorgente.
__________________
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 |
|
04-01-2006, 08:38 | #115 | |||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Quote:
Quote:
Quote:
Quote:
Quote:
__________________
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 |
|||||
04-01-2006, 08:39 | #116 | ||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Quote:
Quote:
__________________
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 |
||
04-01-2006, 08:45 | #117 | |||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Quote:
Quote:
Quote:
Quote:
Quote:
__________________
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 |
|||||
04-01-2006, 08:46 | #118 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Quote:
__________________
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 |
|
04-01-2006, 08:50 | #119 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
|
Quote:
Comunque io mi riferivo alla qualità del codice prodotto (ai sorgenti).
__________________
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 |
|
04-01-2006, 08:51 | #120 | ||
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:47.