Mejores prácticas para el desarrollo con Python II - Python programming patterns and practices

No Comments
http://www.toptal.com/uploads/blog/hiring_guide/image/2/1_A.png
Buenas a todos, el dia de ayer no salio entrada porque andaba a full con un informe del trabajo, grata fue la sorpresa al ver que si logramos terminar con un compañero de trabajo eso que no dormi nada! xD y ayer fue un dia especial por lo cual ni que decir si me dormi o no, mientras estuve en el aeropuerto, aclarando que mi vuelo hiba a salir a las 6:00 lo cual no fue cierto salió casi a las 8:00 vieran mi cara de enojo al notar el retraso pero bueno el tiempo no fue mal aprovechado, ya que estuve ahi laburando haciendo el informe hubieron momentos que me dormia jajaja entre todo este proceso me puse a ver las ultimas actualizaciones de mi feed al menos unos cuantos minutos, en ese trajin no se porque pero me distraje y me fui a parar a otro lado algo que anduve viendo en los pasados días y es sobre Practicas y patrones de programación sobre Python el cual es extraido del sitio Programmers Stackexchange. Me da una pereza traducir por ello lo dejo tal cual esta en el blog, es cierto que la pregunta data del 2011 pero que va! todo sirve para mejorar :)

Practices

Tests : unit tests, integration tests and functional tests are the way you must do your job.
The most surprising is unit tests is far more complex to do than others because you need to create a code structure that let you replace your dependencies on the framework by fake implementation:
For exemple you can check this code: https://github.com/collective/collective.gallery/tree/master/collective/gallery/tests
utils.py contains fake components I next use in the setup to be sure I only use THE class I'm testing.

http://fc03.deviantart.net/fs71/i/2010/290/0/c/python_by_zaper3095-d30y4s7.jpg

Packaging

I'm using 'egg' to package my code and make it easy to use. So you can publish your add-on on the website http://pypi.python.org
To create an egg you can use PasteScript: http://pypi.python.org/pypi/PasteScript
To understand packaging you have to understand this:
  • distutils is just the setup.py file to say what are your dependencies and how to build & install the package
  • setuptools add the easy_install command with pypi as default egg repository (kind of apt-get). Today there is a fork of setuptools named distribute.
  • buildout add a way to get multiple version of the same eggs and it build the system path inside 'scripts' put in a bin folder: http://www.buildout.org/

Performance

No matter what performances are never checked first and this is bad. We are working on performances when there are performances issues.
http://pypi.python.org/pypi/funkload is a great tool to create performance tests.
Python provide tools to profile your code. I let you google that.

Private

Never hide sth to other developers, useless and boring for them. 'property' make your public variable wrapped by accessor&mutator and do the job you want (never broke things)
http://docs.python.org/library/functions.html#property

Database

I'm use to http://pypi.python.org/pypi/psycopg2 with postgresql. Python embed the sqlite binding since 2.5 to build tests
You should also consider that the http://zodb.org/ZODB can be used outside of Zope framework and is one of the oldest nosql database on python.

Books

My favorite one: http://www.packtpub.com/expert-python-programming/book
Por si lo quieren descargar lo tenemos en el blog ir aquí

Favorties packages & tools


Espero les sirva y le den un vistazo mas profundo segun sea la necesidad o encuentre información relacionada iremos compartiendo.

Regards,
Snifer

0 comentarios

Publicar un comentario en la entrada