Ir al contenido principal

Django: Framework Django ¿Qué es un Framework?

Resultado de imagen para django framework

Hola queridos lectores, el día de hoy iniciaremos hablando acerca de django, pero antes de poder hablar acerca del tema debemos encarecidamente saber que es un framework puesto que dentro de las próximas entradas estaremos trabajando con uno, es así que debemos preguntar:

¿Qué es un framework?

Un framework o marco de trabajo es un conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática particular que sirve como referencia para enfrentar y resolver nuevos problemas de índole similar. Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para así ayudar a desarrollar y unir los diferentes componentes de un proyecto. Representa una arquitectura de software que modela las relaciones generales de las entidades del dominio, y provee una estructura y una especial metodología de trabajo, la cual extiende o utiliza las aplicaciones del dominio.

Ahora, yo sé que la anterior definición esta en chino (si le entendiste te felicito) pero a mi no me gustan los rollos demasiado técnicos cuando lo que queremos es ir al grano, es así que en español un framework es simple y sencillamente un conjunto de librerías, programas, códigos y demás herramientas que ya vienen escritos y/o diseñados, los cuales podemos reciclar para implementar en nuestros proyectos personales.

Una vez veía un video en youtube, si no más recuerdo era de platzi, el chiste es que comentaba algo muy importante: ‘No reinventes la rueda’. Al momento de programar generalmente nos topamos con una infinidad de situaciones, sin embargo encontramos por lo regular puntos en común, por ejemplo: ‘Necesito implementar un slide de fotos en mi página web’, ‘Necesito ver cómo implementar pagos en paypal’, ‘Necesito meter una barra de navegación desplegable en mi sitio’, por lo general estas situaciones son más comunes de lo que crees y en la mayoría de las veces alguien más ya ha programado lo mismo que tú con anterioridad, y es donde sale la cuestión ¿Necesito tomarme la molestia de volver a programar algo SIMILAR (por no decir igual) desde cero? La respuesta es variada, todo depende de tu proyecto, lo que si es cierto es que, si ya existe ¿Por qué no intento tomar un código existente y ajustarlo a mis necesidades?

Y dada la respuesta a la pregunta anterior es como nacen los frameworks, pues estos ofrecen básicamente una base sólida sobre la cual desarrollar programas y/o aplicaciones, puesto que los códigos ya están escritos, las librerías ya están disponibles y lo único que debes hacer tu es, por una parte:
  • Entender cómo funciona el framework con todas sus herramientas y utilidades
  • Darte vuelo modificando y creando tu propio código acorde a tus requerimientos.
Y es que un Framework sirve para poder escribir código de manera más sencilla, permite una mejor organización y control de todo el código elaborado, así como una posible reutilización en el futuro. Debido a esto, garantiza una mayor productividad que los métodos más convencionales y una minimización del coste al agilizar las horas de trabajo volcadas en el desarrollo.

