Architecture Decision Record

Active theme: Light

← Exemplos de registros de decisão

Registro de decisão de arquitetura para o framework Python Django

Data da decisão: 2021-07-15

Estado: aceito

Contexto

Nossa organização está planejando desenvolver uma aplicação web que gerencia dados de clientes. Escolhemos o Python como linguagem de programação e estamos considerando o Django como framework web para o desenvolvimento da aplicação.

Decisão

Decidimos usar o framework web Django para o desenvolvimento da aplicação web. O Django fornece um conjunto robusto de ferramentas e recursos para construir aplicações web de forma rápida e eficiente.

Fatores

Alguns dos fatores que influenciaram a nossa decisão incluem:

  1. Mapeamento objeto-relacional (ORM): o Django tem um ORM integrado que nos permite interagir com o banco de dados sem escrever consultas SQL. Isso facilita desenvolver a aplicação e mantê-la a longo prazo.

  2. Framework MVC: o Django segue a arquitetura Model-View-Controller (MVC), o que facilita separar a lógica de negócio e as camadas de apresentação da aplicação.

  3. Escalabilidade: o Django é conhecido por suas capacidades de escalabilidade, o que o torna uma excelente escolha para desenvolver aplicações de grande escala.

  4. Segurança: o Django tem recursos de segurança integrados, como proteção contra ataques web comuns, como cross-site scripting (XSS) e injeção de SQL.

  5. Apoio da comunidade: o Django tem uma comunidade grande e ativa que oferece suporte e contribui para o desenvolvimento do framework.

Alternativas consideradas

Consideramos outros frameworks web, como Flask e Pyramid. No entanto, constatamos que o Django é um framework mais maduro e consolidado, com um conjunto robusto de recursos.

Também discutimos desenvolver a aplicação sem um framework web e usando bibliotecas como SQLAlchemy e Flask-RESTful. No entanto, constatamos que o Django oferece funcionalidade mais ampla, o que o torna uma escolha melhor para uma aplicação web completa.

Consequências

A adoção do Django levará às seguintes consequências:

  1. Será mais fácil desenvolver e manter a aplicação, graças às ferramentas e aos recursos integrados do Django.

  2. Separação entre a lógica de negócio e a camada de apresentação, levando a um código mais organizado e mais fácil de manter.

  3. Escalabilidade e robustez da aplicação.

  4. Recursos de segurança integrados que ajudam a proteger a aplicação contra ataques web comuns.

  5. Acesso a uma comunidade grande e ativa para suporte.

Entendemos que o Django tem uma curva de aprendizado mais íngreme do que outros frameworks, mas consideramos que vale o investimento pelos benefícios de longo prazo que oferece.

Conclusão

Com base nos fatores considerados, decidimos usar o framework web Django para o desenvolvimento da aplicação web. Acreditamos que os recursos do Django, o apoio da comunidade e as capacidades de escalabilidade fazem dele a melhor escolha para construir uma aplicação web completa. Treinaremos nossos desenvolvedores para usar o Django, a fim de garantir que o framework seja usado de forma eficaz e eficiente.