Architecture Decision Record

Active theme: Light

← Ejemplos de registros de decisión

Registro de decisión de arquitectura para el framework Python Django

Fecha de la decisión: 2021-07-15

Estado: Aceptado

Contexto

Nuestra organización planea desarrollar una aplicación web que gestione datos de clientes. Hemos elegido Python como lenguaje de programación y estamos considerando Django como framework web para el desarrollo de la aplicación.

Decisión

Hemos decidido usar el framework web Django para el desarrollo de la aplicación web. Django ofrece un conjunto robusto de herramientas y funciones para construir aplicaciones web con rapidez y eficiencia.

Factores

Algunos de los factores que influyeron en nuestra decisión son:

  1. Mapeo objeto-relacional (ORM): Django tiene un ORM integrado que nos permite interactuar con la base de datos sin escribir consultas SQL. Esto facilita desarrollar la aplicación y mantenerla a largo plazo.

  2. Framework MVC: Django sigue una arquitectura Modelo-Vista-Controlador (MVC), lo que facilita separar la lógica de negocio y las capas de presentación de la aplicación.

  3. Escalabilidad: Django es conocido por sus capacidades de escalabilidad, lo que lo convierte en una excelente opción para desarrollar aplicaciones a gran escala.

  4. Seguridad: Django tiene funciones de seguridad integradas, como protección contra ataques web comunes como el cross-site scripting (XSS) y la inyección SQL.

  5. Apoyo de la comunidad: Django tiene una comunidad grande y activa que ofrece soporte y contribuye al desarrollo del framework.

Alternativas consideradas

Consideramos otros frameworks web como Flask y Pyramid. Sin embargo, encontramos que Django es un framework más maduro y consolidado, con un conjunto robusto de funciones.

También debatimos desarrollar la aplicación sin un framework web, usando bibliotecas como SQLAlchemy y Flask-RESTful. Sin embargo, encontramos que Django ofrece una funcionalidad más amplia, lo que lo convierte en una mejor opción para una aplicación web completa.

Consecuencias

La adopción de Django tendrá las siguientes consecuencias:

  1. Será más fácil desarrollar y mantener la aplicación gracias a las herramientas y funciones integradas de Django.

  2. Separación de la lógica de negocio y la capa de presentación, lo que da un código más organizado y más fácil de mantener.

  3. Escalabilidad y robustez de la aplicación.

  4. Funciones de seguridad integradas que ayudan a proteger la aplicación contra ataques web comunes.

  5. Acceso a una comunidad grande y activa para obtener soporte.

Entendemos que Django tiene una curva de aprendizaje más pronunciada que otros frameworks, pero consideramos que vale la pena la inversión por los beneficios a largo plazo que ofrece.

Conclusión

Con base en los factores considerados, hemos decidido usar el framework web Django para el desarrollo de la aplicación web. Creemos que las funciones, el apoyo de la comunidad y las capacidades de escalabilidad de Django lo convierten en la mejor opción para construir una aplicación web completa. Capacitaremos a nuestros desarrolladores para usar Django, a fin de garantizar que el framework se use de manera eficaz y eficiente.