Bom pessoal, seguinte, seguinte, seguinte, agora a gente vai começar a falar de alguns design patterns que são importantes você saber que ele existe, né? Esses design patterns existem. Então vamos lá. Primeira coisa que a gente vai falar que é sobre N-tier ou N-layer, né? Ou Tier Layered Architecture, tá? O que que significa isso? ou Tier Layered Architecture. O que significa isso? Significa arquitetura baseada em camadas, normalmente em português a gente fala. O que isso significa? Eu acredito que algum dia você já deve ter ouvido falar. Se você já ouviu, não tem problema, estamos nessa, estamos juntos. Então vamos lá. Arquitetura baseada em camadas. Significa que eu crio camadas separadas para a minha aplicação tá então vamos imaginar que eu crio um leir de presentation um leir de application e um leir de deita o que significa significa que no leir de presentation eu vou ter um sistema uma aplicação tá e essa aplicação ela pode escalar inclusive né então por isso que eu posso ter diversos web ali que você tá vendo aí nesse slide e o que que acontece nessa presente chão layer é um layer que vai focar no que em apresentação pode ser um front-end feito um react pode ser uma parada que o tá usando um framework que faz server-side rendering, não tem problema. O grande ponto que tem aqui nesse tipo de arquitetura é que essa parte de exibição é desacoplada da parte das outras áreas da aplicação. Da mesma forma que a gente tem a parte de aplicação. A aplicação vai rodar as regras de negócio, as orquestrações dos processos e tudo mais. E isso aí também são aplicações separadas. E elas podem escalar também. Ou seja, eu posso ter diversos sistemas rodando as minhas aplicações de uma forma desacoplada da minha área de apresentação. Então, essa é aquele back-end ali que vai resolver os problemas. E eu tenho aqui também um tier só referente à data. Então, eu posso ter os meus bancos de dados, eu posso ter os meus bancos de dados shardeados, né? Utilizando o sharding, ou eu posso, ele está trabalhando com réplicas, ou tem uma escrita, os outros fazem leitura e tudo mais. Mas o grande ponto aqui que você tem que entender é que esses três layers funcionam de forma independente. Mas, além de funcionar de forma independente, olha só que interessante, cada um tem as suas permissões de acesso diferente as suas regras de segurança diferente então por exemplo a parte de apresentação pode estar totalmente disponível para a internet mas a parte de aplicação e banco de dados ela fica pra dentro de uma sub rede que não tem acesso direto à internet talvez a gente possa trabalhar dessa forma então eu posso proteger isso de forma diferente da mesma forma a parte de banco de dados eu posso ter permissionamento de regras diferentes uma coisa bem comum aqui quando a gente está falando com esse tipo de arquitetura é que nós temos a comunicação tá a ponto a ponto o que significa significa que quando a parte de web precisa de alguma coisa ela bate na parte de aplicação e aplicação eventualmente ela precisa pegar algum dado a aplicação vai pegar esses dados do meu banco de dados aí o banco de dados provavelmente ele vai retornar isso aí pra mim aplicação e vai retornar isso pra parte de web quando o fluxo dessa aplicação tá funciona dessa forma normalmente a gente chama isso de a o acho que não ganha close ring o que significa significa que a minha parte de apresentação ela não vai bater direto lá no meu banco de dados. Ela sempre tem que passar pelos layers da minha aplicação. Legal? Porém, existe um outro approach que eventualmente pode fazer com que você dê um bypass numa camada e acesse uma camada diretamente. Então, por exemplo, aqui, quando a gente está trabalhando de forma open, significa que a minha apresentação eventualmente poderia consultar o meu banco de dados diretamente. Legal? Então, não significa que pelo fato da minha apresentação estar batendo o meu banco de dados diretamente, significa que ela está errada significa que é um approach que você está utilizando tá nessa arquitetura baseada em camadas tá, o que normalmente é mais recomendável, tá é que você siga todas as camadas ali da sua aplicação mas é importante você saber que isso acontece, tá? Pessoas, existem decisões que podem fazer com que você dê um bypass. Agora, o que que é o certo e o que que é o errado? Galera, não existe certo, não existe errado, tá? Se a gente for pensar mais em boas práticas, é legal você passar por todos os layers. Se a gente for pensar mais em boas práticas, é legal você passar por todos os layers. Mas aquela história, né? A diferença, muitas vezes, de um desenvolvedor mais sênior, de um desenvolvedor mais pleno, é que o desenvolvedor mais sênior, ele sabe o momento que ele pode tomar esses tipos de decisão, que façam coisas que normalmente muita gente considera errado, que façam coisas que normalmente muita gente considera errado, mas ele faz isso com a consciência, sabendo que ele está fazendo isso, sabendo os efeitos colaterais que isso acontece. Então vamos pensar daqui para frente que toda decisão de arquitetura que a gente tomar, se você não souber explicar o porquê você está tomando essa decisão significa que você ainda não está pronto para implementar essa esse tipo de arquitetura significa que você precisa um pouquinho mais de repertório e tá tudo bem você vai estudar mais vai ter mais contato com pessoas que fazem isso mas é importante você saber desse tipo de detalhe beleza então é isso aí a gente falou aqui sobre arquitetura em camadas em tia e em lei ou lei e arquiteto beleza então vamos lá pro nosso próximo design patrões