... | ... | @@ -21,7 +21,7 @@ |
|
|
- Para a implantação do sistema (deploy) utiliza-se <a href="https://www.docker.com/">**Docker**</a>, uma tecnologia de software que permite que a utilização contêineres (virtualizações em nível de sistema operacional) que empacotam uma aplicação e suas dependências em um recipiente virtual.
|
|
|
- Mais precisamente, utiliza-se <a href="https://docs.docker.com/compose/overview/">**Docker Compose**</a>, uma ferramenta que define e implementa um ambiente contendo múltiplos contêiners Docker.
|
|
|
- Abaixo encontra-se o diagrama de microsserviços onde:
|
|
|
* a caixa em branco representa o usuário do sistema, tipicamente um browse web.
|
|
|
* a caixa em branco representa o usuário do sistema, tipicamente um browser web.
|
|
|
* as caixas em azul representam as aplicações dockerizadas e implementadas no projeto.
|
|
|
* as caixas em cinza representam as aplicações não implementadas no projeto, podendo fazer parte de um futuro MVP.
|
|
|
|
... | ... | @@ -31,14 +31,14 @@ |
|
|
## 7.5 Análise dos princípios SOLID
|
|
|
|
|
|
#### Single Responsibility Principle:
|
|
|
O projeto possui três microsserviços separados em características macro: autenticação, pesquisas e respostas.
|
|
|
Cada microsserviço possui pacotes específicos para segurança, modelo de dados, comunicação com o banco de dados, modelo de saída, controladores e serviços.
|
|
|
Os controladores estão definidos conforme as rotas disponibilizadas, implementam um método para cada rota específica e delegam o processamento para os métodos de serviço.
|
|
|
- O projeto possui três microsserviços separados em características macro: autenticação, pesquisas e respostas.
|
|
|
- Cada microsserviço possui pacotes específicos para segurança, modelo de dados, comunicação com o banco de dados, modelo de saída, controladores e serviços.
|
|
|
- Os controladores estão definidos conforme as rotas disponibilizadas, implementam um método para cada rota específica e delegam o processamento para os métodos de serviço.
|
|
|
|
|
|
#### Open Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, Dependency Inversion Principle:
|
|
|
O projeto possui uma lógica concisa, direta e enxuta, logo suas classes não precisam de adptações, porém podem ser estendidas quando necessário.
|
|
|
Novas rotas e serviços podem ser facilmente criados com base nos já disponibilizados, sendo necessário apenas definição dos endpoints e da regra de negócio.
|
|
|
O projeto se vale de diversas abstrações, interfaces e anotações providas pelo framework Spring e outros terceiros, assim trata-se de uma implementação que segue boas práticas consolidadas no mercado, que possui fácil manutenção e extensão, e que pratica grande reúso.
|
|
|
- O projeto possui uma lógica concisa, direta e enxuta, logo suas classes não precisam de adptações, porém podem ser estendidas quando necessário.
|
|
|
- Novas rotas e serviços podem ser facilmente criados com base nos já disponibilizados, sendo necessário apenas definição dos endpoints e da regra de negócio.
|
|
|
- O projeto se vale de diversas abstrações, interfaces e anotações providas pelo framework Spring e outros terceiros, assim trata-se de uma implementação que segue boas práticas consolidadas no mercado, que possui fácil manutenção e extensão, e que pratica grande reuso.
|
|
|
<br><br>
|
|
|
|
|
|
## 7.6 Segurança
|
... | ... | |