as boas práticas de programação i [Música] Olá eu sou Paulo Silveira tô aqui com Fabio Akita muito bem obrigado de novo ser convidado à espera que a gente conseguiu uma boa discussão antes de programação mesmo aqui tá acho que aparece muito isso a gente ouve falar Desde quando a gente começa a programar que eu acho até que atrapalha quem tá aprendendo que é tanta informação mas Especialmente quando a gente vai ganhar do Senhor idade Sempre tem alguém do nosso lado quer trazer uma boa prática de programação Então seja nível de código seja nível de trabalhar
em equipe e várias formas É eu sei que isso também tem muita opinião em cima e cada um tem sua preferência tem sua escola de onde você veio ou até de que comunidades que você respirou e se inspirou e eu queria saber de você que que você considera para as pessoas que hoje programam boas práticas que elas deviam estar olhando e que deveria ser até primordial quando se escreve código Isso é isso é uma prova que aparece sempre quais são as melhores práticas quais boas práticas Eu recomendo e muita gente faz bem especial o que
que o arquiteta recomenda de práticas oh mas boas práticas justamente chamou boas para te Azul mudando ao longo do tempo eu quero boas práticas nos anos 80 90 já diferente de do Século 21 Então as práticas a gente vai aprendendo ao longo do trabalho por isso que é importante não tá muito tempo para quem é iniciante ele não tem muito essa noção porque nenhum livro ler um livro de boas práticas você não vai entender porque você tem que aplicar sido boas práticas quando você me vê iniciante não é toda vez que você ler um livro
de um curso qualquer coisa do tipo o código que é explicado nos cursos nos livros ele de uma forma didática acho que a prioridade é ser didático ser fácil de ensinar e entender Está correto porque não adianta você fazer o código mais otimizado porque aí vai ser um código de complexo difícil de entender então aí o aluno por enquanto ele só entende o código de datico mas no mundo real você precisa às vezes do código que é mais legível ou do código mais performático ou do código tem mais segurança e cada e ele vai ter
uma forma diferente de escrever então a forma de você aprenderá boas práticas já tá sempre do lado de outras pessoas mais experientes você tá sempre conseguindo ter feedback do seu próprio código da partir da sua equipe para você olhar para o que você fez por quê que tá atrapalhando as outras pessoas depois que você acha assim código rodou então funciona então eu não vou fazer mais nada não não é só isso o seu código ele não termina não quando você dá contra o Oeste e salva e já era não a próxima pessoa vai pegar só
a nossa código eu não consigo entender esse código tem muito buraco de segurança ou tem gargalos e performance brutais então o código sempre vai e volta é muito raro um código que você começa a planejar e escreve exatamente com o planejou e a partir do momento que terminou nunca mais México Eu costumo dizer que se você fez um código assim prova mexer ninguém usa esse código ou talvez da década que antecipou bem na década de 80 e 90 onde as pessoas eram praticamente Dona o projeto inteiro né tinha muita equipe de uma pessoa Hoje em
Dia Que projeto tem só uma pessoa é muito raro então tem essa isso que você falou de ir e voltar e outras pessoas Coloca a mão com outras visões e outras preocupações e exatamente eu fiz um vídeo recente falando sobre livros que eu recomendo eu começo a tocar um pouco nesse assunto agora pensando sobre a carreira de programador a muita gente não entendi porque que a gente ou tem que planejar demais ou não tem que planejar o código e aí da onde que vem esses moções tem que entender o momento de cada de cada época
histórica por exemplo Hoje em dia a gente fala bastante sobre refatorar o código fazer código Limpo fazer código contest então é prática mais aceita agora no na década de 2020 para cá que várias últimos dez anos vamos dizer assim e você vai escrever o código você vai adicionar um teste esse código vai executar vai refatorar para melhorar a legibilidade a modularidade a organização até que fique no ES é aceitável para ir para frente antigamente esse processo não é tão fácil porque Imagine que você tá na década de 70 você tá com bem frame numa empresa
homem frame daquela época ele é mais fraco do que um Apple watch hoje em dia só que nesse mesmo bem frente vai ter 20 pessoas trabalhando ao mesmo tempo como terminais remotos numa conexão de rede ultra-lenta não tinha internet ainda então tinha rede rápida Então você tinha que planejar para na primeira tentativa de aqui funcionar porque você não tinha como ficar indo e voltando indo e voltando indo e voltando toda vez porque é muito lento pior ainda um pouco antes cartão perfurado uma vez que você perfurou o cartão tá perfurado imagina uma caixa de sapato
de cartões eu tenho que refatorar aquelas cartões eu tenho que ficar tirando o cartão a colocando o Atlético deu não tem como fazer mas a partir da década de 90 principalmente a gente começa a ter Pentium começa a ter megabytes de Ram na no final do o segundo Gigabyte de Ram começa a ser possível ter o projeto inteiro da empresa numa máquina só antigamente não tinha como tinha que ser remoto tinha que ser compartilhado em kilobytes de Hum então hoje em dia as técnicas que ele chama de boas práticas vieram se adaptando a esse fluxo
de trabalho então quando você só tinha um corpo com um giga de Ram você não tinha muito como rodar muita coisa trajeto os pequenininhos vou fazer um projeto no Visual Basic no Delphi para controlar estoque contabilidade da vai rodar na sua máquina mas a hora que tem que rodar um RP inteiro ou seja todas as áreas da empresa contabilidade recursos humanos estoque produção não olha na sua máquina sozinha mais isso no começo do século 21 hoje não a gente tava comentando agora e saiu macbooks dm1 promax um 32 Kors com64gb agora eu consigo rodar uma
infraestrutura inteira hoje em diante sobe 10 dockers de micro serviço e eu consigo rodar então obviamente a práticas mudam para refletir isso então peças boas práticas tem que levar em consideração não só o meu ambiente como desenvolvedor eu sou iniciante eu ainda não comecei a trabalhar essa obra eu não vou ter o novo em um e-mail só eu voltei ali o meu Core i5 de cinco anos atrás com 8Gb de Ram no máximo Então eu consigo rodar alguma dois microsserviços apanhando um pouco então a minha prática vai refletir esse ambiente onde eu tô trabalhando é
diferente se eu tiver com uma máquina mais potente não as práticas vão mudando à medida que o poder de processamento muda o tamanho das equipes muda e muda a forma de comunicar e de interagir de cada a cada equipe de cada pessoa por isso que varia muito de acordo com Onde você trabalha em qual o tipo de projeto por isso é importante tem muitas experiências práticas é e acho que fica bem claro não é porque até muda essa necessidade do da colaboração então se você tá trabalhando o foco Clínico serviço talvez para você não seja
tão importante tal prática o o escrever o código de determinada maneira né E quem é iniciante acho que também acho que vale reforçar não ficar totalmente preocupado porque senão Isso vai atrapalhar o aprendizado que é tanta gente querendo falar para você tomar cuidado com a segurança com design pattern qual otimização e etc aqui no final você nunca vai conseguir colocar o site da padaria no ar que era só um site na padaria para você aprender ou para você dar mais um passo na carreira Então acho que tem que tem que tomar muito cuidado eu acho
que um que é importante aqui tá é o da otimização que você colocou importante eu queria discutir porque vem muita gente fala não não escreva o código assim porque esse vai ser mais lento e tal e hoje diferente lá da década de 80 o dia antes onde processamento era algo tão caro hoje não é e eu que também né venha com background acadêmico fica olhando não pera aí a pessoa escrever aqui não tava para fazer muito mais rápido mas vai impactar alguma coisa tu não vai não é a gente está querendo utilizar um código que
ele vai rodar em 001 segunda 1001 mil vezes mais rápido mas vai fazer zero diferenças na vida ou até nos custos só que a gente não percebe porque esse recurso tão abundante que a gente fica ancorado na boa prática do passado eu esquece de hoje a boa prática agora talvez seria deixar mais legível porque outra pessoa vai botar a mão nesse código e até para explicar alguma coisa vale a pena só é o seguinte até dar um passo atrás como software é uma coisa muito abstrata é software diferente de raiva depois que chama a árvore
última soft o hard ele é que nem essa mesa ele tem atributos físicos qualquer objeto nessa sala tem os mesmos atributos a gravidade vai ser a mesma para ela as forças da física vão ser as mesmas Então o meu ponto de referência e o seu ponto de referência para essa mesa são as mesmas a gente vai sentir o mesmo peso eu mandar você descrever essa mês é a minha descrição e a sua vão ser muito parecidas o softer eu não consigo ver eu não consigo tocar eu não consigo nenhum dos cinco sentidos que a gente
tem é útil para descrever um software porque ele não tem peso não tem cor não tem cheiro é absolutamente nada então a forma como você vai descrever um sofre como eu vou descrever um só ter vão ser completamente diferentes e vão se basear muito no meu conhecimento prévio no que que eu já usei eu não usei isso dito a gente usa muito a metáfora muita metáfora a histórias para tentar descrever o que eu tenho na cabeça sobre o sol então eu por exemplo no meu canal e vira e mexe eu falo sobre eu uso a
metáfora de chefe de cozinha como se diz o aumento só que você parecido com o processo de planejar um prato para entregar um restaurante que é diferente de você fazer no seu fim de semana em casa ou então com carros que eu gosto bastante do assunto então a gente usa essas metáforas o problema todo sobre o negócio de otimização que estava falando e esse é Uma das uma das qualidades de um software que é mais fácil da gente discutir ele é mais rápido ele é mais devagar eu consigo escala mais ou escala menos então eu
costumo dizer que programador tem a síndrome de colecionador de Pokémon então ele fica sempre olhando assim ah vamos ver se o número mais alto sobre é mais baixo esse meu esse meu é mais forte os isso é mais rápido então como ele não tem ainda muita experiência prática de Quais características afetam o meu dia a dia com Quais características afetam a minha equipe quais afetam os meus clientes a única característica é mais ou menos palpável nesse mundo abstrato é o número de performance então eu vou olhar o meu o meu javscript já mais rápido que
o seu pai então ou então não na verdade o Java porque é compilado é mais rápido que os dois ah não mas na verdade vocês tão tudo errado que se antigo eu tô no meu Clown gerar mais cole Julia já vem tá aparecendo então a discussão é muito nesse sentido de qual é mais rápido é rápido não há a única característica e nem é a melhor por exemplo o Como você mesmo disse o poder para o poder de processamento hoje aumentou bastante isso não é hoje já faz últimos 20 anos mas se você comparar uma
um notebook de hoje com notebook de 20 anos atrás 20 anos atrás era um Giga hertz com um Gigabyte ou a gente está falando de 5 Giga hertz em 16 cores x16 com 32 GB ou 64 sendo que antigamente a HD mecânico e hoje é um nvm que é céu cem vezes mais rápido então a gente tá numa diferença de performance muito grande por outro lado um programador do ano 2000 e programador e2021 não triplicaram de performance não multiplicaram por 10 a performance então ele ele não produz necessariamente cem vezes mais código do que se
produzir 20 anos atrás nesse sentido é mais às vezes o custo B a usar mais processamento em vez de tentar gastar tempo fazendo o melhor código utilizado que não vai ser dez vezes mais rápido costuma valer a pena e é por isso que a gente ainda Escolhe os a linguagens como PHP java script Ruby Python que são linguagem interpretados ou seja Teoricamente são mais lentas do que um Java um ser Um Ser Sharp que são compiladas justamente porque a produtividade vale mais do que a economia de performance que eu teria Então hoje em dia compensa
mais eu usar uma linguagem que não necessariamente a mais rápida porque a produtividade vai ser melhor em vez de eu tentar economizar in performance que não vai ser um ganho tão grande então isso isso não consigo me leva o gancho das boas práticas estava falando antes as boas práticas ele não não necessariamente é para performance na verdade ela performance a secundário a prioridade das boas práticas é justamente aumentar a produtividade que é claro que a hora do desenvolvedor Então se o código é sujo mal feito mas roda super rápido isso tem um valor só que
se para modificar esse código eu preciso de 10 vezes um desenvolvedor já não compensou esse valor então o ideal é que eu tenha talvez menos performance mas eu vou ter cinco vezes a produtividade toda nova feature que eu pode chorando Então esse esse é o balanço econômico do ponto de vista econômico que faz de frente ao as boas práticas não são feitas para o computador vou dar mais rápido eu vou dar melhor ela é feito para outro programador vou dar melhor então o código-fonte não é feito pro computador o computador não vê o seu código
por um computador tanto faz se você fez código Limpo fez código sujo modularizado ou não mudou alisado no final tudo isso vai virar um binário usam que o compilador ou o interpretador vão modificar então no final que na máquina não tem nada a ver e escreveu então a estética a forma a estrutura que você escreveu o código-fonte é necessariamente para outro programador incluindo o você de amanhã porque eu vou ser de amanhã você acha que vai lembrar com o seu código funciona você não vai lembrar como seu código funciona daqui a dois dias você vai
olhar para o seu código não tô nem fala que há dois anos a cada dois dias você vai olhar para o seu código você fez dois dias atrás que diabos que eu quis dizer com esse if macarrônico aqui eu não lembro mais o que que é esse número 919 que eu coloquei eram era constante do que E você vai ficar nessa nesse momento você começa transitam te pergunto e você vai foi tentar te ver é só produtividade indo para o ralo são horas desperdiçado aquela hora que você economizou por causa de 0.1 por cento de
performance agora você vai gastar em uma semana tentando lembrar o que diabos Você quis dizer imagina um outro programador Imagina você tendo que dar manutenção no código sujo o armador então isso vai se somando numa organização que tem 10 50 100 programadores códigos sujo desse jeito onde um erro afeta códigos em camadas para não sei aonde isso vira um exponencialmente um problema e custa muito caro e todo mundo medo de mexer no código não é aquele Ah não lá eu não vou mexer porque pode quebrar alguma coisa exatamente Então eu acho que o trade-off que
foi só tem que lembrar o seguinte você não quer a linguagem mais rápida necessariamente porque tá ser rápido só se bem rápido eu preciso de menos Abstrações eu preciso de tirar camadas que vão aumentar instruções do meu processamento por outro lado para um programador entender e precisa de mais Abstrações para não ficar tão no metal eu não sou um computador eu não pensa igual um computador eu preciso ter contexto eu preciso entender porque cada coisa tem esse nome os nomes fazem diferença então a coisa mais difícil inclusive no mundo de programação e dá nome para
as coisas a falar sobre isso mais tarde mas o a ideia do código limpo não é só porque nova frescura não é a você tá falando que uma função só pode ter cinco linhas 10 linhas não tem o número exato ele tem que ser curto suficiente para executar uma única tarefa uma única atividade e não misturar coisas na mesma no mesmo código então não adianta ser cinco linhas mas é cinco linhas linguiça também não adianta Às vezes tenho 20 linhas mas ela é muito bem coisa então Depende do que você tá fazendo esse depende é
um problema porque eu não consigo especificar para o iniciante a isso esse esse método de cinco linhas tá uma porcaria mas esse outro médico cinco linhas Tá bom mas os dois têm cinco linhas Então não é só porque tem cinco linhas ou 10 linhas ele tem que você tem que avaliar todo o contexto do seu programa se aquela sua classe ele sólida com um contexto se eu não tô misturando contexto se eu não tô atravessando fronteiras que eu não devia tô a sessão e os externos que não deveria com as necessárias aqui não tem nada
que me impede de acessar o serviço externo mas não não é a responsabilidade dessa classe talvez eu tenho que fazer uma segunda classe para seu o adaptador entre elas por exemplo é da igual nascendo esses nomes a barreira de corrupção adaptador aprox his commands e assim por diante a todos os paternes que a gente vai vendo Então é interessante né porque para ir cair no que é legal porque a gente tá conversando aqui e quem está assistindo a gente tá falando sem aqui tá por favor me fala qual que é a boa prática o seguinte
a partir daí a gente deriva não é mesmo então você vai procurar por pa pênis quando eles vão te ajudar a te trazer mais Abstrações e facilitar a manutenção no futuro esse aqui não porque você aprender um pato não deixa eu ver onde um filho ele aqui que aí começa a ficar aquela coisa de ir pegar ferramenta e tentar ver ontem e a chave de fenda né em vez de esperar encontrar o parafuso então o que que as peças principais as pessoas querem estudar e etc eu acho que uma que você pegou já apareceu aí
é teste porque com os testes a independente se são mais funcionais ou de unidades setra mas desde que você tem uma segurança de que modificações futuras não vão causar bugs velhos ou já imaginados não eu acho que isso é algo muito importante por exemplo que pode ser protesto em várias maneiras não sei aquele teste que alguém aprendeu nos reunidos ali que outras coisas que aparecem assim vem na sua cabeça então existem se algumas boas práticas mais a objetiva vamos dizer assim eu já falei algumas então por exemplo a ideia de você se restringir a tentar
fazer a tentar fazer suas funções ou métodos serem curtos então isso isso nossa é uma questão estética da gente costuma dizer a gente vai passando de um Perdidão já foi demais Porque de fato para você começar a ler um contexto me dando dois três peixes da mesma função você já não eu quero no começo quando chegou lá no fim aí prejudicar mais ainda se a tal da complexidade ciclomática foi muito aqui complexidade ciclomática Imagine que você tem um fora dentro de um four com o wi-fi um queijo e o outro for dentro mais um infinito
daquela cascata de blocos um dentro do outro isso é muito porque aí vou ter um look que baixo outro look que vai chamar um wi-fi que vai chamar um elske eu já para você manter esse estado na cabeça é muito complicado talvez aquele um bloco de dentro já era uma função separada aquele o segundo bloco de fora é outra função separado aí você vai separando isso em funções o que talvez seja complicado de entender nenhum sendo mesmo senhor a gente vai escreve tudo bonitinho na primeira vez eu não vai sair os 20 métodos da classe
de certinho provavelmente vai ser o contrário mesmo eu você vai escrever o linguição primeiro a gente vai escrever o linguição primeiro não importa o que é o código a gente vai fazer três quatro Perdidão de função a diferença é quando a gente terminar e Executar a gente tem a preocupação vai estar feio eu vou pegar agora esse pedaço do Meio agora que já fiz o teste eu vou soltar uma função separada qual do teste tá funcionando aí tá então essa função tá separado agora essa esse esse outro bloco é uma composição de funções para você
parar mais duas que fazer a composição aqui qual do teste tá funcionando aí tá funcionando e com isso método de 23 países da os vai caindo você vai criando outras funções você já sabe que tá funcionando o seu teste tá rodando e esse é o processo de refatorar então o as boas práticas de então que no final você vai ter um código simples de entender com boa nomenclatura das variáveis na primeira versão você fez com o abc x Mas aí você reescreve a noite aqui na verdade era um arquivo isso aqui na verdade era usuário
aí você vai mas você tem o teste então se você esquecer de substituir um X por usuários O teste vai falhar naquela outra esqueci desse x aqui então aí você vai refatorando e eu gosto muito da ideia de software emergente porque a nossa cabeça não funciona organizada modularizado e já sai com 10 funções saiu lembre são algo fazer isso com isso passo look com incidental totó e no final pinto o resultado pronto ficou desse tamanho gigante aqui depois que eu eu joguei a minha cabeça ali eu devo damp do meu cérebro daquele código e rodou
e eu consigo fazer um teste que pelo menos minimamente texto que eu escrevi agora eu vou organizando eu acho que seria a mesma coisa e você organizar só seu quarto você que jogar joga tudo no em cima da cama é assim que você pensa eu tô aí agora esse lado estante e se vai na mesa e esse aqui é lixo isso aqui não preciso mais isso aqui vai para lavar aí você vai organizar no final seu porta fica Limpo se você não faz isso aí você vai só acumular não faz não tem diferença não tem
diferença eu sei onde estão as coisas é o seu estão as coisas no final você não sabe onde tá naquele momento que você precisa da sua identidade você vai perder o avião o suporte a não ser estava embaixo da cama não sei se cachorro levou não sei se foi para máquina de lavar porque tá Amazônia é o que acontece com o código mas se Toda vez você faz uma pequena bagunça e organismo depois faz uma pequena bagunça e organiza depois no final você tá organizado eu acho que o grande problema é que todo mundo tem
a desorganização completa e acha que tem que ser 100% perfeito do tempo todo não vai ser aqui das que tudo caindo trade-off né porque não tem como a gente fugir do total do débito técnico alguma coisa vai ficar faltando e acho que nosso objetivo quando a gente ganha senioridade é justo estrofes e a gente tem a capacidade de enxergar que olha eu não tô atrás de 100 porcento de performance porque eu preciso priorizar o time a manutenção o design e esse fica claro né em relação a fazer com várias camadas ou em linguagem C frameworks
são Abstrações em cima de Abstrações né Tem um preço versus escrever tudo em a sempre em acho que esse trófica caro mas aí mesmo as outras boas práticas de segurança é de otimização e etc também recaem sobre isso o quanto que a gente deve ficar entrando na vó para já vou testar sem por cento de cobertura não pera aí porque 80 porque tem uns vinte por cento final da última milha é complicado por causa disso disso tem sempre que que me disse não a gente fica querendo é que nem quando as pessoas aprendem design pattern
sequer em frente o lugar aprendi de teste que enfiar em absolutamente e fica com aquela focada que ganha ódio da pessoa que não escreveu um teste né vir inimiga mortal e é que é o que você costuma falar nos vídeos também né para você não ser tiro líder de algum ou de uma linguagem ou mesmo de uma das práticas toma cuidado porque vai ter um caso que para lá mas veja bem aqui escreveram o linguição de Quatro páginas porque o escrito que vai ser jogado fora amanhã lá Exatamente isso vale isso é importante a torta
legal que você falou isso da do Design patente porque dá para não falar que só eu que falo isso mas é normal acho que você já deve ter visto coloco que saiu desempates principalmente povo andava com o livro eu amava eu lá e eu dava com o livrão embaixo ali se achando o arquiteto a palavra bonita bonita bonita bonita livro mesmo eu já falei isso nos vídeos eu vou repetir para galera aqui que eu acho importante se consigo marcar lá esse conceito se repita esse conceito na empresa de vocês Design patterns São patterns o que
que é um Patri é simplesmente uma repetição é que nem uma cortina de bolinhas a repetição se chama bolinhas é que nem uma uma roupa de tigre a parte do padrão Ou só listras de tigre isso são patterns então quando a gente fala design patterns on repetições de design que a gente vê por exemplo esse a repetição de designers criam conceito que vem da arquitetura de verdade foi o Christopher esqueci o nome dele mas ele escreveu um livro sobre patterns de arquitetura Então passe arquitetural toda a casa tem uma porta retangular como a janela retangular
com telhados em triângulo são patos a gente que a gente vê se você for de repente no mundo dos hobbits da do Senhor dos Anéis é diferente o pato é só portas redondas certo casa redondinhos também como Matinho em cima então é um outro Pátria nenhum dos dois pattern se sobressai sobrou nenhum e se é certo e errado São Patrício um eu ver vindo em casa os ocidentais o outro ver com casa de hobbit é só um packers a Se eu tentar aplicar o parto de design ocidental na terra dos hobbits os olhos Vamos jogar
por Smaug e vou me queimar ali no monte de um Então vai ser horrível que você não deve fazer isso mas não quer dizer que é porque o pattern tá errado a aplicação do Pasteur no está errado então o que o povo o que o povo ensina errado ou usa errado é que a tradução de Design patterns em Português o livro ficou chamando padrões de projeto e a palavra padrão em português A Primeira ideia que vem a nossa cabeça é padrão no sentido de stander stander que é realmente o padrão é uma regulamentação você tem
que fazer assim os fabricante de cálcio você nunca a segurança não pode vender o carro isso mas regulamentação não é um pastor então eu não posso escolher não usar se você escolher não usar Eu também faço você não vender é simples assim agora stander não é o que a gente queria dizer a gente queria falar para ele então pattern e stander os dois traduzem para padrão em português só que a gente pensa primeiro em Instagram em vez de ter pensado em patterns então é por isso que design pata mas eu imagino que muita gente acha
que é obrigatório lamento o o único jeito de fazer E aí eu tava falando no outro vídeo que design patterns foi basicamente um banho de programador é senhor tal que já passou por vários projetos e eles identificaram que nos principais projetos que eles passarão apareciam algumas repetições clássicas um visitor um Xenon recomende no single tô aqui até hoje a gente até já fala que uma prática usar um símbolo mas ele era visto em multi é mas antigamente Então é só uma repetição e se catalogaram então o que é o livro design partes é um catálogo
ele é só isso um catálogo é que nem um catálogo de itens de cozinha você precisa usar todos eles que estão no catálogo não você vai usar uma colher pra alguma coisa um carro para outro você não precisa de fakie você não vai usar mas tá no catálogo todos esses itens se o cara fala Não isso é o guia ou regulamentos são não usar todos os itens do catálogo eu não estou seguindo o padrão E aí que ele vai começar a usar garfo para querer cortar carne vai querer usar as coisa errada no lugar errado
e design patterns o livro do Gang of Four ele é só um pedacinho hoje a gente tem vários outros livros que complementam ele entra prize architecture do Martin fowler do Messenger do mestre em design do Eric ewans o clean architecture do Bob Martin arquitetura hexagonal do alister coburn então existem vários padrões e o que que são esses passei por o Stitch patterns estou voltando acompanhou no começo software eu não tenho como descrever ele visualmente texto com textura não tem uma característica de sentidos que eu possa usar para descrever eu não consigo desse só ter mais
quente ele é mais Amarelo ele é mais pesado em vez disso a gente criou vocabulários para tentar descrever características de soft Então pattern são vocabulários para descrever essas características que eu não consigo ver é uma linguagem que agora eu Akita você pode eu posso falar vamos fazer um adaptável às eu sei o que é uma data não tem forma física vão tijolo Mas pela nossa experiência de uso a gente sabe o que é uma data você fala vamos fazer arquitetura mvc Você sabe quem me ver seu que me vencer a gente tá mais ou menos
falando a mesma coisa vamos fazer balde de contexto do DDD mais Se você não souber eu posso agora no livro de de o que que o Eric vamos quis dizer com Valder decontex com E aí eu consegui no livro A esse tipo de código para esse tipo de cenário então eu consigo ter agora um consenso na descrição desse software usando a linguagem the patterns então paternis é uma tentativa de resolver os problemas mais difíceis da Computação todo mundo acho que fazer inteiro de artificial fazer Mach Lane o Skynet não vai dar nome para as coisas
o nome correto para as coisas e a gente acha engraçado e outra me faz assim vamos criar nomes bonitinhos para as coisas avaliar vai chamar Frodo mas não vale água que vai chamar saruman é só variável aqui vai achar mais mal e não sei que diabos quer dizer ao próximo cara vai olhar esse corte é uma variável chamada Frodo O que quer dizer que eu pego grande esse negócio não sei não era melhor ter chamada de usuário chama de uso agora já eu tenho um contexto ok ele está se referindo a uma pessoa eu não
tô me referindo a arquivo eu quis chamar Smaug o Database não o bicho batismal nos faz isso entendeu então aí desde colocar nomes a gente não pode nem fazer nomes que são abcd xyz que é o que a gente faz a matemática porque para escrever mais fácil ou já é uma notação reconhecida vamos assim em programação eu tenho muitas variáveis e muitos lugares essas variáveis elas espalham pelo seu código então quanto com Pior foi A nomenclatura das coisas que você colocar o nome de função nome de variável nome declaro em nome de biblioteca vai ficando
um vocabulário ruim de eu trabalhar porque eu tenho ficar decifrando o que que é em vez de eu trabalhar para programar e vou tá trabalhando para decifrar coisas o que que eu desgraçado quis dizer quando xqx eu não sei que é o número é uma palavra é um objeto é uma constante eu não sei aparece X no meio do negócio que que x Então a gente tem que falar mas isso ficar variável longa é melhor que seja longa faz uma frase se acha mais descritivo essa a rádio controla a segurança do sistema potássio importante isso
então eu preciso ter nomes e paternes é uma das formas da gente conversar e chegar a um consenso e a forma como você expressa no seu código importante porque de novo eu não estou programando para o computador ato programado para a próxima pessoa e acho que até Valeu o último gancho conseguinte sobre a ideia de linguagem spray Minecraft textura as pazes com as boas práticas em geral boas práticas ele que nem eu falei o código-fonte ele é feito para outro programador as duas práticas são feitas para outro programador também para você mesmo por uma coisa
que é comum que as boas práticas sejam consenso entre a equipe porque eu posso fazer voz para posso fazer um livro de boas práticas e de fato tem se eu pegar por exemplo livro Clean code do Bob Martin é um livro de 200 300 páginas é impossível eu achar que a equipe inteira vai necessariamente fazer é triste de tudo se eu pegar qualquer linguagem moderna Hoje ele tem linter que é tipo Robocop derrube o js-20 Java script que ele leu seu código-fonte falar a Soninha tá muito comprida o seu método tem muitas linhas a sua
nomenclatura tu não tá boa aqui tem muita duplicação então ele tenta automatizar as boas práticas rodando um robozinho e vamos assim que vai ler o seu código e dá uma nota para ele falar não tá tão bom só que sem por cento disso não é necessariamente um bom código às vezes eu tô querendo ir demais e eu não preciso ir tanto então o melhor as melhores boas práticas é o melhor consenso que a sua equipe chegou ele vai ser versão um versão 2 Versão tanto que vai ajustando mas tende a refletir a boa comunicação da
sua equipe só sua equipe tem má comunicação não interessa o check-list que você coloque vai ser mar um mau código então acho que eu a ideia de boas práticas o PC um protocolo mínimo de comunicação entre membros da mesma equipe então por isso que cada equipe tem que fazer o seu suas próprias boas práticas ter seu próprio guia porque a gente conversou junto nós conseguimos trabalhar bem com essa meia dúzia de boas práticas e todo mundo segue eu não tenho surpresa ao ler o código dos outros eu consigo revisar o seu código eu sei que
OK Tá limpa eu consigo ler eu consigo pegar o código do fulano que saiu ontem de férias eu consigo continuar ele então as boas práticas tem que refletir a boa comunicação da empresa da planos da equipe de desenvolvimento ele não é o padrão que você tem que seguir Obrigatoriamente de regulamentação de como é o software Então eu acho que a ideia toda de Clean code é respeitar as seus membros da sua equipe seja lá quem eles são do tipo de projeto você vai fazer e em cima disso vão vir outras características de negócio ou de
infraestrutura que começa a ser performance começa a ser Quem são os habilidade que são aspectos que vão mudando com o tempo à medida que você vai aumentando sua audiência o seu faturamento cresce e eu quero atingir outros públicos não aí já são preocupações das features de negócio do software Mas se a fundação tiver bem feita que são as boas práticas a boa comunicação da empresa todas essas novas coisas tendem a vir rápido mais rápido ou menos dolorido do que se for um negócio que eu vou fazer o menor código otimizado com a melhor segurança e
vai ficar impossível descrever qualquer coisa em cima dele depois perfeito Então eu queria saber de você qual que é a boa prática que você gosta e eu vou tentar sumarizar o que eu gostei muito daqui daqui tá ele não queria entregar mas ele já entregou a parte em métodos e funções um pouco menores não é relativamente pequenos os testes para a gente ter garantia de alguma forma de que eu mudei não deu problema e toma cuidado de seguir qualquer regra de maneira sem pensar como ficar enfiar e em tudo que é canto quando na verdade
a gente devia ter algum trade-off a gente tem que estar sempre né com mais celeridade tendo essa capacidade de discernir preciso disso ou não vai valer a pena lá para frente ou não e também gosto muito do que aqui tá colocou não é hoje a gente problema para outras pessoas 25 anos atrás 30 Anos Atrás a gente pegar um amigo sozinho então só você entender tudo bem essa realidade mudou Então escreva Esses códigos ofuscados que só você entende para você mostrar que você é muito bom muito boa hoje em dia já não tá com nada
hoje em dia é a gente mostrar quem sabe escrever um código de outras pessoas entendem então deixa seu like a gente tá deixando links aqui para os vídeos que eu aqui tá citou até a próxima valeu pessoal até mais é E aí [Música] [Música]