Guias de Estilo - PEP8

Muchas veces nos centramos en aprender un lenguaje de programación, pero olvidamos uno de los puntos más importantes:

Seguir una buena guía de estilo.

Cuando escribimos nuestro código y sobretodo cuando trabajamos en un equipo de trabajo, es imperativo seguir una guía de estilo. Seguir este tipo de guías no solo ayuda a la claridad del código sino que nos ayuda a seguir una metodología común en nuestro grupo de trabajo.

Pep 8 es una guía de estilo muy conocida para la programación de código en Python, pero sus recomendaciones pueden extrapolarse a cualquier lenguaje de programación.

Puntos mas importantes del PEP8

Basicos:

  • Siempre preferir espacios en ves de tabs.
  • Usar 4 espacios en la indentación.
  • Las lineas deben tener menos de 80 caracteres.
  • Las lineas que pasen de esta longitud deben ser divididas en dos lineas, y la linea resultante de la división debe estar indentada.
  • En una fila, las funciones y las clases deben estar separadas por dos lineas en blanco.
  • No colocar espacios alrededor de indices de lista, llamadas de funciones o argumentos.

Nombres

  • Las funciones deben estar declaradas en minúscula y las palabras separadas por guiones bajos def funcion_cool()
  • Los metodos privados de una clase deben comenzar con doble guion bajo def __private_method().
  • Los métodos protegidos de una clase deben comenzar con guion bajo def _protected_method().
  • Las clases y excepciones deben ser capitalizadas por palabra class SuperClass.
  • Constantes del module deben estar en mayusculas separadas por guiones bajos NUMERO_MAXIMO = 10.
  • Los métodos de instancia de una clase deben usar el parametro self como primer parámetro.
  • Los métodos de clase deben usar cls como primer parámetro, para referirse a la misma clase.

Expresiones

  • Usar negación en linea (if a is not b) en vez de negar una expresion positiva (if not a is b).
  • No validar valores vacíos usando len if (len(lista) == 0), usar if not lista.
  • Siempre coloca los imports al inicio del archivo.
  • Siempre importa funciones y clases usando from my_module import MyClass en ves de importar el modulo completo import my_module
  • Si aun debes usar imports relativos, usa la sintaxis from . import my_module
  • Las importaciones siempre deben estar en el orden:
  1. Módulos de la librería standar.
  2. Módulos externos.
  3. Módulos del proyecto.

Y cada sección debe estar en orden alfabético.