De hecho a la hora de programar es recomendable utilizar alguno (a menos que de manera forzosa necesites crear algo totalmente nuevo o asi sea necesario) pero ¿Por que?
  1. Evitas escribir código repetitivo: como mencionaba ‘no reinventes la rueda’, si lo que quieres hacer ya existe ¿Realmente es totalmente necesario quebrarte la cabeza? Obviamente puedes hacerlo, tienes más control de tu código y aprendes varias cosas, pero, si algo ya existe y funciona muy bien (como la rueda, vaya el ejemplo) no es necesario que te mates. Al usar un framework tomas como base el trabajo de los demás y de esta manera agilizas los tiempos de desarrollo, además recuerda que uno de los patrones actuales de programación es la modularidad, es decir, utilizar en tu código partes de programas ya funcionales a manera de reutilizar código.
  2. Utilizas buenas practicas: al utilizar un framework generalmente te vez obligado a manejar un código más estructurado pues el mismo framework, en orden para funcionar adecuadamente, te lo solicita, además de esta menara manejaras un código mas limpio y sin errores.
  3. Permiten hacer cosas más avanzadas que tu no harías: como mencionaba, los frameworks poseen código ya preescrito sobre los cuales puedes trabajar, este código incluye funciones y clases que realizan cosas más avanzadas, por ejemplo django (el framework a tratar en estas entradas) posee ya preincorporado la función de validar los campos en los formularios (sin que yo tenga que mover un solo dedo) o incluso, tengo entendido posee una librería ya escrita para el envio de correos electrónicos, todo eso sin tener que programarlo, solo necesitaría invocar la clase correspondiente y sus métodos.
  4. Desarrollar más rápido: pues ligado a lo anterior, reutilizar códigos ya escritos nos ayuda a desarrollar mas rápido, agilizar nuestros tiempos y ofrecer con facilidad un trabajo en tiempo y forma.
  5. Minimiza errores del código: no estoy diciendo que al utilizar un framework los errores y bugs en tu código mágicamente desaparecerán, obvio no (seria el paraíso del programador), a lo que me refiero es que tendrás un mayor control de los errores al enfocarte solo a tu código, pues al saber que todo en el framework ‘funciona bien’ (los bugs siempre están presentes) tendras por seguro que el error es de tu parte y con ello sabrás donde enfocarte.
¿Qué frameworks existen?

Esa es muy buena pregunta, y depende en gran medida de cual sea tu campo de interés, por ejemplo en el mundo de Desarrollo Web tenemos:

Boostrap logo.svg

Boostrap: puede considerarse un framework el cual consiste en una biblioteca de código abierto el cual proporciona códigos de estilos (CSS) para sitios y aplicaciones web. Contiene plantillas de diseño con tipografía, formularios, botones, cuadros, menús de navegación y otros elementos de diseño basado en HTML y CSS, así como extensiones de JavaScript adicionales. A diferencia de muchos frameworks web, solo se ocupa del desarrollo front-end.


JQuery logo text.svg

Jquery: jQuery es una biblioteca multiplataforma de JavaScript, creada inicialmente por John Resig, que permite simplificar la manera de interactuar con los documentos HTML, manipular el árbol DOM, manejar eventos, desarrollar animaciones y agregar interacción con la técnica AJAX a páginas web.

Flask logo.svg

Flask: es un framework minimalista escrito en Python que permite crear aplicaciones web rápidamente y con un mínimo número de líneas de código. Está basado en la especificación WSGI de Werkzeug y el motor de templates Jinja2 y tiene una licencia BSD.

 Yii PHP Framework

Yii: es un framework orientado a objetos, software libre, de alto rendimiento basado en componentes, PHP y framework para aplicaciones web.

Resultado de imagen para laravel

Laravel: es uno de los frameworks de código abierto más fáciles de asimilar para PHP. Es simple, muy potente y tiene una interfaz elegante y divertida de usar. Fue creado en 2011 y tiene una gran influencia de frameworks como Ruby on Rails, Sinatra y ASP.NET MVC.
Resultado de imagen para symfony framework

Symfony: es uno de los frameworks PHP más populares entre los usuarios y las empresas, ya que permite que los programadores sean mucho más productivos a la vez que crean código de más calidad y más fácil de mantener. Symfony es maduro, estable, profesional y está muy bien documentado.

¿Qué es Django?

Bueno dentro de los frameworks web tenemos a Django, este es un framework utilizado para el desarrollo de paginas web dinámicas, esta emplea el modelo-vista-controlador (el cual explicaremos en próximas entradas no desespereis), este esta desarrollado y enfocado a Python.

Su historia e importancia:

Django nació naturalmente de aplicaciones de la vida real escritas por un equipo de desarrolladores Web en Lawrence, Kansas. Nació en el otoño boreal de 2003, cuando los programadores Web del diario Lawrence Journal-World, Adrian Holovaty y Simon Willison, comenzaron a usar Python para crear sus aplicaciones.

