Skip to content

Instantly share code, notes, and snippets.

@Carlovan
Created March 31, 2017 20:41
Show Gist options
  • Save Carlovan/abf45b9d60503071ca6a3f07b206bd14 to your computer and use it in GitHub Desktop.
Save Carlovan/abf45b9d60503071ca6a3f07b206bd14 to your computer and use it in GitHub Desktop.

Indicazioni sulla realizzazione del progetto

Indicazioni stilistiche

  • I nomi di variabili e metodi viene utilizzato il camel case: prima parola minuscole, le sucessive con l'iniziale maiuscola.
  • I nomi dei metodi e delle funzioni usano la stessa convenzione.
  • I nomi delle classi usano il camel case, tutte le parole con l'iniziale maiuscola.
  • I nomi di moduli e package (che di fatto sono file) sono completamente minuscoli, preferibilmente formati da una sola parola.
  • Quando e' necessario controllare condizioni particolari sui dati (ad esempio che i parametri delle funzioni siano del tipo coretto) utilizzare assert e non un if: e' molto meno ingombrante all'interno del codice e se l'assert non e' verificato Python ci avvisera' mostrandoci anche la condizione che ha dato errore (ad esempio assert(type(n) is int) e' self explanatory).
  • Per le stringhe utilizzare i singoli apici (') dato che risultano meno ingombranti nel sorgente.
  • Usare il Markdown per i file di documentazione: risulta molto piu' leggibile e necessita di poco tempo per l'apprendimento (potete trovare una buona guida qui).

Organizzazione del codice

  • Cercare di adottare un approccio OOP (ad esempio invece di una funzione renderText scrivere una classe Text che contiene un metodo render).
  • E' consigliato fare largo uso dei package: Python offre una buonissima gestione delle "librerie". Tutto quello che e' legato a una particolare funzionalita' del sistema (ad esempio il controller per l'audio piuttosto che della camera) dovrebbe essere all'interno di un proprio package. Inoltre se ci si accorge che ci sono diverse funzioni/classi che lavorano nello stesso ambito (come nel caso della classe Text e altre funzioni ad esempio per stampare il testo un carattere alla volta) dovrebbero essere messe in un modulo dedicato all'interno del package.
  • Non sono necessarie classi statiche, sia per il motivo che in Python sono "simulate" sia perche' i moduli stessi possono avere la stessa funzione. Ad esempio la classe statica Console del C# puo' essere sostituita in maniera piu' pythonica con un modulo console.
@GiackAloZ
Copy link

Keepo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment