No video

Code Smell (A arte de farejar código ruim) // Dicionário do Programador

  Рет қаралды 15,704

Código Fonte TV

Código Fonte TV

3 жыл бұрын

🚀 𝗛𝗢𝗦𝗧𝗚𝗔𝗧𝗢𝗥 → codft.me/HGSQq...
O estado da arte na programação é e SEMPRE será a manutenção! Saber refatorar é algo que TODOS os programadores devem aprender a fazer. Nós mesmos já criamos muito código ruim até conseguirmos perceber que é preciso pensar na evolução do código como um todo. Os Code Smells são algumas características no código que demonstram que algo pode não estar OK para evoluir.
Conheça nesse vídeo como reconhecer alguns desses smells e o melhor caminho para evitá-los. Com certeza você vai se deparar com códigos que você já deve ter feito...
📰 𝗖𝗼𝗺𝗽𝗶𝗹𝗮𝗱𝗼: 𝗡𝗼𝘀𝘀𝗮 𝗡𝗲𝘄𝘀𝗹𝗲𝘁𝘁𝗲𝗿
→ compilado.codi...
📡 𝗦𝗶𝗴𝗮 𝗮𝘀 𝗿𝗲𝗱𝗲𝘀 𝗱𝗼 𝗖𝗗𝗙𝗧𝗩
→ linktr.ee/codi...
📸𝗜𝗻𝘀𝘁𝗮𝗴𝗿𝗮𝗺
→ / codigofontetv
☕ 𝗖𝗹𝘂𝗯𝗲 𝗱𝗼𝘀 𝗖𝗗𝗙𝘀 𝗻𝗼 𝗬𝗼𝘂𝘁𝘂𝗯𝗲
→ codft.me/clube...
▸ 𝗛𝗢𝗦𝗧𝗚𝗔𝗧𝗢𝗥
📢 Vagas e Oportunidades: codft.me/hostg...
𝑵ó𝒔 ❤️ 𝒓𝒆𝒄𝒆𝒃𝒆𝒓 𝒑𝒓𝒆𝒔𝒆𝒏𝒕𝒆𝒔, 𝒄𝒂𝒓𝒕𝒂𝒔, 𝒃𝒓𝒊𝒏𝒅𝒆𝒔 𝒆 𝒎𝒊𝒎𝒐𝒔.
Caixa Postal: 91735 - Cep: 25620-972
Petrópolis / RJ
💻 Edição e Áudio: RW Studio
🔗 Um vídeo do site Código Fonte
#CodeSmell #Refactoring #Programação

