5 Técnicas Rápidas de Refatoração Para Você Aplicar no seu Código Diariamente

  Рет қаралды 25,635

Código Fonte TV

Código Fonte TV

Күн бұрын

🧠 𝗘𝗦𝗧𝗨𝗗𝗘 𝗡𝗔 𝗔𝗟𝗨𝗥𝗔 → codft.me/alura
Escolhemos 5 das nossas técnicas favoritas e super rápidas de refatoração de código que nós usamos no dia a dia e que você também deveria usar. Algumas são obvias e mesmo assim vemos muito código aí sem esses cuidados.
🎙️ Compilado Podcast
→ KZbin: codft.me/canal...
→ Spotify: codft.me/compi...
→ Newsletter: compilado.codi...
🔗 Mais links do Código Fonte TV
→ codigofonte.tv
#Refatoração #Programação #DesignPatterns
#MãoNoCódigo69

Пікірлер: 72
@AquinoThug
@AquinoThug Жыл бұрын
1 Técnica: 2:40 2 Técnica: 6:23 3 Técnica: 11:02 4 Técnica: 15:34 5 Técnica: 20:23
@cassianocampes
@cassianocampes Жыл бұрын
Outro ponto que gosto de usar bastante é o Return Early Pattern. Isso ajuda muito na redução do uso de ifs alinhados, bem como melhora a legibilidade do código.
@jonnyvv
@jonnyvv Жыл бұрын
E infelizmente ainda existem muitos lugares que tem medo de refatorar código, a famosa história da tartaruga em cima da árvore, que ninguém sabe como está lá, mas é melhor não mexer. A dica é sempre seguir devar e sempre, uma função de cada vez, um tempo investido no momento para se economizar muito o futuro, um código bem escrito não tem preço.
@IguJl
@IguJl Жыл бұрын
Utilizo bastante a técnica de Fail First. No geral procuro manter baixos níveis de identação pra melhorar a leitura do código. Conteúdo top demais, obrigado
@victordacruz8535
@victordacruz8535 Жыл бұрын
mais um vídeo, com dicas incríveis sobre um assunto extremamente importante na área.💯
@codigofontetv
@codigofontetv Жыл бұрын
Muito obrigado Victor! Vamos voltar a falar de refatoração mais vezes, adoramos esse tema.
@wandreperes
@wandreperes Жыл бұрын
Vcs são fantásticos! Adoro o canal! Eu sempre fui paranóico com tratamento de erros. Pesquisei, pesquisei, sobre 'melhores práticas', e tals... Resolvi usar o throw, gerar uma exceção, pra tratar erros de validação. exatamente como vcs citaram. Porém, outro dia, vi o conteúdo de um programador fera, q disse: 'exceções, servem para informar erros de runtime, acesso negado, na escrita de arquivos...etc' Throw, usado em JS, em Promise, testei outro dia, não funcionou corretamente, quando executado dentro da Promise, de forma async.... Ó dúvida cruel...kkk Grande abraço! Sucesso! Sempre!
@jorge.barcelos
@jorge.barcelos Жыл бұрын
Fala meus amores conterrâneos, poxa, vocês poderiam lançar cursos de desenvolvimento no seu canal, por exemplo, não vi ninguém ensinar C# pelo vscode, são sempre IDE's parrudas e pesadas, ia ser uma honra aprender com vocês, tipo um Código Fonte Academy, por favor, levem em consideração, um abraço na Vanessa e um Beixo no Gabriel
@codigofontetv
@codigofontetv Жыл бұрын
Oi Jorge, muito obrigado pelo seu comentário. Estamos empenhados em lançar nossos cursos esse ano. É um dos nossos objetivos sim. Grande abraço.
@jorge.barcelos
@jorge.barcelos Жыл бұрын
@@codigofontetv Opa, já to aqui roendo as unhas do pé
@mateusfreitas3300
@mateusfreitas3300 Жыл бұрын
Mas não faz diferença a IDE que o curso usa. Você sempre pode usar o vscode ou qualquer outro editor seguindo um tutorial que usa uma IDE.
@ped8262
@ped8262 Жыл бұрын
Tem o curso do Nélio Alves na udemy
@leopereshz
@leopereshz Жыл бұрын
essa parte de retornar se a função deu erro é um ponto que me dói, mas não sei se encher o código de try catch seria uma forma mais elegante de resolver o problema.
@thales-barbosa-bento
@thales-barbosa-bento Жыл бұрын
Aprendi muita coisa na Alura, Solid, Object Calistheniscs e design patterns. No inicio voce nao vai conseguir aperfeiçoar todas as boas praticas. Mas com o tempo e maturidade para enxergar os problemas, as oportunidades aparecem naturalmente
@lucianoestevao
@lucianoestevao Жыл бұрын
Ótimo vídeo. Vocês indix um vídeo explicando técnicas para os Testes?
@marcelomsmms
@marcelomsmms Жыл бұрын
Sensacional!!!
@Pawl0solidus
@Pawl0solidus Жыл бұрын
Aquela parte de alterar os dados com um método só para vida e pontuação acho que precisaria de pelo menos um facade para manter compatibilidade com os métodos Aumentar e Diminuir pois realmente tanto para a questão de semântica quanto de lógica de um jogo faz sentido querer só incrementar ou decrementar em um certo momento e também pode ser necessário mudar o valor do incremento ao invés de ser sempre unitário. Mas parabéns pelo conteúdo e obrigado por estarem variando a linguagem! Finalmente vi como posso fazer testes com o C# graças a este vídeo e me surpreendi com a simplicidade.
@vitao7389
@vitao7389 Жыл бұрын
Melhor vídeo do canal até hoje, isso que acompanho a anos, muito obrigado CDF TV
@brunnohm
@brunnohm Жыл бұрын
Gostei tanto desse vídeo que assisti várias vezes.
@exe3242
@exe3242 Жыл бұрын
Confesso que me surpreendeu. :)
@MarcusBecker
@MarcusBecker Жыл бұрын
Muito bom!
@ac-devfullstack9709
@ac-devfullstack9709 Жыл бұрын
Show de bola, excelente vídeo, parabéns ao casal!
@diegofaria8187
@diegofaria8187 Жыл бұрын
Como sempre um excelente conteúdo. Seria uma boa vocês mostrarem exemplos substituindo tipos primitivos. Já que mencionaram a importância dos testes, essa substituição por tipos específicos também deixa o código mais seguro.
@arozendojr
@arozendojr Жыл бұрын
Sugestão, programação defensiva
@rotognin
@rotognin Жыл бұрын
Assunto muito importante! Para conseguir refatorar um código, é necessária muita atenção e precisa entender a regra de negócio que o código está executando. Em linguagens como Delphi (object Pascal) "não teremos problemas" com nomes de variáveis, pois elas devem ser declaradas antes de usá-las. Agora PHP, Javascript, e muitas outras corremos sérios riscos de alterar em um lugar e não alterar em outro, aí só iremos perceber a bagunça durante o funcionamento do código, na maioria das vezes. Abração CDF´s
@TheTentativaCanal
@TheTentativaCanal Жыл бұрын
só uma obs., No C# não é recomendado tratar erros de negocio com exceção pois os mesmo são muito pesados para a execução do aplicativo, é utilizado usar apenas para coisa externas do código, como conexões a banco de dados, IO de arquivos, requests Http, etc
@doctor-hook
@doctor-hook 5 ай бұрын
Esse tipo de problema já foi corrigido nas novas versões do C#
@luizmatheusga
@luizmatheusga Жыл бұрын
Bem a única coisa que eu aprendi que deixaria o códico mais limpo seria aretirada dos elses em alguns dos métodos utilizados nos código, pois já que se não de certo ou der certo ele retorna ou levanta uma exceção não ter o porquê ter um else.
@THIAGOPEREIRA-dn7mn
@THIAGOPEREIRA-dn7mn Жыл бұрын
Eu tenho aqui uma duvida!!, eu tinha lido um artigo(acho que foi do Martin Fowler) que fala para não usar Exceptions para para validação e sim o Notification pattern. Ele argumenta que Exceções deve sinalizar algo fora do esperado que deve interromper o fluxo. Eu sinceramente não vejo problemas nas duas abordagens. Mas sempre fico na duvida quando eu devo adotar Notification Pattern ou lançar uma exception. Muito bom video...value obrigado!!
@pand367
@pand367 Жыл бұрын
Sinto que estou na melhor época pra assistir esse tipo de vídeos estou terminando o curso da trybe, e eu mato meus vícios antes de serem fixados na matrix do meu cérebro
@emanuelmartins9508
@emanuelmartins9508 Жыл бұрын
Na minha opinião, diminuir a quantidade de linhas no código, contanto que não crie linhas sejam muito extensas p isso. melhora muito a leitura dos códigos. O c# ele possibilita vc escrever muita coisa em uma linha só, se souber dosar isso seu código fica bem limpo esteticamente.
@_rubenscjr
@_rubenscjr Жыл бұрын
1. Aquelas palavras entre colchetes são o quê? 2. Um vídeo legal de ser feito seria mostrando testes em algumas linguagens, até porque não é algo que é "natural", mas deveria. 3. Já que dei ideia de testes, surgiu mais uma. Teste de interface, não lembro se já fizeram, mas lembro de ter vídeo do Cypress e do Selenium, mas acho que tem uma forma sem ser "gráfica" de fato que roda e exibe os resultados pelo terminal.
@luizAugustoll
@luizAugustoll Жыл бұрын
Testes unitários até tem bastante, o que não tem muito é teste de integração e ponta a ponta
@_rubenscjr
@_rubenscjr Жыл бұрын
@@luizAugustoll no caso, não teria como automatizar os testes unitários, mas um grupo maior sim, seria isso?
@alx_abreu
@alx_abreu Жыл бұрын
Talvez pode ser algo de novato, mas eu entenderia melhor os testes se rolasse um Debug estilo ao comando SOUT do Java para entender o retorno do que está sendo feito no console... Embora que foi usado C# no exemplo eu achei que era Java de inicio 🤔
@LevyPy
@LevyPy Жыл бұрын
Ótimo vídeo!
@miguelaguiar5745
@miguelaguiar5745 Жыл бұрын
falem sobre power bi
@FernandoTakeshiSato
@FernandoTakeshiSato Жыл бұрын
C# 😍Um pequeno comentário para quem trabalha com a linguagem: erguer exceções é sim mais seguro e força o consumidor do código a tratá-las, ou ao menos a estar ciente de que elas podem ocorrer. Infelizmente, em alguns cenários onde a performance é importante, essa estratégia pode não ser a mais adequada. Exceções são caras e vale a pena entender seu custo para utilizá-las com parcimônia. Existem algumas alternativas que podem ser interessantes, por exemplo kzbin.info/www/bejne/l2LclmybfLl1b5o (em Inglês). Abraços!
@robertnem
@robertnem Жыл бұрын
Olá! Então, entrei nos comentários exatamente por esse linha de pensamento. Utilizo sempre a forma das excessões como apresentado no vídeo do código fonte. Óbvio que existem outras formas, mas o que se precisa lembrar que uma excessão é uma excessão ou seja por exemplo em uma compra de carrinho se passar um valor negativo isso é uma excessão ou seja é.contra a lógica
@jhonnyd3505
@jhonnyd3505 Жыл бұрын
Vem logo ChatGPT versão 7 e acaba logo com essa bolha de mercado chamado programação...
@rodrigomartins745
@rodrigomartins745 Жыл бұрын
Ola´..sempre estou vendo os videos de vcs e tenho uma duvida..Estou estudando Python e gostaria de saber qual melhor biblioteca no Python para trabalhar com Big data ?? Obrigado
@marcio1938
@marcio1938 Жыл бұрын
video sensacional Duas palavras Para Bens kkkk
@ofabiogordo
@ofabiogordo Жыл бұрын
Uma questão sobre o ponto do retorno de exceção, acho que quando se é criado no Controller por exemplo é aceitavel, mas se for dentro de um Model, acho que retornar um false é válido, pois pode ser que eu em alguma reutilização de código para uma devida validação utilizar o return false seria utilizado em um if por exemplo para fazer uma outra ação... Não sei se soube expor o que pensei nesse caso...
@wallesonferreira3938
@wallesonferreira3938 Жыл бұрын
A utilização de "flag" dentro de loops evita bastante q sejam utilizados "ifs" desnecessariamente :)
@luizAugustoll
@luizAugustoll Жыл бұрын
Uso de breaks também
@fagnercarvalho681
@fagnercarvalho681 Жыл бұрын
Csharp, é amoor!
@leo_amaral8045
@leo_amaral8045 Жыл бұрын
geniaaaaaaal \0/
@JoaldinoNeto
@JoaldinoNeto Жыл бұрын
Pra eliminar if...else... eu tb costumo usar objetos. Explicando: Vamos supor que eu queira converter UF para o nome do estado. [ANTES] if (uf === 'BA') { return 'Bahia' } else if (uf === 'SP') { return 'São Paulo' } // ... [DEPOIS] const MAPPING = { BA: 'Bahia', SP: 'São Paulo' // ... } return MAPPING[uf]
@wesinec
@wesinec Жыл бұрын
Só uma sugestão, deem uma olhada no concurso do Banco do Brasil. É uma sacanagem o que estão fazendo. Vaga de nível médio para cargo de cientista de dados e desenvolvedor mobile juntos.
@rocktrd
@rocktrd Жыл бұрын
Meu sonho é um dia ter a oportunidade de trabalhar com esse casal maravilhoso
@andreduartebueno
@andreduartebueno Жыл бұрын
Antes que apareça um professor de física para puxar a orelha de vocês... velocidade tem unidade m/s e aceleração m/s². Então os nomes aceleração e desaceleração são inadequados. Dá para entender perfeitamente, mas é um erro físico. Talvez algo como IncrementoVelocidade ou VariacaoVelocidade. E como o valor é o mesmo ficaria uma única variável.
@Felipe_Matheus_1991
@Felipe_Matheus_1991 Жыл бұрын
Adorei as técnicas meus queridos! mas tenho uma dúvida, vocês utilizaram o strategy na segunda técnica que consistem em criar uma interface(contrato) pra obrigar todas classes que implementam(assinam) essa interface a implementar a lógica, desta maneira vocês fazem o bom uso do polimorfismo manipulando qualquer objeto que retorne, até ai mil maravilhas, mas qual pattern ou técnica eu poderia usar pra decidir qual objeto instanciar? Pq ao meu ver se eu tivesse uma função que retornasse por exemplo uma string com o método de pagamento, eu ainda teria que usar IFs pra decidir qual objeto instanciar pra dps usar o método que ele implementou. Valeu e abraços! Sucesso pra vcs sempre!
@videoaulasmayleone
@videoaulasmayleone Жыл бұрын
Tem várias formas de vc decidir qual vai instanciar, daí vc tem q analisar qual eh a melhor para sua aplicação, dependendo de como ela funciona. Por exemplo, imagina q vc está num ambiente onde tem uma UI onde o usuário pode escolher qual opção ele quer usar: nesse caso, em cada método da opção (botão) vc instancia o objeto referente àquela opção, então com essa instância vc pode passar ela pro Strategy chamar a implementação do método correspondente. Outra coisa nesse cenário q vc ainda pode melhorar: ao invés de ter várias funções de botões apenas para instanciar um objeto diferente pra cada tipo e chamar o strategy em todas, vc pode usar um dicionário que guarda cada instância de cada objeto, e a chave pode ser uma string ou um ENUM q representa aquele objeto. Então vc teria a chave por exemplo "PIX" e o valor eh a instância da classe, assim: Dictionary payDict = new Dictionary { {"PIX", new PixType()} }; Cada botão carrega uma referência (pode ser string ou ENUM) da chave correspondente do objeto, então vc só teria um método assim: void OnButtonClicked(string payType) { IPaymentType paymentInstance = payDict[payType]; paymentInstance.SetValues(value); // Aqui vc implementa na classe do tipo "PIX" um método pra passar o valor q vai usar pro Strategy, mas caso queria simplificar ainda mais (q eu recomendo) vc pode combinar tudo isso com o Factory Pattern, pra criar a instância de forma mais dinâmica ainda! strategy.CallStrategy(paymentInstance); } Um método só, pra cada opção de pagamento disponível. Claro q isso eh um exemplo com uma interface gráfica, onde temos botões, mas vc pode usar a mesma lógica pra outros tipos de situações tb, basta guardar a referência/chave q o objeto representa.
@Felipe_Matheus_1991
@Felipe_Matheus_1991 Жыл бұрын
@@videoaulasmayleoneMuito obrigado pelas explicações, você me deu umas ideias muito boas pra resolver esse problema da instanciação correta, o pattern que você diz no final é o Factory Method ou Abstract Factory?
@videoaulasmayleone
@videoaulasmayleone Жыл бұрын
@@Felipe_Matheus_1991 Nesse caso o Factory Method
@LeonardoOliveira-oq8uw
@LeonardoOliveira-oq8uw Жыл бұрын
Entendi as técnicas, no entanto uma ou outra são limitadas a linguagem de programação ao qual você usa. Eu programo em C, Octave/Matlab também, irei aplicar essas técnicas nos algoritmos de redes neurais e estimadores lineares para identificação de sistemas. Muito obrigado!
@elvisreis6249
@elvisreis6249 Жыл бұрын
Não renomeou em 13:45 pq o comando é Ctrl+F2 :D
@beninhalopes1012
@beninhalopes1012 Жыл бұрын
Tem umas coisas aí que deveriam dar em demissão por justa causa! Números mágicos me levam a loucura! Excelente conteúdo!
@jonatanmsd
@jonatanmsd Жыл бұрын
TINHA QUE SER JS!!!!!
@Palmutip
@Palmutip Жыл бұрын
Já dei like logo quando falou que era C#
@guilhermehenrique9979
@guilhermehenrique9979 Жыл бұрын
Viish tô no começo ainda, fico boiando nesses assuntos kkkkkk
@RonaldoArch
@RonaldoArch 8 ай бұрын
@mikaelmedeiros2646
@mikaelmedeiros2646 Жыл бұрын
Tenho minhas dúvidas, com If/Else tava mais fácil o entendimento. Teria que ter o conhecimento do Math para entender. Um Jr teria dificuldades ao bater o olho
@user-kw8en6jc6gffuhgikawwmwns
@user-kw8en6jc6gffuhgikawwmwns Жыл бұрын
Fala mestres 😂😂🤣🤣🤣🤣🤣🤣. Lógico né 🤣🤣🤣😂🤣
@fabricio4794
@fabricio4794 Жыл бұрын
Vocês Já pensaram em desenvolver suas próprias Ferramentas No Code??
@0-Felipe-Moreira-0
@0-Felipe-Moreira-0 Жыл бұрын
Bom demais, vídeo gostosíssimo!
@doctor-hook
@doctor-hook 5 ай бұрын
Estão programando JS no C#. kkkkkkkkkkkkkkkkk!
@geovaniteixeira1030
@geovaniteixeira1030 Жыл бұрын
#ateofinal
@geovaniteixeira1030
@geovaniteixeira1030 Жыл бұрын
#querocamisacdf
@hdevinfo
@hdevinfo Жыл бұрын
Muito bom mesmo show 😊 csharp #
Code Smell (A arte de farejar código ruim) // Dicionário do Programador
14:40
6 ATITUDES RUINS PARA NÃO TER EM ENTREVISTAS PARA PROGRAMAÇÃO
26:09
Código Fonte TV
Рет қаралды 62 М.
Being Competent With Coding Is More Fun
11:13
TheVimeagen
Рет қаралды 87 М.
AGORA VOCÊ VAI ENTENDER CÓDIGO DE OUTROS DEVS
24:58
Código Fonte TV
Рет қаралды 10 М.
SOLID (O básico para você programar melhor) // Dicionário do Programador
16:22
Brutally honest advice for new .NET Web Developers
7:19
Ed Andersen
Рет қаралды 203 М.
CAMINHOS PARA SER UM DEV FRONT-END EM 2023 (GUIA COMPLETO E ATUALIZADO)
29:53
How principled coders outperform the competition
11:11
Coderized
Рет қаралды 1,7 МЛН