-
Notifications
You must be signed in to change notification settings - Fork 46
Padrões Arquiteturais MVC X Arquitetura do Django
Este documento trata-se de um tutorial técnico que visa demonstrar o básico dos conceitos de Arquitetura de Software e Padrões Arquiteturais, além de demonstrar como esses conceitos são aplicados tanto no MVC quanto na Arquitetura de projetos desenvolvidos a partir do framework Django.
“Uma arquitetura de software envolve a descrição de elementos arquiteturais dos quais os sistemas serão construídos, interações entre esses elementos, padrões que guiam suas composições e restrições sobre estes padrões”. GARLAN, 1998. Exemplo de elementos arquiteturais: bancos de dados, servidores, clientes, componentes, entre outros.
- Padrões arquiteturais expressam formas de organizar a estrutura do sistema;
- Permitem a construção de uma arquitetura aderente a certas propriedades;
- A escolha do padrão arquitetural pode ser o primeiro passo para a solução de um projeto.
Padrões arquiteturais definem o conjunto de componentes do software, suas responsabilidades e as regras de relacionamentos entre eles.
Por que utilizar uma padrão arquitetural?
- Instrumento para lidar com a complexidade do software a ser construído;
- Ajuda na redução de tempo e custo de desenvolvimento;
- Melhora a capacidade de manuntenção do software.
Um Padrão Arquitetural que separa estruturalmente o projeto do software em três partes:
- Model;
- View;
- Controller.
Responsável por:
- Representar as classes de domínio;
- Leituras e escritas de dados (interface com o banco de dados).
Responsável por:
- Receber requisições dos usuários;
- Processar requisições;
- Controlar as models e views a serem utilizadas.
Responsável por:
- Interface com o usuário;
- Exibição de dados (HTML).
View – Fala Controller ! O usuário acabou de pedir para acessar o Facebook ! Pega os dados de login dele ai.
Controller – Blz. Já te mando a resposta. Ai model, meu parceiro, toma esses dados de login e verifica se ele loga.
Model – Os dados são válidos. Mandando a resposta de login.
Controller – Blz. View, o usuário informou os dados corretos. Vou te mandar os dados dele e você carrega a página de perfil.
View – Vlw. Mostrando ao usuário…
Segue o Padrão Arquitetural MVT, próprio do Django, aderente ao MVC. De acordo como o Django Book, o Django segue o padrão MVC suficientemente para ser considerado um framework MVC.
O MVT separa estruturalmente o projeto do software em três partes:
- Model;
- View;
- Template.
As Models do MVC e do MVT são equivalentes em responsabilidades. O framework Django facilita na interface com o banco de dados. Cada classe da modelo se compara a uma tabela do banco de dados, e as instâncias destas classes, representam os registros destas tabelas. Para adicionar valores ao banco, basta definí-los nas respectivas variáveis. Esta camada contém qualquer coisa e tudo sobre os dados: como acessá-lo , como validá-lo , quais comportamentos que tem e as relações entre os dados. Para o mapeamento dos dados, não será necessário utilizar códigos em SQL para garantir a persistência dos dados no banco.
A camada View é responsável pela implementação das regras de apresentação e negócio do nosso sistema. É nela onde iremos nos comunicar com a Model e a Template, cadastrando e tratando as informações recebidas. Retornando para o usuário uma resposta, como HTMLs, XML, ou erros encontrados.
Templates é a camada que retorna a visão para o usuário do programa. Essa camada é composta por, HTML,CSS, javascript e etc. Geralmente linguagens focadas na apresentação do site para o usuário.
- As resoluções de urls, responsabilidade dada as controllers no MVC, é feita pela própria estrutura do framework;
- O Django oferece uma interface com o banco de dados que permite ao desenvolvedor não se preocupar com a conexão entre suas classes de domínio e banco.
[MVC – Afinal, é o quê ?] (http://tableless.com.br/mvc-afinal-e-o-que/)
EPS/MDS - FGA/UnB
Métodos de Desenvolvimento de Software
Gestão de Portfólio e Projetos de Software
RUP (Rational Unified Process)
Fase Elaboração (RUP) Planejamento(PMBOK)
Fase de Construção (RUP), Execução/Monitoramente e Controle (PMBOK)
Fase Transição (RUP), Finalização (PMBOK)
Acceptance Test Driven Development (ATDD)
Integração Contínua Deploy Contínuo
Automação de Ambiente com Docker
Orquestração de Containers com Docker Compose
Automação de Ambiente com Vagrant
Deploy Contínuo na Plataforma Heroku
Integração Contínua com Travis CI
Disponibilizando a Aplicação com o Proxy Reverso Nginx
Tutorial de Instalação do Ionic
Android Integração contínua com Circle CI
Configuração de Ambiente para React Native
Tutorial Instalação Ruby on Rails
Teste Automatizado Cucumber JS
Teste Automatizado Cucumber Rails
Testando AngularJS com Jasmine
Teste Automatizado com Selenium IDE
Configurar o SonarCloud para um projeto usando Jest
Configurar o SonarCloud para um projeto usando Pytest
Configurar o SonarCloud para um projeto usando Mocha e Istambul