A medida que las empresas confían más y más en las APIs REST, los datos que viajan en formato JSON ha incrementado notablemente. Con este incremento, los errores por mensajes mal formados también se ha incrementado; esto nos obliga a validar los mensajes, no solamente de sintaxis, sino de semántica.
He sido fan de python desde hace muchos años. Inicialmente lo empecé a utilizar porque, junto a bash, era la herramienta que venía por defecto en todos los servidores que administraba. Pero con el tiempo salió la versión 3, incompatible con la 2; al final me ha tocado migrar forzadamente.
Estaba yo el otro día investigando una nueva librería de python, pero necesitaba de otra librería que se compilaba. Harto de perder el tiempo compilando cada vez esta librería, recuperé un antiguo artículo que me permitía distribuir el archivo wheel ya compilado tantas veces yo quisiera; como no, usando docker.
Soy un gran fan de python y siempre ando trasteando con alguna librería nueva, en vistas a un script para simplificar mi trabajo, o simplemente como un wekeend project. Me es infinitamente útil usar virtualenv, pero genera una carpeta que ocupa demasiado y contiene algo más que solamente las librerías.
Muchos de los microframeworks que existen en python no ofrecen ninguna ayuda con las tareas más simples que toda aplicación acaba implementando; eso nos hace decantarnos casi siempre por una opción más pesada de framework, como por ejemplo, Django. Sin embargo, gracias a los blueprints de Flask, esto es innecesario.
Ya estuvimos hablando del microframework Flask, pero no profundizamos en su funcionalidad más avanzada: los blueprints, que son una agrupación de vistas, plantillas y contenido estático similar a las aplicaciones de django. Solamente por esta funcionalidad queda justificado el uso de este framework para proyectos de tamaños medio o grande.
Cuando queremos hacer una nueva aplicación web podemos usar un framework completo como django o uno minimalista como bottle. Entre ambos existe una amplia variedad de frameworks que nos pueden aportar variedad y algunas de las funcionalidades más demandadas. En esta categoria podemos encontrar un microframework muy interesante llamado Flask.
Aquellos que hemos usado mongodb desde python, ya conocemos las virtudes de pymongo. Sin embargo, este lenguaje es orientado a objetos, y trabajar con ellos hace nuestro código más simple y más legible. Mongoengine es un ODM, una librería que se encarga de convertir objetos en documentos mongodb y viceversa.
Algunas veces nos interesa lanzar comandos bash, pero necesitamos de la potencia de python para parsear la salida. En otras ocasiones queremos lanzar los comandos bash directamente desde python porque se hace desde una aplicación web. En estos casos nos viene muy bien el módulo subprocess que nos lo permite.
Muchas veces nos pasa que necesitamos un objeto de esos que luego necesitan algún tipo de limpieza cuando ya no se necesitan. Cualquier programador avanzado os puede contar lo fácil que es olvidarse de la destrucción del mismo, y de las veces que lo ha hecho, él u otras personas.