e fala galera aqui na área no rio de hoje a gente vai falar sobre o famoso pdd Bora lá [Música] e o pessoal é um fato que se você tá estudando programação se você já tá talvez no livro de Junho alguma coisa do tipo se você já pesquisou bastante sobre qualidade de software sobre como escrever um bom código né como é que eu escrevi um bom software quais técnicas eu posso utilizar para melhorar o meu software ou para criar ele no aspecto bom assim bem robusto com bastante TS desde o começo talvez você já se
deparou com o termo test-driven development o famoso pdd é mesmo Então pessoal nesse vídeo aqui a gente decidiu então trazer um conteúdo para você que possa te trazer um pouquinho mais de clareza sobre o que de fato é o tdd Mas acima de tudo como é que você de fato utiliza ele né então assim como que eu posso de fato aplicar o tdd no meu projeto no meu trabalho seja nos estudos e de fato consegui tirar coisas boas dele né ou a gente vai explicar um pouquinho aqui sobre Quais são as etapas é importante para
você tá aplicando tdd a gente vai falar um pouquinho sobre pontos positivos pontos negativos e no final eu tenho certeza que você vai gostar bastante Beleza então bora lá o pessoal esse mais nada vamos falar um pouquinho sobre um problema tá Então imagina que buscavam projeto e você tá ali criando eu posso ir lá ele tá querendo funcionalidades entregando criando integran e de repente o teu chefe ali até que ele esteja lá quem for chega para você e fala assim pô mas nosso projeto não tem um teste né como é que a gente garante que
de fato aquilo que eu estou entregando de funcionalidade para o meu usuário de fato tá funcionando e se concorda comigo que é uma pergunta muito lógica né mas assim como é que eu garanto que de fato funciona o que é que eu fiz bom para ajudar a gente com isso nós temos exatamente os testes né mas como é que o garanto assim que tudo aquilo que eu estou escrevendo no meu código os meus pés estão pegando O que é verdade pessoal aqui isso é muito complicado de você fazer numa abordagem onde você primeiro escreve o
comportamento e depois escreve o teste porque porque é muito comum de você esquecer de colocar o teste ou de você não escrever testes para todos os casos possíveis enfim os exemplos vão infinito na mesma mas o ponto aqui então como é que eu posso utilizar essa tal técnica de tdd para me ajudar com isso aí então dado que a gente tem esse problema que é você ter uma confiança maior nos testes você tá escrevendo né você de fato garantir que a sua entrega Tá ok tudo mais o TV dele ele apresenta um comportamento muito legal
bom para a gente entender um pouquinho melhor olha essa imagem aqui como você pode ver ela tem três momentos tá onde a gente sempre começa pelo vermelhinho depois a gente passa pelo verde e depois do azul e isso é chamado de red Green Factor é a ideia é que é o seguinte então vamos começar que eu tô um projeto e eu preciso colocar uma nova funcionalidade vamos dizer que o meu projeto ele é uma calculadora e agora eu preciso colocar a ideia essa lado de calcular a raiz quadrada por exemplo dentro do meu projeto então
no projeto Ele tem ele solo multiplicação divisão bastante coisa mas ele não tem ainda cálculo de raiz quadrada e eu sou a pessoa desenvolvedora responsável por implementar essa sítio Bom se eu quiser aplicar até dele o que que eu vou fazer pessoal eu vou começar então pela parte vermelhinha que o que ela quer dizer ela quer dizer que eu vou escrever um teste que vai falhar Ué como assim né bom vamos pensar um pouquinho a ideia é existe a funcionalidade de calcular raiz quadrada no projeto não certo é sério é a minha tarefa que eu
vou fazer então o que eu vou fazer eu vou escrever um teste fingindo que existe né Só que sim pode ser que não exista um método que eu tô chamando né se não tem nada então não se calhar Talvez ele nem bild né então eu vou escrever um teste como se eu como se existisse a funcionalidade né então eu falar eu vou passar esse valor eu quero que você calcule a raiz quadrada e o valor esperado de retorno é tanto né então eu vou escrever um teste olhando para esse comportamento cálculo de raiz quadrada né
E quando eu vou dar então no projeto quando eu mandar rodar meu teste ele vai falhar não dá certo porque pô existe o método né não tem raiva de negócio não tem nada amigo bom mas isso não estava muito importante tá porque você já vai entender quando a gente chega agora na etapa verdinha é aqui que mora o lugar porque como meu teste falhou antes de eu estou vendo que o meu teste falhou e isso é um fator quase que psicológico muito importante para os dedos eu vou ir lá agora e eu vou implementar somente
o código necessário para que o meu teste passa E por que não consigo vamos lá eu explico então eu não falei que eu queria calcular raiz quadrada se concordam comigo que se eu começar pela funcionalidade eu vou fazer ela vou fazer várias verificações para Não calcular raiz quadrada de falar de número que ele pode ou não ser um calcular a escala de uma letra O coisa do tipo né quando eu vou pela abordagem no tdd e eu escrevo o teste ele vai falhar aí eu vou lá e escrever um mínimo de código para que o
meu teste passa eu estou propositalmente abrindo algumas brechas no meu quarto né só que isso tem um fator interessante que você já vai entender então eu vou lá no meu código e vou escrever o código não é necessário para calcular uma raiz quadrada Só que até então eu não tô verificando praticamente nada eu não tô tratando essa nas específicos eu não tô fazendo nada só tô calculando raiz quadrada talvez usando você Sharp labiotech mexe alguma coisa do tipo E aí beleza Assim é o mínimo de código para que o meu teste passa quando eu rodar
no teste agora ele vai passar certo mas de repente se eu colocar um número diferente ali se eu colocar um outro tipo de valor pode ser que ele quebre e é justamente aí que entra a importância da nossa terceira etapa que é o reflector tá porque Teu Sol porque uma vez que eu tenho a funcionalidade a princípio funcionando eu posso voltar lá e refatorar o código né E aí conseguiu melhorar alguns aspectos só que perceba que esse de Factor pode ser ainda que eu não coloco e todas as tratativas que eu preciso então quando é
que eu vou colocar eu vou fazer um outro teste que vai de fato verificar por esse caso separado Então vamos supor que eu não queira permitir por qualquer motivo que seja que seja possível calcular por exemplo raiz quadrada de número negativo e lá no meu software não se calcula raiz quadrada de número negativo e Eu precisaria fazer uma verificação certo mas eu não vou fazer ainda porque porque eu não tenho um teste justificando esse código e esse pessoal eu acho que é o ponto concordo te de você não vai escrever nenhum código que não tenha
um teste justificando a presença naquele código ali nem para você validar coisas nem para nada né então pô eu tenho direito de ficar aqui esse o número não é isso né que o outro não é zero né aquela coisa toda mas você só vai fazer isso quando um teste exigir a presença desse código legal que eu ganho com isso né bom você ganha uma altíssima cobertura de teste e de forma muito simplista certo porque se todo o código que existe no meu projeto e eu estou tendo um teste e classifica ele eu tenho uma cobertura
de teste autismo não é mesmo legal mas muito mais do que isso até porque cobertura de teste talvez não diz muita coisa você tem confiança na sua entrega por quê Porque todas as features e todas as variações ali nesse cenário das suas features ela vai estar no teu no teu teste lá e se por um acaso houver uma avaliação que não está no seu teste você vai lá vai escrever um teste vai fazer a implementação desse Fix e Beleza então você cria uma cultura de qualidade muito interessante do sol e eu acho que isso na
minha humilde opinião é o ponto mais interessante do DVD essa cultura que você queria que você pensar primeiro na qualidade então é uma ideia invertida né o pessoal até fala que é um uma ideia the outside ainda então eu tô pensando de fora para dentro ao invés de dentro para fora né então eu não sei o que tem no meu código e para depois escrever o teste não eu sei o que meu teste precisa e agora eu escrevo um código e isso faz toda a diferença nas o outro ponto legal também pessoal da gente falar
que sobre o de dele é que ele ressalta também a importância dos Testes como tudo né então por mais que o CD de ele acabe trazendo a presença mais forte de testes de unidade de teste de integração ele também vai provocar o seu time a refletir um pouquinho sobre a importância de teste dia sente teste de carga de performance teste de usabilidade porque você vai querer essa cultura de qualidade né Então as pessoas vão começar a se preocupar muito mais qualidade do seu software e aí coisas como nunca comi falar né assim a performance por
certo Não a minha pe guenta tanto as requisições assim será que é o meu front-end tá respondendo dentro do tempo que deveria né Será que minha tela na Cecílio será que eu consigo enfim testar todos os aspectos E você começa agir e sem quitação no seu time Eu acho que isso não tem preço tá isso é muito bom você consegue girar mais qualidade não te entrega você gera engajamento no seu time você e leva o conhecimento das pessoas ao seu redor e enfim todo mundo sai muito feliz mesmo o pessoal A ideia é isso e
o ponto mais importante é ele é totalmente agnóstico de tecnologia ou inferior tá então assim você não precisa é utilizar uma tecnologia honrem o específico para aplicar o 3D por quê Porque ele é um conceito né Ele é um conhecido uma ideia então você pode aplicar ele em qualquer linguagem em qualquer tecnologia e arrisco dizer que talvez até qualquer projeto tá depende muito mais da tua vontade da vontade do seu time das lideranças né Porque é importante pensar que talvez o prazo Pode ser que de levar a demora um pouquinho mais porque no começo o
pessoal vai estar aprendendo vai estar tendo esse processo de Só de pensar primeiro no teste depois a funcionalidade talvez tem aí uma certa demanda também para que as pessoas Piola o PMs do teu projeto ajudem na escrita do card para facilitar o entendimento do deve em como ele vai testar então perceba que tu é todo um ecossistema que vai ser criando né então eu vou ter uma provocação para as pessoas que estão criando meu Card aqui para que ele tem uma clareza maior dessa forma eu estou lendo consigo entender melhor os testes que eu preciso
escrever e por tabela a minha features Eye maravilhosa Beleza o pessoal a ideia Esse vídeo é esse trazer um pouquinho mais de clareza para você sobre o que de fato é assim esse essa ideia de de nessas três letrinhas mágicas aí é onde que você tenha gostado se você gostou do vídeo já deixa o like aqui né já se inscreve no canal Se você não for inscrito Ative o Sininho o Rodrigo pede o pessoal ativar o Sininho Rodrigo a e é muito importante do Sol que você Ative o Sininho se não YouTube não te avisa
né a gente tá sempre soltando aqui dois vídeos por semana aí praticamente a ideia é sempre te levar muito conteúdo relevante que pode transformar então a tua carreira pode talvez se motivar vim para a área da promoção enfim quanto sempre com a gente também te convido a não seguir nas outras redes sociais né a gente tá presente a gente toque no Facebook no Instagram sempre tentando ter uma proximidade maior contigo e te levar um conteúdo relevante com bom humor daquele jeito que a gente gosta beleza eram muito que você tenha gostado desse vídeo Um abraço
e até o próximo vídeo E aí