wiki:StileDiProgrammazione

Uniba Lab: Stile di programmazione

Note generali

UTF-8

Tutti i file devono avere codifica UTF-8. Cio' si ottiene impostando il proprio editor in maniera tale da codificare i caratteri in utf-8 al momento del salvataggio. Inoltre per i file PY e' opportuno far cominciare il file con lo slug:

# -*- coding: utf-8 -*-

Questo istruisce opportunamente il compilatore a runtime.

File py

I file .py sono relativi a tool, config, contents, init, browser view, interfaces, e qualsiasi altro modulo si voglia consolidare in un file a se stante.

Imports

  • Le imports devono essere effettuate tutte in testa al file (fatto salvo lo slug utf-8
  • Le imports dovrebbero essere ordinate alfabeticamente
  • Le imports devono essere raggruppate tra loro sulla base del namespace di primo livello del pacchetto
  • i blocchi delle imports devono essere separati da un blank line
    from CMFPlone.utils import getToolByName
    
    from DateTime import DateTime
    
    from zope import schema
    from zope.interface import Interface
    

Naming Conventions

  1. Fatte salve le regole generali per cui le variabili devono avere sempre nomi verbosi fatte salve le eccezioni:
    • list comprehension: [x for x in lista if x.valore == 'alfa']
    • cicli for numerali: for i in range(1,1000):
    • abbreviazioni canoniche quali
msg
messaggio
pwd
password
flg
flag
ecc...


  1. Lavorando in ambiente Plone ne ereditiamo le naming conventions per la definizione di classi, metodi, interfacce.

In genere il pattern è CamelCase per tutte le occorrenze (classi interfacce, metodi, variabili...).
In particolare:

classi
class primaLetteraMinuscolaAltreCamel(object)
interfacce
class INomeInterfaccia(Interface): Cominciano con I maiuscola e seguono col CamelCase dell nome dell'interfaccia
metodi
  • def camelCaseMethod(self,):
  • def __init__(self,): i metodi privati/convenzionali python sono prefissati con il doppio undersrcore
variabili:

Zope Page Template

estensioni
  • *.pt
  • *.cpt
Last modified 12 years ago Last modified on Apr 3, 2012 1:01:53 PM
Note: See TracWiki for help on using the wiki.