arrow_back Volver
Inicio keyboard_arrow_right Artículos keyboard_arrow_right Artículo

Lo bueno, lo malo y lo feo de Django

Eduardo Ismael Garcia

Full Stack Developer at Código Facilito.

av_timer 3 Min. de lectura

remove_red_eye 6073 visitas

calendar_today 17 Abril 2023

Hey que tal comunidad, mi nombre es Eduardo, y en este post me gustaría hablaramos acerca de lo bueno, lo malo y lo feo de Django, uno de los frameworks web por excelencia cuando hablamos de llevar Python a la web.

Todo esto es, por supuesto, desde mi punto de vista, con lo poco o mucho que he trabajando con este Framework.

Así que bien, sin más por añadir, comencemos de una vez. 🐊

Lo bueno.

Comencemos con lo bueno.

Django, cómo quizás ya lo sepas, el Framework más popular de Python, Y esto se debe a que con él podemos llevar Python a la web, creando aplicaciones web como página web o servicios APIs.

Algo a destacar de este Framework es la gran cantidad de herramientas que nos ofrece para crear aplicaciones web de forma rápida y eficiente. Con muy pocos archivos y líneas de código, ya podemos tener un proyecto 100% funcional. 🦗

Todos aquellos aspectos comunes del desarrollo web, como conectarse a una base de datos, el trabajo con formularios, un gestor de tempates, un sistema de autenticación y mucho, mucho más, ya están contemplados en Django. Por lo tanto, como desarrolladores, no debemos reinventar la rueda, simplemente tomar lo que Django ya nos ofrece y trabajar sobre ello.

Esto se traduce en un ahorro de tiempo, dinero y, por supuesto, esfuerzo. Además de todo esto, al implementar las herramientas que Django nos ofrece, de cierta forma nos estamos protegiendo de los ataques más comunes en el desarrollo web, como SQL injection, Cross-Site Request Forgery (CSRF), Cross-Site Scripting (XSS) entre otros. 🥳

Para finalizar el tema de lo bueno, me gustaría mencionar que, al ser Django tan popular, la comunidad que se ha creado en torno a él es sumamente interesante y activa. En internet podemos encontrar una gran cantidad de documentación a través de artículos, posts, vídeos, cursos, libros, etc. Por lo tanto, si hay algo que deseemos implementar, solucionar o aprender con respecto a Django, no dudemos que con un par de búsquedas en Google llegaremos al resultado deseado. 🤓

Además, la misma comunidad ha creado nuevos paquetes y librerías que nos ayudan a simplificar y acelerar nuestro desarrollo. Tenemos, por ejemplo, librerías externas como Django Rest Framework, Celery, Pillow, Django Debug Toolbar, django-environ, entre otros. Así que, de igual forma, si hay algo que deseamos implementar, es posible que ya exista una librería que haga lo que estamos buscando. 😎

Lo malo.

Lo malo de Django es sin duda su curva de aprendizaje.

La complejidad con la que podemos toparnos al aprender Django es probablemente la gran barrera a superar para los desarrolladores que están comenzando en la carrera, ya que, si bien es cierto Django nos ofrece muchas herramientas que están listas para ser utilizadas, muchas de estas funcionan como cajas negras, las cuales dificilmente podemos modificar.

Las abstracciones implementadas en estas herramientas hacen difícil que personas nuevas en el desarrollo puedan comprender al 100% qué están construyendo o por qué se está construyendo de esta forma.

Desde mi punto de vista, Django no es un framework con el cual puedas aprender fácilmente conceptos básicos del desarrollo web. 😱

Lo feo.

Y llegamos a lo Feo.

Lo feo para mí es, sin duda, que Django no está diseñado con el principio de Convención sobre Configuración. Si bien es cierto que Django lo intenta, la verdad es que sus esfuerzos son muy pocos. 😰

Hay muchos ejemplos, tomemos por ejemplo el tema de las URLs. Nosotros podemos definir nuestras rutas en archivos con los nombres que deseemos, como por ejemplo paths.py, rutas.py, mis_super_rutas.py, etc. Y Django no te penaliza por ello.

Lo mismo ocurre con los modelos, plantillas, fragmentos, vistas con funciones, basadas en clases, etc.

Django es muy permisivo en el tema de cómo nombramos a nuestras carpetas, archivos, clases, funciones o métodos. Esto puede ocasionar que, si el equipo no sigue buenas prácticas de programación, se termine con una aplicación difícil de mantener. 🥴

Y yo entiendo, esto no es culpa de Django per se, sin embargo, si comparamos Django con, por ejemplo, Rails, donde ambos frameworks tienen el mismo tiempo en el mercado, se nota una clara diferencia en qué tan permisivo puede ser un framework.

Letras finales.

Y listo, estos serían los puntos de los cuales quería hablarles el día de hoy. Y cuéntanos, ¿qué opinas de Django? ¿Lo has usado? ¿Cuáles son los puntos buenos y malos que le ves? Háznoslo saber en la sección de comentarios.