Los 12 mandamientos del código Python

Iniciado por WhiZ, Enero 24, 2013, 05:36:05 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Enero 24, 2013, 05:36:05 AM Ultima modificación: Enero 24, 2013, 04:37:13 PM por WhiZ
Hola Gente! Q tal?!

Bueno, antes de empezar voy a aclarar algunas cosas. Por empezar, ésto no es algo que se me haya ocurrido a mi ni mucho menos.

Constituye ésta, información de extremada importancia para todo aquél que elija Python como compañero de aventuras a la hora de codear un programa determinado.

Es fundamental que todo aquel que quiera comenzar a codear con Python conozca y respete estos 12 mandamientos, de manera tal que se alcance un grado de ordenamiento y claridad suficiente como para que terceros puedan entender y utilizar los scripts por uno mismo desarrollados.

Sin más que decir, a continuación les dejo los 12 mandamientos:
Código: python

1. Los nombres de los módulos deben estar en minúsculas (por ej., hola.py).

2. Los nombres de las clases deben usar CamelCase.

3. Los métodos y funciones deben usar minusculas_con_guion_bajo. # También es válido deEstaManera.

4. Los métodos privados para uso interno comienzan con _guion_bajo.

5. Los atributos de clase con __doble_guion_bajo.

6. Las constantes en el primer nivel del código (las que no se encuentran dentro de una función o una clase) deben usar LETRASMAYUSCULAS. Usar demasiadas constantes puede hacer que tu código sea menos reutilizable.

7. Si una variable en una función o método es tan temporal que no puedes darle un nombre, utiliza i para la primera, j para la segunda, y k para la tercera.

8. Indenta con cuatro espacios por nivel. Sin tabuladores. Si rompes este mandamiento serás lapidado en la plaza del pueblo.

9. Las líneas no deberían tener nunca más de 80 caracteres. Divide las líneas usando una barra invertida. No necesitas hacer esto si hay paréntesis, llaves o corchetes.

10. Espacio después de una coma (huevos, verdes, con, jamon).

11. Espacio antes y después de un operador (i = i + 1).

12. Escribe cadenas de documentación para todos los módulos, funciones, clases y métodos públicos. Python es una comunidad internacional, así que utiliza el inglés para las cadenas de documentación, los nombres de los objetos y los comentarios. # No muy de acuerdo con esto último, pero bueno.


NOTA: Estos mandamientos los tradujo Raul de Mundo Geek del artículo original de Command Line Warriors.

Bueno, eso es todo. Por favor lean esta información e intenten respetarla. Cuando tengan que analizar el código de otra persona van a comprender porqué es tan importante lograr este consenso.

Saludos!
WhiZ

P.D.: No se si es mucho pedir, pero me gustaría que esta información sea colgada en la sección de Python. Mi objetivo es, como dije, lograr un consenso a la hora de escribir en Python. Por ende, creo que información como ésta debe encontrarse disponible de manera permanente, tanto para aquellos que recién se inician como para los experimentados.


Hey brother, gracias, llevaba dos días buscando esta info. Al principio cuesta acomodarse pero cuando se hace, se nota la diferencia.

Citar
8. Indenta con cuatro espacios por nivel. Sin tabuladores. Si rompes este mandamiento serás lapidado en la plaza del pueblo.

Sin ir muy lejos, hoy deseaba lapidar a alguien por ese mismo motivo.

Saludos! y le pongo chincheta al post.







No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Excelente! no sabia que Python tenia mandamientos!
Muchas gracias por el post WhiZ!


Se de alguien (yo) que debe aplicarse el cuento...
Sigueme en Twitter : @Sankosk
Estos nuevos staff no tienen puta idea XD

Muy buena info, muchas gracias y sera aplicada para mis futuros scripts

Emm esto también es cool:

Código: php
dennis@r00t:~$ python


Código: php
Python 2.7.3 (default, Sep 10 2012, 00:09:03) 
[GCC 4.7.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
>>>

¿Ilusión o realidad?

Excelente, eso ayuda a recordar la sintaxis  :P
Para seguir la trayectoria:
mira al maestro,
sigue al maestro,
camina junto con el maestro,
mira a través del maestro,
conviértete en el maestro.

HOLA!!!

Jajaja...

Yo no cumplo ninguno creo.

SOY UN REBELDE  8)
GRACIAS POR LEER!!!
"Algunos creen que soy un bot, puede que tengan razon"
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

*Shadow Scouts Team*                                                No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Muy bueno WhiZ, me parece que en cualquier momento empiezo con py!
Saludos!

CrazyKade


jajaj no había leído esto,  otro más que sera lapidado en la plaza del pueblo

Me parto con el nº 8!!! jajajajjajajajajajajajajja

Buenas, he elegido python para aprender otro lenguaje de programacion. Tengo alguna base en C. Me parece interesante lo que decis.
Un saludo!

Hola a todos,

Me parece muy buena la aportación del "resumen" de buenas prácticas a la hora de codear código en Python :) Bueno yo les dejo un misma aportación, pero ya es algo muy larga y muy (pero muy) buen documentada jajaja Saludos!

Enlace: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
======
AlonsoCN