Changes between Initial Version and Version 1 of StileDiProgrammazione


Ignore:
Timestamp:
Apr 3, 2012 1:01:53 PM (12 years ago)
Author:
Amministratore UniBa-LAB
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • StileDiProgrammazione

    v1 v1  
     1= Uniba Lab: Stile di programmazione =
     2
     3== Note generali ==
     4=== UTF-8 ===
     5Tutti i file devono avere codifica UTF-8.
     6Cio' si ottiene impostando il proprio editor in maniera tale da codificare i caratteri in utf-8 al momento del salvataggio.
     7Inoltre per i file PY e' opportuno far cominciare il file con lo slug:
     8{{{
     9# -*- coding: utf-8 -*-
     10}}}
     11Questo istruisce opportunamente il compilatore a runtime.
     12
     13== File py ==
     14I 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.
     15
     16=== Imports ===
     17 - Le imports devono essere effettuate tutte in testa al file (fatto salvo lo slug utf-8
     18 - Le imports dovrebbero essere ordinate alfabeticamente
     19 - Le imports devono essere raggruppate tra loro sulla base del namespace di primo livello del pacchetto
     20 - i blocchi delle imports devono essere separati da un blank line
     21{{{
     22from CMFPlone.utils import getToolByName
     23
     24from DateTime import DateTime
     25
     26from zope import schema
     27from zope.interface import Interface
     28}}}
     29
     30=== Naming Conventions ===
     311. Fatte salve le regole generali per cui le variabili devono avere sempre nomi verbosi fatte salve le eccezioni:
     32   - list comprehension: {{{[x for x in lista if x.valore == 'alfa']}}}
     33   - cicli for numerali: {{{for i in range(1,1000):}}}
     34   - abbreviazioni canoniche quali
     35 msg:: messaggio
     36 pwd:: password
     37 flg:: flag[[br]]
     38 ecc...
     39[[br]]
     402. Lavorando in ambiente Plone ne ereditiamo le naming conventions per la definizione di classi, metodi, interfacce.[[br]]
     41In genere il pattern è **{{{CamelCase}}}** per tutte le occorrenze (classi interfacce, metodi, variabili...). [[br]]
     42In particolare:
     43 classi:: {{{class primaLetteraMinuscolaAltreCamel(object)}}}
     44 interfacce:: {{{class INomeInterfaccia(Interface):}}} Cominciano con I maiuscola e seguono col CamelCase dell nome dell'interfaccia
     45 metodi::
     46    - {{{def camelCaseMethod(self,): }}}
     47    - {{{def __init__(self,): }}} i metodi privati/convenzionali python sono prefissati con il doppio undersrcore
     48    -
     49 variabili:
     50
     51 
     52== Zope Page Template ==
     53
     54 estensioni::
     55 - *.pt
     56 - *.cpt
     57
     58