Agora a gente vai debater rapidamente algo que é importante, mas muita gente acaba tendo decisões acaloradas sobre isso. Que é o seguinte, qual que é a diferença de arquitetura e design de software? E eu vou dizer que não existe uma resposta exata para isso, porque cada pessoa tem uma visão de mundo. uma resposta exata para isso, porque cada pessoa tem uma visão de mundo e tem pessoas muito influentes em comunidades, em livros, em profissionais fantásticos que acabam falando coisas um pouco diferentes. Eu vou trazer aqui algumas visões e eu vou falar o que eu acho. Vamos lá. Arquitetura versus design. Toda vez que eu falar em arquitetura, eu estou falando num escopo global de mais alto nível. Eu vou falar que aquele sistema vai utilizar cache? Vai. Agora, como esse cache vai ser implementado, dos detalhes dele, não necessariamente é uma decisão arquitetural, é uma decisão mais de design. Ou seja, o design decide pontos em escopos mais locais, enquanto a arquitetura olha as coisas de forma mais global. Ah, Wesley, vamos falar de solid? Normalmente, solid, por exemplo, é algo muito mais voltado a design do que necessariamente de arquitetura. Quando a gente está falando em cleaniteto na minha opinião a gente está falando muito mais design do que cliente tétil mas a eu tive a oportunidade por exemplo de falar com o bob robert martin sobre qual a opinião dele de diferenças entre arquitetura design e eu falo daqui a pouquinho aqui pra vocês tá a o elemar ele tem uma definição interessante sobre isso tá a e depois logo em seguida eu vou falar alguns pontos importantes aqui pra você também o que ele fala atividades relacionadas à arquitetura de software são sempre de design entretanto nem toda atividade de design é sobre a arquitetura o objetivo primário da arquitetura de software é garantir que os atributos de qualidade, restrições de alto nível e objetivos de negócio sejam atendidos pelo sistema. Qualquer decisão de design que não tenha relação com esse objetivo não é arquitetural. Todas as decisões de design para um componente que não sejam visíveis fora dele, geralmente também não são. O que ele está querendo dizer aqui é o seguinte que normalmente quando está falando de arquitetura a gente está falando de design mas quando está falando de design não necessariamente está falando de arquitetura a gente pode estar mas não necessariamente a gente está vamos dar um exemplo a como eu vou criar aquela interface para eu conseguir melhorar a estabilidade do domínio do meu projeto? Muitas vezes isso é design. O cara que está olhando a arquitetura de forma global e ele não está vendo esse componente, ou a ideia de como isso está sendo tomada, se ele não está vendo isso, significa que essa decisão é muito mais design do que de arquitetura. Agora, eu vou fazer inclusive esse cache, vou criar a invalidação desse cache da seguinte forma. Opa, isso aí tem uma visão mais de alto nível, porque muda completamente como o sistema vai se comportar, vai mudar o quanto eu vou ter que gastar com memória e etc opa é uma decisão mais arquitetural entende então se de fora você não conseguir enxergar aquilo que está sendo criado internamente no software significa que normalmente aquilo é uma uma decisão muito mais sobre design e não necessariamente sobre arquitetura tá então essa é uma visão do elemar eu acho ela bem interessante tá a existe um livro também é um livro bem interessante chama software architecture in practice tá e o que ele fala de cara? Ele fala que arquitetura é design, mas design não é arquitetura. Olha só que interessante. O Uncle Bob, o que ele fala? Ele fala também que arquitetura e design são a mesma coisa. fala também que arquitetura e design são a mesma coisa é muito difícil você conseguir trazer traçar o preto no branco do que a arquitetura do que é design então de forma geral quando você vê o roberto martin falando em arquitetura ele está ao mesmo tempo falando em design muitas vezes ele está falando de design mas ele fala que as decisões de design afetam as decisões arquiteturais. Então, como uma coisa afeta a outra, ele muitas vezes coloca tudo no mesmo balaio. É um posicionamento dele, eu acho interessante, porque é muito difícil realmente você está preto no branco o elemário do jeito que ele colocou aqui ele tenta classificar um pouco mais o uncle bob já joga mais o mesmo balaio tá a minha opinião é que a arquitetura é design mais design não necessariamente é arquitetura mas não é isso que vai mudar a forma de como você vai trabalhar no dia a dia diretamente mas você tendo um pouco mais essa clareza você consegue pensar poxa nesse momento estou preocupado com o escopo local aqui do software isso aqui que eu estou fazendo é importante mas de uma visão macro é apenas um detalhe agora como que as coisas que eu faço, focadas mais em arquitetura, elas têm um impacto muito maior no todo. Entende? Então, você ter essa clareza vai te ajudar, inclusive, a ver como que você vai ter desforço, muitas vezes, em determinadas tarefas, porque tem tarefas que afetam muito mais a arquitetura do sistema como um todo do que necessariamente apenas um escopo local dentro de uma classe, numa parte de um código. Entendeu? Então, era basicamente isso que eu queria falar sobre arquitetura versus design aqui para vocês.