Skip to content

guilhermeforprojeto/clean_architecture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clean Architecture

⚠️ Under development...

Applied Technologies



- Exemplo de arquitetura limpa seguindo os conceito do livro Clean Architecture do autor Robert Cecil Martin.

  • Requisitos/sr

    • Conexão com internet
  • Instalação[dentro do diretório via terminal]:

    • Copie/Baixe este respositorio GitHub para sua máquina.
    • Extecute npm install via terminal no diretório do projeto
  • Execução desta aplicação [dentro do diretório via terminal]:

    • Colocar o Nest.js em execução execute no terminal: npm run start:dev
    • Esse endpoint criado responde a GET e POST então podemos usar algumas ferramentas para ver ou incluir dados. Usamos aqui o ./api.http que com a extensão do VS code que permite fazer GET/POST ao abrir o arquivo ./api.http

      Vemos aqui a baixo como fazer a requisição REST API


  • Tecnologias usadas no projeto
    • NodeJS | TS | ExpressJS | NestJS | TypeORM

As 4 Camadas da Clean Architecture

Na Arquitetura limpa temos portas e adaptadores

EX: Neste projeto o /back_end/src/@core/infra/http/express/index.ts é o nosso adpatador e o /back_end/src/application/... são nossas portas. Ler mais

Padrões relacionados

Adaptador:

O livro ''Design Patterns'' contém uma descrição do padrão genérico ''Adapter'': "Converter a interface de uma classe em outra interface que os clientes esperam". O padrão de portas e adaptadores é um uso particular do padrão ''Adaptador''.

Model-View-Controller:

(Controladora de visualização de modelo) O padrão MVC foi implementado já em 1974 no projeto Smalltalk. Tem sido dado, ao longo dos anos, muitas variações, como Model-Interáctor e Model-View-Presenter. Cada um deles implementa a ideia de portas e adaptadores nas portas primárias, não nas portas secundárias.

Fonte

#

ENTITIES




#

USE CASES

  • Arquivo com caso de uso /back_end/src/@core/application/create_route.use_case.ts

    O caso de uso, por exemplo os tipos de input e output, obriga informa a entrada de alguns dados cruciais para o funcionamento

    CreateRouteInput nesta aplicação é a porta do caso de uso The Pattern: Ports and Adapters (‘’Object Structural’’) como diz no link. Desta forma a INFRA, PRESENTERS & REPOSITORIES vai precisar se adpatar aos casos de uso e nunca o inverso.

    Permitir que um aplicativo seja igualmente conduzido por usuários, programas, scripts automatizados de teste ou em lote, e seja desenvolvido e testado isoladamente de seus eventuais dispositivos e bancos de dados de tempo de execução.





#

INFRA, PRESENTERS & REPOSITORIES

  • Arquivo com a infra /back_end/src/@core/infra/http/express/index.ts

    A infra, aqui onde vamos usar para passar os dados da requisição da entidade usando os casos de uso

    Utlizamos a extensão REST Client ->/ @ext:humao.rest-client para testar o POST na aplicação.

  • Expres.js
    • Framework Node, usado para habilitar uma aplicação web e usar a nossa aplicação.

      Com ele fizemos GET & POST nas rotas. Arquivo com fontes aqui

  • NestJS
    • NestJS é um framework Node.js destinado ao desenvolvimento de aplicativos do lado do servidor. NestJS faz uso do framework Express.js, sendo também compatível com o Fastify. Sua arquitetura é fortemente inspirada no Angular.



#

UI, DB & WEB

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published