Bom pessoal, e agora a gente vai falar sobre estrutura de alocação. Pode parecer um nome um pouco estranho, mas você vai entender que vai fazer sentido. Até agora a gente olhou como os componentes se conectam através de conectores. A gente conseguiu olhar como que os módulos se falam e as suas dependências e o que você faz para diminuir acoplamento. Mas, tanto a estrutura de componentes e conectores quanto a estrutura de módulos, elas precisam estar, executar em algum lugar. Legal? Então, a estrutura de alocação é a relação das estruturas, componente, conector e módulos e como elas se conectam com não-software. O que significa? Quando eu vou criar uma estrutura de alocação, eu tenho que pensar, para rodar isso aqui que eu preciso, qual tipo de máquina? Qual tipo de computação? Eu vou precisar ter uma máquina que vai gravar para caramba? Eu vou ter uma máquina que vai precisar ter muita memória? Eu vou ter que entender o tipo de computação. Eu vou ter que ter os ambientes. Como eu vou fazer com os ambientes que eu vou trabalhar para conseguir trabalhar? Desde o ambiente de teste, como esse processo vai funcionar? Então, se você perceber, a estrutura de alocação dá suporte para a estrutura de software que você está criando porque sem ela você não tem onde realizar as ações que você está querendo né então como eu vou testar legal eu tenho estes automatizados tenho mas eu vou ter equipes né de de que há por exemplo né como que isso aí vai ser executado aonde os testes vão ser executados e qual o momento como que vai funcionar como que você vai realizar o build dessa aplicação para você é entregar legal como que você vai fazer o deployment dessa aplicação qual o tipo de disco ao tipo de banco de dados quais são os tipos de cash como que que você consegue evitar lock-in, como que você vai utilizar o seu cloud provider, quais os cloud providers, prós, contras, como que eu vou pensar no que gasta mais, no que não gasta mais, no que é viável para o meu projeto. Então, olha só que interessante, galera. Quando você vê que as coisas se conectam, quando dá um zoom entende esses módulos você vai ter que entender como que essas coisas vão se encaixar para rodar em algum lugar e esse rodar em algum lugar significa no final do dia tá como que essas coisas elas vão ser no final do dia de ploiadas na como o dep deployment vai acontecer? Como que as coisas vão funcionar em produção? Como que os meus ambientes vão ser criados para facilitar o meu dia a dia? Então, quando você consegue olhar por essas visões, a sua arquitetura, você consegue ter uma visão muito mais clara do que você começar um projeto e falar, por onde que eu começo? Reflete aí comigo nesse momento. Se der um desafio para você, você vai pensar, por onde você vai começar? Perceba, você tem que ter um método de por onde começar significa que você vai ter que ter pontos de visão diferentes para que você comece a estruturar o seu software de forma diferente. E fazer isso que a gente está falando aqui é o que vai ajudar minimamente você ter um método de olhar para o seu software. E lembrando, nesse caso aqui, a gente tem muito a aprender com código, mas indiretamente você olha um pouco, tem um pouco de arquitetura de solução. olha um pouco tem um pouco de arquitetura de solução é aquela história galera design e arquitetura de software arquitetura de solução e arquitetura de software sempre há uma zona cinzento o arquiteto de software ele tem que saber navegar entre essas zonas cinzentas ele tem que entender como que o software vai rodar e aonde o que vai rodar e qual a performance que esse software ele vai ter e aonde que vai rodar e qual a performance que esse software ele vai ter então de uma forma ou de outra estrutura de alocação um ponto importante legal é isso aí então meu povo