ERP5 Naming Conventions

This document defines ERP5 naming conventions.

Coding Conventions

    "Python coding conventions":http://www.python.org/doc/essays/styleguide.html
    is a good start for python coders. It defines precisely the multipole
    naming conventions from which we have to choose. A must read.

    Zope extends the python object model by adding

    - Zope Objects: objects which can be published
      and accessed through the OFS implement acquisition of attributes
      and, in certain cases, skinning

    - Zope Methods: it is possible to extend the behaviour of
      a Zope Object as defined in its class by calling special
      kinds of methods (DTML, Page Template, Python Script) stored
      in the OFS as Zope Objects

Pseudo Constant

    A pseudo-constant is a global reusable value stored as
    an attribute (of a Class, of a module) which is
    considered as a constant.

    Example::

        CONSTANT_NAME

Attributes, Properties and IDs

    Attributes can be assigned to an object, to a class.
    Properties can be assigned to Zope object.

    Example::

        base_price
        attribute_name

Variables

    Variables can be defined within a python method or function,
    within a python script Zope object, within a page template Zope
    Object or within a DTML Method Zope Object.

    Example::

        base_price
        attribute_name


Class

    Classes are defined in python within products.

    Example::

        Document
        MetaResource
        Resource
        ClassName


Interface
    mixedCase that, is CapitalizedWords with initial lowercase


    Example::

        content
        dublinCore
        rdf
        interfaceName


Method

    Methods are defined for each class in python.

    Example::

        Title
        BasePrice
        edit
        setPrice


    Exceptions for mixed start::

        set
        get
        view
        edit
        delete
        print
        list
        add

    Exception if ZMI::

        manage_MethodName

Page Template

    Pages templates are stored as IDs in the OFS
    (therefore small caps) but act as methods of objects (therefore
    CapitalizedWords)

    Example::

        content_AddToCart
        content_edit

        interfaceName_MethodName