Skip to content

Especificação

João Henrique Egewarth edited this page Nov 27, 2017 · 43 revisions

Sumário



1.Introdução

Seguindo o planejamento realizado desde as primeiras atividades de análise de domínio e requisitos, o projeto estará sendo especificado como um Framework, viabilizado através da criação de uma API REST com o framework Django Rest. Através da análise das diversas funcionalidades atuais do Ecom_merci e das futuras features planejadas, foi possível mapeá-las como soluções para conjuntos de problemas comuns à construção de aplicações na área que busca informatizar o setor de vendas, devido à natureza da aplicação como um web service de e-commerce adaptável para diferentes contextos. Nos tópicos seguintes, serão abordadas a justificativa para o tipo de Framework adotado, suas particularidades, níveis de reutilização, desenvolvimento e utilidades.


2.Tipo de Framework

Com a utilização das diversas ferramentas oferecidas pelo Framework Django Rest, assim como o modo que a aplicação foi projetada e desenvolvida inicialmente, é possível classificar o framework Ecom_merci como Black Box ou Caixa Preta.


2.1 Justificativa

A principal vantagem da utilização de um framework Caixa preta para este projeto é a fácil reutilização de certas funcionalidades e comportamentos. Com a utilização das mixing classes do Django Rest será possível reescrever as views do projeto com menos código, através da composição dos serviços classificados como necessários, permitindo desse modo o consumo de programação pronta, assim como nos fundamentos de um framework Caixa preta. A utilização de componentes frozen spots fixos em toda e qualquer instanciação do framework também garantem sua classificação como Black Box e está documentada em tópicos posteriores. As aplicações que utilizarem o framework poderão escolher sob demanda os serviços apresentados pelo mesmo e ele proverá objetos prontos para o uso, sem que sejam necessários conhecimentos sobre próprio framework para utilização.


2.2 Uso do Framework

O framework Ecom_merci foi pensado e projetado como uma aplicação que pudesse fornecer os fundamentos básicos necessários para a criação de serviços web que atendessem às necessidades de clientes buscando informatizar o processo de compra e venda online. Embora inicialmente idealizado como uma aplicação voltada para um contexto específico de produtos esportivos, os requisitos foram reaproveitados e especificados de uma forma mais genérica permitindo a identificação de features mais comuns entre os diversos tipos de E-commerce existentes. Após a especificação inicial do framework, foi identificado que sua principal aplicação seria para o suporte do desenvolvimento de aplicações web de e-commerce, sendo classificado como um framework de Infra estrutura que pudesse fornecer as ferramentas, funcionalidades e componentes para serem aproveitados pelas organizações.


3.Desenvolvimento do Framework

Assim como a experiência do usuário (User Experience - UX ) é de extrema importância a nível de design de interação, o conceito de experiência do desenvolvedor (Developer Experience - DX) surge como um diferencial no desenvolvimento de um framework e é uma extensão do UX.
O Framework Ecom_merci foi desenvolvido seguindo a premissa de que é importante compreender as expectativas e necessidades dos desenvolvedores para que a experiência do desenvolvedor seja a mais positiva possível. Desta forma, o foco será garantir serviços que sejam úteis e minimalistas a serem utilizados em aplicações que farão uso dele , além de uma boa documentação para guiar o desenvolvedor.

4.Spots do Framework

Por se tratar de um framework Caixa-preta, será orientado a Frozen-spots.

O projeto implementado no Módulo I será utilizado como core, e assim as implementações proverão serviços às aplicações que farão uso deste. Abaixo segue uma representação de como se daŕá essa comunicação entre o fremework e as aplicações que o utilizarão como base e os serviços que serão disponibilizados.

Esquema

Diagrama de Classes

ultimo Veja a imagem ampliada

5.Padrões de Projeto do Framework

6.Embasamento Tecnológico

6.1. Django

Django é um framework web de alto nível escrito em Python que estimula o desenvolvimento rápido e limpo. Django foi projetado para lidar com dois desafios: os prazos apertados e os requisitos rígidos dos experientes desenvolvedores web que o criaram. Ele permite que você construa rapidamente aplicações web de alto desempenho e elegância. Django se concentra no máximo de automatização possível e adere ao princípio DRY (não se repita).

Django trabalha sem necessidade de uso de scripts SQL, os modelos de dados, ou Models , são escritas inteiramente em python e os métodos de acesso ao banco são gerados automaticamente pelo Django.

A arquitetura do Django é uma arquitetura n camadas conhecida como MVT, Model, View, Template.

6.2. Django Rest API

Django REST framework é uma ferramenta para criação de APIs Django que utiliza de Viewsets e Serializers. O Django Rest permite escrever as novas API views à partir das Class based views do Ecom_merci, garantindo desse modo a reutilização de funcionalidade comum.

Serializers

A implementação dos frozen spots será feita através de serializers. As serializers são classes do Django Rest que permitem que dados complexos como querysets e instancias de Model sejam convertidos em tipos de dados Python que podem ser facilmente renderizados em XML e JSON. O uso das serializers será feito diretamento com o uso de Viewsets onde é gerada a view utilizando a serializer. A viewset é usada posteriormente nas rotas com o uso do `` router.register ``.

Serializer(serializers.py):

Viewset(views.py):

URLs (urls.py):

6.3. Swagger

A Swagger é a maior plataforma de desenvolvedores de API do mundo para a especificação OpenAPI (OAS), permitindo o desenvolvimento em todo o ciclo de vida da API, desde o design e documentação até testes e implantação. Este Framework nos auxiliou a uma melhor e mais clara documentação sobre o nosso projeto, com isso facilitando a vida dos usuários do Ecom_merci.

Referências

Clone this wiki locally