Пікірлер: 70
@jersonbrito
@jersonbrito 3 жыл бұрын
Eu uso o SonarLint no visual studio e o SonarQube no deploy.
@otaviolima7549
@otaviolima7549 3 жыл бұрын
Vlw
@marcosgomes3140
@marcosgomes3140 6 ай бұрын
O SonarLint é muito bom. Mas come uma memória da zorra. rsrsrs Procurei algumas alternativas mas não achei nada pra Python tão bom quanto o SonarLint
@beroodev
@beroodev 3 жыл бұрын
Agora meus amigos do Código fonte, o que fazer quando seu chefe contrata russos considerados os caras da programação, e você como reles junior precisa integrar sua aplicação à aplicação feita pelos russos mas para isso é preciso entender o código, e você se depara com funões do tipo: função "f" que recebe como parametros "a" e "rf" kkkkkkkk to lascado! Excelente video :)
@mickael450450
@mickael450450 3 жыл бұрын
Você troca de empresa, ta maluco ficar ai kkkkkk.
@autovrum
@autovrum Жыл бұрын
Por incrível que pareça, eu refatorei meu código assim.
@web.andrade
@web.andrade 3 жыл бұрын
Parabéns pela abordagem, este conteúdo é muito rico de detalhes e digo mais... tem muito programador dinossauro por ai que nega que tem smell no código hein. Eu mesmo tenho vários e não me envergonho de dizer porque estou sempre buscando pelas boas práticas e padrões de projetos, acho que o segredo está em parar de achar que sabe demais e refatorar sem medo o que precisa ser melhorado. E claro... assumir seus smells sem frescura!!! Parabéns mais uma vez pelo tema.
@codigofontetv
@codigofontetv 3 жыл бұрын
Muito obrigado Rafael! Você está coberto de razão. Todos os devs em todos os níveis geram smells! Nós mesmos quando estamos com algo ultra urgente apelamos também para as soluções mais rápidas, mas sempre sabendo que precisaremos voltar lá para refatorar. Assumir os smells não desmerece ninguém. Ir lá refatorá-los é que faz um dev um profissional melhor. Grande abraço!
@web.andrade
@web.andrade 3 жыл бұрын
@@codigofontetv Seria legal também se vocês abordassem uma situação (bem polêmica rs) que é muito recorrente no dia a dia dos devs que é a "obsessão por padrões de projeto" que acaba gerando diversos problemas na manutenção do sistema tornando a arquitetura mais complexa do que deveria, muitos se esquecem da importância de manter uma arquitetura manutenível e bem estruturada (por mais que exista complexidade). Sendo que o objetivo deveria ser "resolver problemas complexos com soluções simples" e bem padronizadas hahaha.
@GutoCmtt
@GutoCmtt 3 жыл бұрын
É um exercício de humildade e empatia o desenvolvedor olhar um código 1 ou 2 anos depois de ele ter colocado a mão. Faz a gente olhar as coisas com outras perspectiva e ver que o smell não tá só no outro xD
@marciorjusto
@marciorjusto 3 жыл бұрын
Acho que o segredo do "refatorar sem medo" são os Testes Automatizados: fazê-los sempre que possível, e antes até de começar a mexer no código, traz segurança e confiança ao manter um sistema, além de proporcionar comunicação mais eficiente entre profissionais. E o vídeo de hoje foi muito bom, parabéns ao pessoal do Código Fonte TV!
@DotcodeEdu
@DotcodeEdu 3 жыл бұрын
Resumindo, code smell indica o uso ou não de soluções alternativas provisórias - as famosas gambiarras kkkkk. Mas falando sério, esse tema é muito importante, principalmente em manutenção, como vocês falaram. Talvez iniciantes não entendam e vejam essa importância, mas logo logo vão perceber kkkk
@jersonbrito
@jersonbrito 3 жыл бұрын
Heheheh, video perfeito pra mandar pro amiguinho que não cuida direitinho do código da equipe. Mas uma vez, obrigado pelo conteúdo pessoal!
@codigofontetv
@codigofontetv 3 жыл бұрын
Isso mesmo Jerson! :D Espalhe o smell desse vídeo por aí... kkkk
@joaodutra
@joaodutra 3 жыл бұрын
Ixi! O Sonar Qube tá sempre me alertando hahahahah. Aprendo muito com o sonar...
@YuriMatosRodrigues
@YuriMatosRodrigues 3 жыл бұрын
Vídeo excelente. Vcs falaram algo importante também, antes de solucionar o problema, respira e conversa com alguém se tiver dúvidas... Antes um código duplicado do que uma abstração mal feita.
3 жыл бұрын
Resumindo... Tem muita gambi, muito workaroud por ai!! Vlw pelo video! Abs! Claudio.
@codigofontetv
@codigofontetv 3 жыл бұрын
Exatamente, todo push feito nas sextas já deveriam ser considerados smells! kkkkk
3 жыл бұрын
@@codigofontetv Sou vitima disso, o pepino fica pra quem vai trabalhar nos finais de semana (plantão), os "Engenheiros" fazem essas obras de arte e depois a Operação é quem segura o tranco!! hehehehe Abs!
@gustavokuze
@gustavokuze 3 жыл бұрын
Só faz código espaguete quem não teve que dar suporte a algum numa Sexta-feira às 17:59 da tarde... 😂 Ótimo vídeo, pessoal! Já deu aquele boost pra iniciar a semana.
@codigofontetv
@codigofontetv 3 жыл бұрын
Tem razão, numa sexta-feira às 17:59 está liberado qualquer coisa que rode (mas que deve ser refatorado na segunda)! kkkkk Muito obrigado por nos acompanhar.
@eliyahusilva8119
@eliyahusilva8119 3 жыл бұрын
Top ... Começando na programação de modo mais sério e esse canal vai me ajudar bastante
@marcusviniciusmendes7149
@marcusviniciusmendes7149 3 жыл бұрын
Vocês são bons demais! Estou no primeiro período em Ciência da Computação e busco canais como esse, que além da habilidade técnica, dispõe também das habilidades em se comunicar bem , e assim isso torna tudo mais fácil. Muito obrigado!
@ideiax
@ideiax 3 жыл бұрын
Tem uns macarrões tão embolados que parecem magia. Fazer refactor é tenso d+, mas vale a pena depois.
@gabrielbithencourt2122
@gabrielbithencourt2122 2 жыл бұрын
obrigado por esse vídeo código fonte tv!!!
@magoninhogamer
@magoninhogamer 3 жыл бұрын
Sugestão: falar de Makefiles e CMake
@rotognin
@rotognin 3 жыл бұрын
Show de bola! Estava pensando e acredito que existam alguns "code smells" específicos para linguagens com abordagens diferentes. Esse vídeo pode me fazer perceber alguns nas linguagens que uso no dia a dia, Cobol e Delphi.
@guesswhoitsrnx
@guesswhoitsrnx 3 жыл бұрын
Contextualizando ❤️
@TarikBoschi
@TarikBoschi 3 жыл бұрын
Muito bom! Para diminuir além de práticas como code review pode automatizar com uso de ferramentas como Sonarqube, CodeClimate, entre outras dependendo da linguagem utilizada.
@alexandrequeiroz3178
@alexandrequeiroz3178 3 жыл бұрын
Sei não ein... Um mão no código desse tema seria lindo hehe
@danielalvesmertins4461
@danielalvesmertins4461 3 жыл бұрын
4:10 Para Single Responsibility Principle a sigla correta é SRP, e não SPR.
@codigofontetv
@codigofontetv 3 жыл бұрын
Muito obrigado pela correção Daniel!!!
@fredfonseca1474
@fredfonseca1474 3 жыл бұрын
Muito bom 🤝 tive um estalo muito louco sobre meus códigos...
@codigoninja2268
@codigoninja2268 3 жыл бұрын
Não conhecia o termo, muito bom!!
@edcastanha
@edcastanha 3 жыл бұрын
Em projetos com a colaboração um opção com ferramentas que irão auxiliar a vigilância é o sonarquber
@JoabeRamone
@JoabeRamone 3 жыл бұрын
Eu uso o SonarQube, aprendi muito com essa plataforma.
@yasuoyasuo5822
@yasuoyasuo5822 3 жыл бұрын
Igual meu professor diz apressa é inimiga da perfeição
@niltondias1427
@niltondias1427 3 жыл бұрын
O Code Small pode ser utilizado para processos de QA em testes estáticos onde o código é analisado sem executá-lo? Aliás, vocês já postaram ou já pensaram em postar vídeos voltados para o pessoal de QA, software testers? Parabéns pelo vídeo! Como sempre, ótimo conteúdo!
@ozeiasribeiro5319
@ozeiasribeiro5319 3 жыл бұрын
Sugestão: falar de ruby. Eu não botava muita fé nessa linguagem. Mas ela é excelente pra desenvolver sites ou funcionalidades de sites de maneira rápida
@codigofontetv
@codigofontetv 3 жыл бұрын
Com certeza Ozeias! Ruby já está na nossa lista.
@nelljrbr
@nelljrbr 3 жыл бұрын
Um dos piores erros é exagero de comentários. Já peguei códigos que pareciam parede de banheiro públicos 😃
@eduardobcastro14
@eduardobcastro14 3 жыл бұрын
Quando dizem que tem code smell no meu PR dá vontade de esganar quem disse, mesmo sendo verdade kkk
@cebolaloco
@cebolaloco 3 жыл бұрын
Uncle Bob, autor de Clean Code, ensina que uma função não deve receber mais que 2 parâmetros. Caso use mais de 2 parâmetros, como no exemplo dado no video, a melhor opção é um objeto, pois o programador não precisa se preocupar com a ordem dos parâmetros, dentre outros benefícios.
@GutoCmtt
@GutoCmtt 3 жыл бұрын
Uncle Bob é um cara um tanto quanto radical pra levar o que ele fala ao pé da letra xD
@cebolaloco
@cebolaloco 3 жыл бұрын
@@GutoCmtt alguma coisa errada em passar um objeto como parâmetro ao invés de 15 variáveis?
@GutoCmtt
@GutoCmtt 3 жыл бұрын
​@@cebolaloco O que vcs falam é em 3, obviamente 15 variáveis não é devem ser usadas como parametro, qualquer erro na ordem já quebra o programa. Quanto ao que ele dá a entender no livro, nem sempre vai ser possível fazer com um objeto. O que ele fala é em passar entidades, ou seja, teria um grau maior de complexidade sendo criado para algo que muitas vezes seria um terceiro argumento, ou um array associativo ao invés das variáveis. O que se vê bastante são argumentos sendo passados como um array associativo, onde fica fácil de entender e de aplicar, e nesse caso eu concordo, mais do que 3 (ele fala em mais do que 2, mas aí já é exagero) argumentos começa a ficar complicado... E quanto ao Uncle Sam, sim, tem muito mérito no que ele fala e os livros trazem bastante reflexões necessárias. Mas o que ele fala não dá pra levar sempre ao pé da letra pq ele é bastante radical nas posições dele, isso já é praticamente um consenso.
@cebolaloco
@cebolaloco 3 жыл бұрын
@@GutoCmtt ​ @GutoCmtt Entendi. Mas acho que você tá "overengineering". Abaixo eu coloquei duas maneiras de passar argumentos. Considere que, enquanto na primeira opção você precisa se preocupar com a ordem dos argumentos, na segunda você pode facilmente acessá-los com "." ou "´[ ]", além de ser mais fácil ler o código. Qual das duas maneiras abaixo você acha mais fácil passar/ler argumentos? ---------- function renderUser(userFirstName, userLastName userId, userAge, userStreet, userCity, userNacionality, userPhone, userPicture) { // código... } renderUser(userName, userId, userAge, userStreet, userCity, userNacionality, userPhone, userPicture); ---------- const user = { firstName: "Bob", lastName: "Silva", id: 1, age: 20, contact: { address: { street: "foo foo foo", city: "ace ace", }, phone: "99999999999" }, nacionality: "brasileiro", picture: "..." }; function renderUser(user) { // código... } renderUser(user); ---------- kzfaq.info/get/bejne/baudldJ8tq6cnIE.html 1:10:40 em diante. "if you have a function and you want to pass six things into it, and those six things are so cohesive that they can be passed into a function together, why aren't they already an object?" "I don't want to see a long, comma separated list of arguments." "create the number of arguments down to two or three. Create objects if you have to."
@GutoCmtt
@GutoCmtt 3 жыл бұрын
​@@cebolaloco Então, eu já acho que a idéia dele é que é overengineering. Eu acho legal e concordo com criar um array associativo, onde vc pode acessar todos argumentos dentro e passar como $arg['rua'], $arg['cep'] ou algo assim. Mas criar um novo tipo de objeto, uma classe só pra tentar encaixar os argumentos, como se sempre fizesse sentido, acho que é demais. Fora que nem sempre vai dar, e ele fala como se os argumentos de função sempre fizessem sentido em um objeto, apenas por fazerem sentido como argumentos.
@GabrielCasote
@GabrielCasote 3 жыл бұрын
Faz um vídeo sobre Dry :)
@markfazolin
@markfazolin 3 жыл бұрын
Ótimo conteúdo! Deixem um link do livro, achei bem interessante!
@gersonmoraes8516
@gersonmoraes8516 5 ай бұрын
Faltou o "Downcasting" aqui.. esse pode te dar dor de cabeça se não for feito com muuuita atenção 🤣😂
@j.gleyson8351
@j.gleyson8351 3 жыл бұрын
Muito bom
@gcacars
@gcacars 3 жыл бұрын
Pra mim code smell é aquela categoria do Sonar, que mostra umas frescuras depois das prioridades e falhas de segurança kkkkk Mas em pensava que o sentido de code smell seriam alterações pra deixar o código melhor mas que são super simples (só passar um perfume) rs.
@danieldebatin2385
@danieldebatin2385 3 жыл бұрын
Tem alguma ferramenta para FORTRAN? Tem sido um pesadelo trabalhar com os códigos do meu orientador, que precisam urgentemente de uma limpeza. :P
@engecivila
@engecivila 3 жыл бұрын
es engenheiro estrututal?
@danieldebatin2385
@danieldebatin2385 3 жыл бұрын
@@engecivila Engenheiro naval de formação e trabalho com fluidodinamica computacional. Mas tenho experiência em usar códigos comerciais pra cálculo estrutural.
@engecivila
@engecivila 3 жыл бұрын
@@danieldebatin2385 bacana. Fiz o comentario pq sei que normalmente usam fortran em eng estrutural em agumas universidades
@thyagobomfim4751
@thyagobomfim4751 3 жыл бұрын
Na verdade tem que fazer o código do seu jeito, ou seja, o jeito que da certo, ai mais pra frente no decorrer você vai corrigindo, e melhorando o código, tanto é que tem siatemas com mais de 10 versões.
@jmarlopes.2533
@jmarlopes.2533 10 ай бұрын
Gabaritei todos os "Code Smell" 😎 cadê as vagas?
@beehlo
@beehlo 3 жыл бұрын
Sonar no intellij para java ..
@j.gleyson8351
@j.gleyson8351 3 жыл бұрын
Querida muito ganha o que faço??
@devwill
@devwill 9 ай бұрын
No C# o ReSharper reina absoluto
@heitormbonfim
@heitormbonfim 3 жыл бұрын
Se eu criar uma página inteiramente em javascript utilizando document.createElement() e appendChild(), a página roda mais rápido? em vez de separar html, css e js?
@Yan-zg8us
@Yan-zg8us 3 жыл бұрын
Não existe isso cara, Js é Js Html é Html
@thenriquedb
@thenriquedb 3 жыл бұрын
q
@SantaTechSoftwareDevelopment
@SantaTechSoftwareDevelopment 3 жыл бұрын
Code smell eh o famoso debug humano kkk
@GabrielCasote
@GabrielCasote 3 жыл бұрын
sinto o cheiro dos meus codigos mesmo após apagar os arquivos, devo lavar o pc? rsrsrsrsrsrsr
@victorhugocamposbelo7557
@victorhugocamposbelo7557 3 жыл бұрын
Credo Para Elixir
@j.gleyson8351
@j.gleyson8351 3 жыл бұрын
Gostaria de ganha uma camisa e muito Massa
Entenda: o que é low code? - TecMundo
6:32
TecMundo
Рет қаралды 34 М.
ТЫ С ДРУГОМ В ДЕТСТВЕ😂#shorts
01:00
BATEK_OFFICIAL
Рет қаралды 10 МЛН
No empty
00:35
Mamasoboliha
Рет қаралды 12 МЛН
黑天使遇到什么了?#short #angel #clown
00:34
Super Beauty team
Рет қаралды 35 МЛН
Викторина от МАМЫ 🆘 | WICSUR #shorts
00:58
Бискас
Рет қаралды 6 МЛН
SQL Injection (Do Ataque a Prevenção) // Dicionário do Programador
16:27
SOLID (O básico para você programar melhor) // Dicionário do Programador
16:22
THIS IS HOW hackers manage to break into a computer...
12:58
Redes com Ricardo
Рет қаралды 2,4 М.
Scrum // Dicionário do Programador
17:19
Código Fonte TV
Рет қаралды 158 М.
ТЫ С ДРУГОМ В ДЕТСТВЕ😂#shorts
01:00
BATEK_OFFICIAL
Рет қаралды 10 МЛН