Skip to content
Victor Inojosa edited this page Aug 18, 2015 · 1 revision

OpenERP Code Guidelines

(Traducido de: https://doc.odoo.com/contribute/15_guidelines)

La siguiente lista de líneas guía (guidelines) constituye una referencia clave para todos los involucrados en la comunidad OpenERP [En este caso, bachacove =)]. Cada nuevo contribuyente debe leerlo antes de iniciar el proceso de contribución, de manera que permita mantener el alto nivel de mejoras de calidad en OpenERP.

También es importante que los desarrolladores actualicen periódicamente sus habilidades y hábitos de codificación teniendo una lectura rápida de esas mejores prácticas.

Como parte del Proceso de Revisión de Calidad, todos están invitados a referenciar estas líneas guía cuando intercambien información sobre contribuciones (código, documentación, cualquier cosa). Si una línea guía específica pareciera faltar en la lista,o si has encontrado un ejemplo perfecto de un buen (o mal) patrón, por favor siéntete en la libertad de contribuir.

El sistema de comentarios puede ser usado para este propósito, pero sería incluso mejor actualizar directamente la fuente de esta documentación (ver la guía de contribución).

  • Líneas Guía de Codificación
  • 1 Guía de estilo Python
    • 2 Líneas Guía específicas de OpenERP
    • 3 Líneas Guía de pruebas automatizadas YAML
  • Líneas guía de Documentación
    • Documentación útil y concisa
  • Líneas Guía de Contribución
    • Reporte de Bug
    • Merge Proposals & Patches
    • Usando repositorios compartidos para acelerar la gestión de ramas
  • Líneas guía de usabilidad
  • Líneas guía de Localización
    • Contenidos de un módulo de localización
    • Líneas guía genéricas
    • Líneas guía de Tipos de Cuentas (account.account.type)
    • Chart of Accounts Guidelines (account.account.template)
    • Chart of Tax Codes Guidelines (account.tax.code.template)
    • Chart Template Guidelines account.chart.template
    • Taxes Guidelines (account.tax.template)
    • Fiscal positions Guidelines (account.fiscal.position.template)
    • Modules dependencies Guidelines
    • Specific reports Guidelines

Líneas Guía de Codificación

Esta lista es incrementada por el equipo de Calidad de OpenERP como parte del proceso de revisión de código. Contiene un conjunto de buenas/malas prácticas específicas de OpenERP, así como de una selección de recomendaciones más genéricas de codificación con Python.

Ambas secciones son un "DEBE LEER" para cada desarrollador y contribuyente de OpenERP.

Como una regla introductoria, siempre deberías tener en mente lo siguiente:


Cada línea que escribas será escrita solo una vez, pero leída muchas veces por otros (incluyendote a ti)

A riesgo de enfatizar lo obvio, esto significa que mientras se sigan las otras líneas guía, deberías usar tu mejor juicio de manera que se pueda alcanzar la mejor legibilidad. Y si escribir código legible requiere un esfuerzo adicional, vale la pena mil veces.

1 Guía de Estilo Python

Además de estas líneas guía (guidelines), también prodrías encontrar interesante el siguiente enlace:

1.1 Métodos Mágicos

Los métodos mágicos (empiezan y terminan con dos underscores) no deben ser llamados directamente a menos que estés redefiniendo un métdo del mismo nombre.

Los métodos mágicos son usados para implementar protocolos específicos y son llamados por ti, bien sea para acceso operador o para alguna operación especial usándolos:


#incorrecto levels.contains(name) #correcto name in levels #más que incorrecto kw.setitem('nodes',nodes) #mucho mejor kw['nodes'] = nodes

1.2 .clone()

Raramente necesario (a enos que realmente no tengas idea de que tipo de variable estás intentando clonar), nunca es necesario para colecciones built-in: solo llama al constructor con tu colección existente:


mal

new_dict = my_dict.clone() #bien new_dict = dict(my_dict)

mal

new_list = old_list.clone()

bien

new_list = list(old_list)

y no clones manualmente, por favor:

values = [] for val in view_items: values += [val]

#lo sano es values = list(view_items)

1.3 "Clonar y Actualizar"