Recientemente tuve la fortuna de acceder a una copia del libro Mastering Object-oriented Python de Steven F. Lott, hoy quiero compartir un ustedes mis impresiones sobre el libro.
Primero que nada me gustaría dedicar un pequeño párrafo para hacerllegar mis felicitaciones a la casa editorial de Packtpub. En diferentes ocasiones a lo largo de mi vida profesional he utilizado en varias ocasiones sus publicaciones como libros de texto para realizar proyectos en tecnologías desconocidas para mi y siempre han resultad una excelente ayuda. Sigan con ese gran trabajo.
Volviendo al tema, hará más o menos dos años que descubrí el lenguaje de Python porque empecé a trabajar de forma profesional con OpenERP (ahora conocido como Odoo), por lo que pensé que la lectura de este libro sería una gran oportunidad para aprender nuevos trucos y mejorar la calidad del código que escribo.
Desde el primer capítulo, lo primero que descubrí es que OpenERP no es muy pythonico, o dicho de otra forma, OpenERP utiliza estándares de programación muy diferentes a los aceptados por la comunidad de python.
También me di cuenta de que el libro no es para principiantes ni para personas con pseudo conocimiento de python, como yo. De hecho al principio del libro el mismo autor recomienda que por lo menos se haya dado una revisión mínima a los conceptos de programación orientada a objetos en python presentados en el libro Python 3 Object Oriented Programming de la misma editorial. Y lo puedo confirmar, en varias ocasiones me ha costado trabajo seguir los ejemplos por la falta de dominio en algunos de esos conceptos básicos.
De ahí en fuera, el libro me ha gustado mucho realmente. La forma en la que el autor va presentando las ventajas y desventajas de todas las diferentes opciones para inicializar clases, crear polimorfismo de objetos, implementar un collector de basura, etc, etc. Es simplemente genial ya que te proporciona todas las herrramientas para decidir acertadamente a la hora de ponerse a trabajar.
El modelado de una partida de Blackjack, que utilizó el autor como caso de uso para ejemplificar el libro, también me gustó mucho ya que se presta para analizar conceptos complejos propios de la implementación de objetos en python sin agregar factores extra que distraigan la atención.
Todavía no he acabado de leer todo el libro, la carga de trabajo y el no poder aplicar muchos de los conceptos de forma inmediata no han ayudado mucho, sin embargo he sacado muchos tips que me han resultado especialmente útiles y, ahora que me he enamorado de la simplicidad de python, seguramente los estaré aplicando en varios de mis proyectos personales.