User Tools

Site Tools


tesi:codice

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tesi:codice [2019/08/27 17:04]
moreno
tesi:codice [2019/11/11 15:58] (current)
moreno
Line 19: Line 19:
 L'uso di nomi inappropriati rende il codice difficile da comprendere e da valutare). Per rendersi conto di ciò, chi direbbe che questa funzione: L'uso di nomi inappropriati rende il codice difficile da comprendere e da valutare). Per rendersi conto di ciò, chi direbbe che questa funzione:
  
-<​code>​+<​code ​C>
 int cancella( double trovato, double tentativo[],​ int n, int terzo, int quarto ) int cancella( double trovato, double tentativo[],​ int n, int terzo, int quarto )
 { {
Line 57: Line 57:
 == Esempio di commenti inutili DA EVITARE == == Esempio di commenti inutili DA EVITARE ==
  
-<​code ​Java+<​code ​C
-v = v + 1;    /incrementa v +v = v + 1;    /incrementa v */ 
-if ( v>10 ) { /se v e' maggiore di 10 +if ( v>10 ) { /se v e' maggiore di 10 */ 
-   v = 0;     /setta v a zero+   v = 0;     /setta v a zero */
 } }
-G.Kruskal(v); /esegui l'​algoritmo di Kruskal+Kruskal(G,v); /esegui l'​algoritmo di Kruskal ​*/
 </​code>​ </​code>​
  
 == Esempio di commenti appropriati == == Esempio di commenti appropriati ==
  
-<​code ​Java+<​code ​C
-/Individua la posizione i del primo valore +/Individua la posizione i del primo valore 
-// negativo nell'​array a[]; al termine si ha + negativo nell'​array a[] di lunghezza n 
-// i == a.length ​se non esiste alcun + ​* ​al termine si ha i == se non esiste alcun 
-// valore negativo.+ valore negativo. 
 + */
 int i = 0; int i = 0;
-while ( i < a.length ​&& a[i] >= 0 ) {+while ( i < && a[i] >= 0 ) {
     i++;     i++;
 } }
Line 90: Line 91:
 L'​ampiezza di 80 caratteri è [[https://​en.wikipedia.org/​wiki/​Characters_per_line|un retaggio del passato]] che però risulta comodo per [[https://​stackoverflow.com/​questions/​110928/​is-there-a-valid-reason-for-enforcing-a-maximum-width-of-80-characters-in-a-code/​111009#​111009|diversi motivi]]: L'​ampiezza di 80 caratteri è [[https://​en.wikipedia.org/​wiki/​Characters_per_line|un retaggio del passato]] che però risulta comodo per [[https://​stackoverflow.com/​questions/​110928/​is-there-a-valid-reason-for-enforcing-a-maximum-width-of-80-characters-in-a-code/​111009#​111009|diversi motivi]]:
  
-* Il codice non va a capo se viene incollato in un messaggio (solo testo) di posta elettronica;​ +  ​* Il codice non va a capo se viene incollato in un messaggio (solo testo) di posta elettronica;​ 
- +  * Il codice risulta più leggibile rispetto al caso in cui si usino linee lunghe, dato che non è necessario spostare lo sguardo continuamente a destra e sinistra; 
-* Il codice risulta più leggibile rispetto al caso in cui si usino linee lunghe, dato che non è necessario spostare lo sguardo continuamente a destra e sinistra; +  * È possibile mantenere più finestre affiancate sui monitor moderni, se lo si desidera.
- +
-* È possibile mantenere più finestre affiancate sui monitor moderni, se lo si desidera.+
  
 Si tenga presente che, sebbene i monitor moderni abbiano guadagnato risoluzione e dimensione, i nostri occhi sono rimasti sempre gli stessi. Si tenga presente che, sebbene i monitor moderni abbiano guadagnato risoluzione e dimensione, i nostri occhi sono rimasti sempre gli stessi.
Line 100: Line 99:
 === Se possibile, rendere disponibile il codice con una licenza libera === === Se possibile, rendere disponibile il codice con una licenza libera ===
  
-Sebbene non sia richiesto, suggerisco di rendere disponibile il proprio codice ​in base ad una licenza libera, da aggiungere in un commento all'​inizio di ogni file sorgente. Alcuni esempi di licenze libere: +Sebbene non indispensabile, suggerisco di rendere disponibile il proprio codice ​secondo ​una licenza libera. Alcuni esempi di licenze libere:
- +
-* [[https://​www.gnu.org/​licenses/​gpl.html|GNU GPL]], [[https://​www.gnu.org/​licenses/​lgpl.html|LGPL]],​ [[https://​www.gnu.org/​licenses/​agpl.html|AGPL]] (preferibilmente versione 3 o successive);​ +
- +
-* [[https://​directory.fsf.org/​wiki/​License:​BSD-3-Clause|BSD License]] (ne esistono diverse versioni);+
  
-* [[https://​creativecommons.org/​|Creative Commons]] (usata prevalentemente per prodotti diversi dal codice sorgente; evitare se possibile la clausola "​non-commercial"​).+  * [[https://​www.gnu.org/​licenses/​gpl.html|GNU GPL]], [[https://​www.gnu.org/​licenses/​lgpl.html|LGPL]],​ [[https://​www.gnu.org/​licenses/​agpl.html|AGPL]] (preferibilmente versione 3 o successive);​ 
 +  * [[https://​directory.fsf.org/​wiki/​License:​BSD-3-Clause|BSD License]] (ne esistono diverse versioni);​ 
 +  ​* [[https://​creativecommons.org/​|Creative Commons]] (usata prevalentemente per prodotti diversi dal codice sorgente; evitare se possibile la clausola "​non-commercial"​). 
 +  * [[https://​opensource.org/​licenses/​MIT|MIT License]]
  
 +In [[https://​opensource.org/​licenses|questa pagina]] si trovano elencate ulteriori licenze comunemente usate. Personalmente tendo a preferire la licenza GPLv3+ (GPL versione 3 o successive),​ ma non impongo nessun vincolo a riguardo; si può anche decidere di non rendere il codice pubblicamente accessibile.
  
 +Se si intende usare una licenza libera, occorre inserire il sunto della licenza in un commento all'​inizio di ogni file sorgente (ciascuna licenza ha il proprio "​boilerplate"​),​ e includere il testo completo della licenza in un file di testo (normalmente chiamato "​LICENSE"​) nella directory radice dell'​archivio contenente i sorgenti.
  
tesi/codice.1566918299.txt.gz · Last modified: 2019/08/27 17:04 by moreno