El equipo de The World Online, responsable de la producción y mantenimiento de varios sitios locales de noticias, prosperaban en un entorno de desarrollo dictado por las fechas límite del periodismo. Para los sitios — incluidos LJWorld.com, Lawrence.com y KUsports.com — los periodistas (y los directivos) exigían que se agregaran nuevas características y que aplicaciones enteras se crearan a una velocidad vertiginosa, a menudo con sólo días u horas de preaviso. Es así que Adrian y Simon desarrollaron por necesidad un framework de desarrollo Web que les ahorrara tiempo — era la única forma en que podían crear aplicaciones mantenibles en tan poco tiempo —.

En el verano boreal de 2005, luego de haber desarrollado este framework hasta el punto en que estaba haciendo funcionar la mayoría de los sitios World Online, el equipo de World Online, que ahora incluía a Jacob Kaplan-Moss, decidió liberar el framework como software de código abierto. Lo liberaron en julio de 2005 y lo llamaron Django, por el guitarrista de jazz Django Reinhardt.

A pesar de que Django ahora es un proyecto de código abierto con colaboradores por todo el mundo, los desarrolladores originales de World Online todavía aportan una guía centralizada para el crecimiento del framework, y World Online colabora con otros aspectos importantes tales como tiempo de trabajo, materiales de marketing, y hosting/ancho de banda para el Web site del framework

Escuchando lo anterior te pregunto ¿Notaste algo diferente a la típica historia que conoces de algún lenguaje? Como menciona la propia historia de este framework, este fue desarrollado y extraído de código de la vida real, en lugar de ser un ejercicio académico o un producto comercial, está especialmente enfocado en resolver problemas de desarrollo Web con los que los desarrolladores de Django se han encontrado y siguen encontrándose dia a dia (digo, la típica historia cliché es que se desarrolló por un grupo universitario, nació como una práctica profesional, un pasatiempo o por demostrarle algo a alguien).

Y es que django es verdaderamente un framework muy util prueba de ellos es que actualmente es utilizado por empresas importantes como:
  • Intagram
  • The New York Times
  • Pinterest
  • Nasa Science
  • Mercedez-Benz
  • The washington Post
  • National Geographic
  • Addons.Mozilla.org.
  • Orange.ch
En fin, django en mi experiencia es un framework muy potente y la verdad creo es no de los pocos que encuentro que resultan fáciles de entender y gestionar (una vez le tomas el hilo y aprendes a manejarlo), además de ser muy práctico y te ofrece varias facilidades técnicas, es más, puedes ocuparlo para montar un servicio web local, tipo una biblioteca virtual para una institución o escuela dada las facilidades de la configuración de su servidor local, además de ser fácil de exportar a otros servicios como pythonanyewhere y su sencillez para manejar varios sistemas de bases de datos, entre ellos sqlite, postgresql, mysql, entre otros.

Bueno, por hoy es todo, espero disfruten de leer esta entrada, en los próximos post estaremos ya centrándonos en este framework, probablemente lo siguiente a tocar es la instalación del mismo. Como sea, hasta la próxima.

Fuentes:
https://es.wikipedia.org/wiki/Framework
https://neoattack.com/neowiki/framework/
https://www.orix.es/que-es-un-framework-y-para-que-se-utiliza
https://es.wikipedia.org/wiki/Bootstrap_(framework)
https://es.wikipedia.org/wiki/JQuery
https://es.wikipedia.org/wiki/Flask
https://es.wikipedia.org/wiki/Yii
https://www.yiiframework.com/
https://www.hostinger.mx/tutoriales/mejores-frameworks-php/
https://laravel.com/
https://www.arsys.es/blog/programacion/que-es-laravel/
http://www.maestrosdelweb.com/el-framework-symfony-una-introduccion-practica-i-parte/
https://tutorial.djangogirls.org/es/django/
https://www.djangoproject.com/
https://uniwebsidad.com/libros/django-1-0/capitulo-1/la-historia-de-django
https://es.wikipedia.org/wiki/Django_(framework)
https://devcode.la/blog/por-que-usar-django/ 

Comentarios