Тёмный

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

Código Fonte TV
Подписаться 689 тыс.
Просмотров 26 тыс.
50% 1

🧠 𝗘𝗦𝗧𝗨𝗗𝗘 𝗡𝗔 𝗔𝗟𝗨𝗥𝗔 → 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
→ RU-vid: 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

Опубликовано:

 

21 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 73   
@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
@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.
@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!
@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.
@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
@brunnohm
@brunnohm Год назад
Gostei tanto desse vídeo que assisti várias vezes.
@lucianoestevao
@lucianoestevao Год назад
Ótimo vídeo. Vocês indix um vídeo explicando técnicas para os Testes?
@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
@vitao7389
@vitao7389 Год назад
Melhor vídeo do canal até hoje, isso que acompanho a anos, muito obrigado CDF TV
@exe3242
@exe3242 Год назад
Confesso que me surpreendeu. :)
@arozendojr
@arozendojr Год назад
Sugestão, programação defensiva
@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
@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.
@marcelomsmms
@marcelomsmms Год назад
Sensacional!!!
@MarcusBecker
@MarcusBecker Год назад
Muito bom!
@ac-devfullstack9709
@ac-devfullstack9709 Год назад
Show de bola, excelente vídeo, parabéns ao casal!
@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]
@leo_amaral8045
@leo_amaral8045 Год назад
geniaaaaaaal \0/
@LevyPy
@LevyPy Год назад
Ótimo vídeo!
@fagnercarvalho681
@fagnercarvalho681 Год назад
Csharp, é amoor!
@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.
@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
@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.
@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 6 месяцев назад
Esse tipo de problema já foi corrigido nas novas versões do C#
@marcio1938
@marcio1938 Год назад
video sensacional Duas palavras Para Bens kkkk
@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!!
@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.
@_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 🤔
@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
@wallesonferreira3938
@wallesonferreira3938 Год назад
A utilização de "flag" dentro de loops evita bastante q sejam utilizados "ifs" desnecessariamente :)
@luizAugustoll
@luizAugustoll Год назад
Uso de breaks também
@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...
@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 ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-a1ye9eGTB98.html (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...
@miguelaguiar5745
@miguelaguiar5745 Год назад
falem sobre power bi
@rocktrd
@rocktrd Год назад
Meu sonho é um dia ter a oportunidade de trabalhar com esse casal maravilhoso
@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.
@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!
@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
@elvisreis6249
@elvisreis6249 Год назад
Não renomeou em 13:45 pq o comando é Ctrl+F2 :D
@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!
@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
@user-kw8en6jc6gffuhgikawwmwns
Fala mestres 😂😂🤣🤣🤣🤣🤣🤣. Lógico né 🤣🤣🤣😂🤣
@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
@fabricio4794
@fabricio4794 Год назад
Vocês Já pensaram em desenvolver suas próprias Ferramentas No Code??
@RonaldoArch
@RonaldoArch 8 месяцев назад
@0-Felipe-Moreira-0
@0-Felipe-Moreira-0 Год назад
Bom demais, vídeo gostosíssimo!
@doctor-hook
@doctor-hook 6 месяцев назад
Estão programando JS no C#. kkkkkkkkkkkkkkkkk!
@geovaniteixeira1030
@geovaniteixeira1030 Год назад
#ateofinal
@geovaniteixeira1030
@geovaniteixeira1030 Год назад
#querocamisacdf
@hdevinfo
@hdevinfo Год назад
Muito bom mesmo show 😊 csharp #
Далее
Angry bird PIZZA?
00:20
Просмотров 7 млн
"Clean Code Envelheceu como Leite!" Será?
19:32
Просмотров 63 тыс.