Linee guida per la scrittura di codice aggiuntivo per il Promogest
Affinchè si possa mantenere una certa coerenza stilistica, e affinchè il Team di sviluppo del Promogest possa (in tempi molto brevi) rendere parte integrante del Promogest, aggiunte sviluppate dalla comunità, devono assolutamente essere rispettate alcune regole di codifica:
- commenti al codice (possibilmente in inglese)
- evitare stravolgimenti della direzione di sviluppo presa dal Team
La guida generale a cui sono ispirate le seguenti regole e` la PEP-8 resa pubblica sul sito ufficiale di python.
Nomeclatura:
class MiaClasse(object): pass
def la_mia_funzione_o_metodo(arg): pass
def myFactoryFunction():
class Foo(object):
pass
return Foo
variabile = 42
variabile_lunga_name = 'Spam'
Indendazione e Lunghezza Linee
- Indentazione con 4 spazi;
- Assolutamente niente Tabs (da nessuna parte)
- Codifica utf-8
- Lunghezza massima linea: 90 caratteri
Usa le parentesi per ridurre i "\":
if some_variable == other_variable and my_variable > your_variable:
print 'Wohooo'
elif ((some_variable == my_variable and other_variable < your_variable) or
some_variable == your_variable):
print 'Wicked'
Spaziatura
- Niente spazi prima o dopo le parentesi, uno spazio tra gli argomenti: foo(x, y)
- Uno spazio attorno a = negli assegnamenti: variabile = x
- Uno spazio attorno agli operatori: somma = a + b
- Una riga vuote dopo la definizione di una classe o una funzione di alto livello
- Una riga vuota dopo le docstring per le classi
- Una riga vuota tra i metodi di una classe, se non sono veramente corti
Docstrings
Le classi e le funzioni di alto livello devono avere le docstring; I metodi devono averla solo se il funzionamento non puo` essere riconosciuto ad una semplice occhiata.
class MyClass(object): """ This is a docstring for a class """ variable = 'value' # Questo e` un commento # su piu` linee. variable = 'value' + 'value2'
