o Olá nesse vídeo eu vou falar um pouco para vocês sobre arquitetura condomínio Green design e. net Mais especificamente um resumo dos Tópicos que são abordados na consultoria que nós damos na algum drama sobre esse assunto e nos cursos que também ministramos com relação a esse tema e antes de começar de falar um pouco sobre mim meu nome é Rodrigo sem dinheiro trabalho na o lama e além disso há um longo tempo atrás eu escrevi artigos na revista a. net Magazine e o Web mobile e também tem um blog chamado Blaze of cold além desse canal no YouTube aonde eu posso alguns artigos sobre blazer e também dou aula na univem universidade de Marília no curso de pós-graduação sobre arquitetura de software é algo drama é uma empresa que foi fundada em 2008 e hoje ela é especializada na área de consultoria e desenvolvimento de software na plataforma do outlet com muita ênfase na arquitetura do meio de um design que a gente vai falar um pouco mais nesse vídeo aqui então o site da grama e o link né o do kit Hub onde a gente tem alguns exemplos e os cursos que a gente coloca aqui no canal é todo o código que é utilizado nesses cujos são colocados em repositórios desse dessa conta do Big Ramy e é aqui alguns cases de arquiteturas que nós ajudamos a desenvolver para essas plataformas essa que são algumas plataformas que ajudamos a desenvolver muito principalmente na área de arquitetura na na definição das arquiteturas de cada uma dessas plataformas aqui a primeira é uma plataforma para clínicas médicas a segunda um sistema financeiro terceiro aqui é um sistema de helpdesk e aqui uma plataforma para o mercado de produtores de leite mas então para a gente poder falar de arquitetura de software é importante a gente entender o papel do arquiteto de software né O que que essa pessoa no contexto do desenvolvimento de software que cargo é esse nem o quê quais são as atribuições de uma pessoa que se coloca como arquiteto de software dentro de uma equipe de desenvolvimento a definição quer dizer para você que o arquiteto é a pessoa que vai entender os requisitos do software que vai ser desenvolvido ou seja ele vai definir um escopo ele vai desenhar o mar quitetura vai elaborar todo um arquitetura para atender esses corpo e alguém ou uma equipe de desenvolvedores vai pegar esse desenho e vai implementar uma aplicação a implementar o software é isso é o desenho clássico é que existe deles lá da década de 80 90 quando a gente nem chamava de arquiteto de software chamava esse papel aqui essa pessoa de analista de sistemas Mas quem viveu Essa época sabe que esse é um modelo que não é não foi muito é não teve muito sucesso raramente o é isso aqui dava certo porque a gente sabe aqui na prática o desenvolvedor aquela pessoa que põe a mão na massa ela tem que ter é em contato direto com essa fase de levantamento de requisitos definição de escopo se não é ficam telefone sem fio e a gente acaba não conseguindo atender esses requisitos se a gente começa a dividir as coisas dessa forma Então hoje atualmente o papel do arquiteto de software não é necessariamente é Não tem necessariamente essa visão clássica de ver aqui a gente vai falar mais sobre isso adiante é mas se você quer saber você quer ver como que é um até de software a gente dá um exemplo aqui então se você quer a senhora que tá de Sopra Esse aqui vai ser o seu futuro você vai ser uma dessas pessoas aqui a boa a boa notícia é que você vai se você for bem-sucedido você vai ganhar bastante dinheiro é mas a gente tem que ser realista e entender que a visão que é é vendida do arquiteto de software é de que realmente é uma pessoa com superpoderes e que tá lá para resolver todos os problemas mas essa não é a realidade né Nem sempre é o arquiteto de software tem essa onda sem esse super poderes na vida real o arquiteto de software é geralmente é aquela pessoa que faz adivinhação baseada em dados não confiáveis fornecidos por pessoas de conhecimento questionável também conhecidos como Magos ouvir dentista uma outra definição aí que dispara a gente na realidade como que é um até de software diz que é como andar de bicicleta e certo que a bicicleta tá pegando fogo você tá pegando fogo a tudo pegando fogo e você tá no meio do inferno e eu conheço muitas equipes aonde é o arquiteto de software quando a coisa OBS fera quando as coisas estão realmente pegando fogo tá tudo no colo dele é ele que tem que resolver E aí ele tem que passar a noite em claro para aguentar e apagar os incêndios que acontece mas vamos falar sério agora é arquitetura de software ela vai estar numa intersecção daquilo de o que a gente tem que fazer é com a como vai ser feito então é uma mistura dos requisitos e do escopo do que vai ser desenvolvido com todas as tecnologias e as formas como a gente vai usar Essas tecnologias para desenvolver então o iPad Soccer trabalha nessa intersecção aqui nesse nesse miolo aqui que tá entre o que vai ser feito e como vai ser feito é um bom arquiteto ele ele vai colocar todos os requisitos de um cliente no bom plano de execução agora o ótimo arquiteto ele vai convencer o cliente que metade daquilo que Ele pediu não é necessário isso é uma realidade então a gente sabe que o arquiteto ele influencia diretamente no escopo do bom arquiteto influencia no escopo do que vai ser desenvolvido Por que muita gente muito cliente muito muita empresa vem com necessidades para desenvolvimento que nem sempre é é o foco daquilo que eles realmente precisam e o bom arquiteto né Um ótimo arquiteto conseguem enxergar isso e consegue direcionar o desenvolvimento da aplicação para o caminho que vai atender e vai realmente resolver os problemas daquela daquela que o software se propõe a semana é mas para mim para falar que eu entendi arquitetura e para saber eu quase tecnologias a gente como arquiteto de software by adotar é importante a gente tá é muito atento às tendências de mercado e aí eu gosto de analisar todo ano né sai um relatório da infantil que é dita as tendências na área de arquitetura de software é na área de desenvolvimento de software é para o mercado e a como é que a gente lê esse gráfico aqui nesse o resumo este relatório é aqui nesse primeiro nessa primeira coluna A gente tem as tecnologias que estão surgindo agora né esse aqui é um esse esse gráfico aqui representa é uma fotografia do que das tendências de do final de 2018 aí para 2019 então lá atrás e nem nada aqui 2018 nem faz tanto tempo assim é a gente tinha lá boa que tinha até P2 como tecnologia esqui que eram inovações que estavam surgindo tá é com o passar do tempo Essas tecnologias passam para essa segunda coluna que são os Fernandópolis o as pessoas que adotam uma tecnologia com antecedência tá aqui ainda também tá muito cedo assim a a tecnologia se consolidar no mercado Tá podemos dizer assim e ela vai ser com solidade depois que ela passa por esse Abismo então quando a gente quando quando uma determinada tendência uma determinada tecnologia pula O Abismo a gente já pode dizer que ela começa a ser estável E aí ela vai ter dois estágios ou ela a maioria que vai adotar aquela tecnologia Ou aquele free Word Por exemplo é com a e tem uma maioria que vai deixar para adotar isso depois um mais pra frente mas depois que aquilo realmente se consolidou tão no meu ponto de vista tudo aquilo que chega aqui na última coluna é aquilo que está muito bem consolidado no mercado Tá então você pode ver que aqui em 2019 de 2018 para 2019 as apis rest estavam aqui apontando como Lake Maggiore então a PS já era um padrão de mercado muito bem fundamentado e aqui no ele maior que a gente tinha os micro serviços que já era muito falaram é bdd e tdd bdd Abbey Road development tdd test driven development os dois são muito relacionados entre si é TD TD com os testes onde a mente e o bebê dele que é o foco é desse vídeo é o domingo e vem de valor e ele já apontava aqui em 2012 Oi 19 como um Framework é que já estava sendo adotado por boa parte da maioria que adota as coisas com antecedência mas que espera passar aí o abismo o de dele surgiu muito do que isso e a gente usa de de muito antes do que isso mas foi aqui que ele começou a ser adotado por uma grande quantidade de pessoas a gente tem eventual consistência ele não ter outros tópicos com aparecer aqui mas eu vou entrar muito em detalhes eu quero que vocês foquem muito aqui no domingo e vender Valente e no teste de ver algo nessas duas siglas aqui e para ver como que ela evolui aqui no decorrer do tempo ela que ajeitar 2018 para 19 em 2019 aí a gente você já pode vir aqui microsserviço do meio ele vem design Being driven design e teste de Buenos Aires estão aqui na em junto com o resto tá aí a toda essa tudo que você vê aqui como event eventu All events or se tudo isso é meio que relacionado e tem a ver como tem a ver muito comigo ou serviço e também condomínio - ai é que são recursos que você adota dentro só fica São que baseado em eventos então é uma forma bastante útil de você distribuir aplicações que vão precisar principalmente e vão estar no ambiente de nuvem que vão precisar de muito recurso e você tem que de alguma forma é utilizar isso o tudo que é relacionado ao evento tende a te levar para um caminho nesse sentido tá e aqui em 2020 a gente continua tendo os meias mesmo sem works aqui os mesmas tecnologias o as siglas aqui no leitor de ordem e um destaque que eu dou aqui é pro htt2 mgr PC que começa a despontar aqui no alemão York tá hummm hummm hummm 2001 um ano que estou gravando esse vídeo você pode ver que é o do meio da amizade continua aqui o tdd e o resto nem aparece mais aqui eu não Considero que são tecnologias aqui pararam de usar tá eu considero que ela já estão tão bem fundamentadas no mercado que é para esse tipo de relatório de mostra mais tendência eles acham interessante nem mostrar mais mas assim é óbvio que a o padrão rest ainda é um padrão de mercado para PIS mais utilizado o que tá aparecendo e que pagando uma fatia dessa área de ati né É web é o grp c que é um permite a lei é uma forma de gente criar Remote procedure Call apis baseadas results for Sidney craus mais e num padrão do ovo aí com e garante uma performance muito é relevante e batido de frente com a performance do próprio resto mas o que eu queria realmente era focar com vocês é o domain driven design veja que de 2018 Até agora ele é e continua sendo um tremor que é utilizado pela maioria dos das equipes de desenvolvimento No que diz respeito à arquitetura de software então se você pensa em ser um arquiteto de software você no meu ponto de vista tem obrigação de aprender do meio de organizarem Esse é um bom arquiteto do nosso na nossa visão é aquela pessoa que sabe escrever código legível e com testes Ou seja é um bom programador tá bom arquiteto ali ele tem que ser um bom programador não dá para não dá para ser arquiteto sem saber programa tá isso é fato e ele tem que saber ler o código dos outros das outras pessoas que compõem a equipe é essencial e ele tem que dominar as linguagens e as tecnologias que ele sugere para equipe adotar se você vai vai como arquiteto vai definir que o a sua equipe vai adotado além de design o arquiteto tem que conhecer e dominar o do amendoim - ai ai e ele tem que obviamente saber se comunicar com pessoas tá porque a gente sabe nem todos vão programador é muito bom em com pessoas e só que o arquiteto ele também como ele é uma pessoa que não vai só se comunicar com os desenvolvedores ele vai se comunicar com os clientes com os vários ele ele é ele continua fazendo essa interface ele tem que ser um bom comunicador aí com as pessoas e com programadores a obviamente e tem que ser adepto a um princípio é muito interessante antigo que é sujo muito muito tempo atrás que chamado quis que é uma sigla que diz o seguinte keep it Simple Stupid ou seja manter as coisas simples Por mais que você vai adotar uma série de freio works uma série de tecnologias quanto mais simples você conseguir manter a arquitetura da sua aplicação mais fácil vai ser para as pessoas lidaram com essa arquitetura mais fácil vai ser para agregar novas pessoas novos programadores na arquitetura e você vai ter algo que vai sobreviver mais ao tempo do que se fosse uma arquitetura muito complexa muito cheia de coisas que complicam a forma como o Sócrates envolvido Ah e por fim na nossa visão o bom arquiteto usa domingo driven design e e aqui uma citação do Martin fowler uma referência muito importante aí na área de arquitetura de software diz que qualquer tolo escreve código de um computador consegue entender bons programadores ou seja os arquitetos eles vão escrever códigos devem saber escrever código que humanos conseguem entender na verdade todo bom todo programador deveria deve né é prezar pela legibilidade do código que ele escreve eu ainda eu na minha visão eu entendo que é o arquiteto ele tem que conseguir fazer com que a sua equipe né com que a equipe que ele de programadores na qual ele pertence que essa equipe como um todo consiga fazer é consigo escrever código que todos conseguem entender e inclusive se reprogramadores que não fazem parte da equipe mas que que poderiam estar fazendo parte então você tem que manter uma legibilidade aí que transcende a sua equipe né e facilita com que outras pessoas venham a lidar com esse código no futuro o final grama a gente da Consultoria a gente pressa e serviços de consultoria e arquitetura e os tópicos que a gente usa né as tecnologias e frameworks que a gente é adota na nossa arquitetura são os seguintes a linguagem se Charme EA plataforma.
net a gente usa muito tdd test design o teste de vida valer o DDD obviamente a gentil adota é RM que é um objetivo relation to map é uma ferramenta que faz mapeamento objeto relacional que é quando a gente usa domain-driven design com um banco de dados relacional é imprescindível aí o uso de um orm1 e a gente usa aí ó cê que é uma sigla que é tem tem um tópico só para falar sobre isso é mais que tem a ver com injeção de dependência tem a ver com o baixo acoplamento entre as partes da nossa arquitetura tá então isso aqui é essencial também em arquitetura de software que a injeção de dependência e agora a gente é sempre até então a gente usa muito resto é ainda né a gente ainda adota o resto em muitas aplicações e muitas empresas que vem buscar o nosso serviço mas também estamos começando a adotar o grp c por conta da performance tá e a gente é recentemente também a gente tem adotado muito o blazer que é um Framework front-end da Microsoft que surgiu oficialmente no foi lançado oficialmente é a um ano um ano e pouco e agora a gente está adotando ele como parte aí do nosso leque de ferramentas ah e também quando é é necessário a gente usa as ferramentas do azure para fazer toda a parte de de põe toda a parte de colocar isso em produção então o azure ele cai como uma luva quando você tá na plataforma do outlet que é o nosso caso e como solução de nuvem ele aceita uma boa uma boa saída para nós e também dentro da nossa consultoria quando é necessário a gente faz uma introdução a. net Inclusive tem um curso nosso aqui publicado no aqui nesse canal do YouTube aonde a gente fala sobre dá uma introdução a dot net fala muito sobre esse Sharp sobre os conceitos básicos orientação a objetos e visual Studio é essencial tá um equipes que queiram adotar dot net como principal é Framework aí para o seu desenvolvimento os desenvolvedores precisam saber do outlet precisam saber se Sharp e precisam saber obviamente orientação objetos que é um ponto fundamental é então quando ela equipe não tem esse conhecimento a gente passa esse conhecimento através dos nossos cursos também o teste de driven development of test driven design é essencial é o que vai garantir a qualidade não é uma das Ferramentas que vai garantir que a gente vai escrever teste unitário para tudo aquilo que interessa e é o que vai nos dar uma segurança na com relação à qualidade do software e as entregas sucessivas que vão sendo feitas o tdd vai garantir que por mais que a gente faça entregas constantes o a qualidade na nossa aplicação vai se manter a mesma é domingo e vem design então aí o do meio de vem design ele é o tópico principal de quando ele fala em arquitetura de software então é o aonde a gente gasta mais tempo Oriente perde mais despende mais recurso para porque é isso aqui na verdade que vai fazer com que a sua aplicação tenha um tempo de vida maior se você escreve código né se você escreve uma aplicação usando do meu emprego em design como modelo de arquitetura você vai conseguir criar uma linguagem dentro do seu software que vai garantir que esses fazer vai sobreviver mais ao tempo tá alguns tópicos do nome dele e design são essenciais e que a gente sempre a dólar a borda são chá de carne os baldes de contas a tal da Rubi com tons longe entidades agregações e objetos de valor os repositórios e isso sim uma série de outros elementos da mãe dele design vão ser abordados aqui nessa nesse tópico e sobre o RN a gente tem duas alternativas a primeira é o Henry Rider leite que não é nativo da plataforma do outlet mas ele é o o RM para. net mais antigo que a gente tem e por consequência o mais completo Quando a gente tem que lidar com banco de dados relacionais então se você precisa fazer ajustes finos nesse mapeamento que é feito entre suas classes no seu modelo de objetos com um banco de dados relacional o ele vai permite tende a ser a melhor saída é principalmente se você não usa um banco de dados SQL server tá você usa um post Grimm embora com algum outro banco de dados relacional que não seja o da Microsoft SQL serve o Henry Rider Leite ele vai ser uma a opção tende a ser opção melhor para ir E aí O porém a gente tem o URL da Microsoft chamado de fêmea porque hoje tá muito maduro e que se você vai usar SQL server por exemplo ele é um excelente é opção eu deixo muito isso para equipe sentido é muitas equipes já vem com conhecimento em mente de freio micro ou ele vai doente e aí essa decisão a gente toma em conjunto a injeção de dependência como eu falei esse tópico é muito importante na arquitetura de software e ele vai garantir é uma um desacoplamento muito muito alto né um desacoplamento bom entre as partes da sua aplicação que também garante uma sobrevida do seu software garante que sofre vários sobreviver às tecnologias que você adotou então é o você por exemplo que vai garantir que eu vou escrever toda a lógica da minha aplicação é sem depender por exemplo do RN estão sem escolheu ele vai ver leite e lá na frente eu tiver que trocar pelo esses de freio aqui é o que vai permitir que eu faça isso com um mínimo de esforço possível mínimo de impacto tá então por isso que ele é importantíssimo nesse processo deve teto o rappi resto Então se a gente for desenvolver uma peia gente vai usar o asp.
net dá para isso é uma das tops mais simples e fáceis a gente tenha em toda a arquitetura o o o grp c que também é possível a gente desenvolver apis com br PC na plataforma do outlet surgiu também aí é mais ou menos um ano um ano e pouco mas já é uma tecnologia que tem tido bastante sucesso muita gente tem alcançado ótima super ótima performance com jrpc e dot net E aí para front-end é como eu disse anteriormente a gente tá usando tá adotando o blazer Tá mas o que é o blazer tão falar rapidamente o blazer é vocês devem quem tá no mercado de software deve conhecer o angular o react ouvirdes o blazer é um concorrente da Microsoft para esses frameworks que ele como um um foi morto de frente aí né como uma uma ferramenta para front-end ele também tá tudo aquilo que um monte gente precisa ter eu não vou entrar em detalhes Tá mas todos os todas as os recursos que um Framework front-end precisa né entende de diferencial o blazer vai ter aqui com a gente a diferença Aquele é um front-end que você vai escrever em si Sharp e não em Java Script tá e quem é o público-alvo do Blazer desenvolvedores asp. net pessoas que já conhecem se Sharp e.