SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
CLEAN CODE
Código sujo
Você já foi impedido de programar bem
por conta de um código sujo/ruim?
Código sujo
● Areia movediça - Quanto mais mexe mais se
afunda
Código sujo
Porque escrevemos código sujo?
● Você estava tentando entregar resultados muito rápidos.
● Você percebeu que não daria tempo de entregar um bom trabalho,
então entregou qualquer coisa.
● Você já estava de saco cheio da tarefa e concluiu de qualquer forma
somente para pegar uma próxima tarefa mais interessante..
● Os requisitos mudaram ao longo do caminho.
● Seu chefe não entende o que você faz, o cliente muito menos e só
reclamam do seu trabalho.
Código sujo
No que um código sujo influência?
● Lentidão
● Uma alteração = Várias falhas
● Remendo em cima de remendo
● Afetada a produtividade
● Necessita de maior tempo dedicado
● Difícil compreensão
● Baixa coesão
Código sujo
De quem é a culpa?
Código sujo
De quem é a culpa?
SUA
MINHA
NOSSA
Código sujo
De quem é a culpa?
SUA
MINHA
NOSSA
Você vai programar como amador ou como profissional?
Código Limpo
Mas, o que é Código Limpo/Clean Code?
Código Limpo
● Clean code é uma prática de escrita de código
Mas, o que é Código Limpo/Clean Code?
Código Limpo
● Clean code é uma prática de escrita de código
● Facilita a leitura
Mas, o que é Código Limpo/Clean Code?
Código Limpo
● Clean code é uma prática de escrita de código
● Facilita a leitura
● Facilita a manutenabilidade
Mas, o que é Código Limpo/Clean Code?
Código Limpo
● Clean code é uma prática de escrita de código
● Facilita a leitura
● Facilita a manutenabilidade
● Facilita entendimento
Mas, o que é Código Limpo/Clean Code?
● Clean code é uma prática de escrita de código
● Facilita a leitura
● Facilita a manutenabilidade
● Facilita entendimento
● Mais rápido e mais produtivo
Código Limpo
Mas, o que é Código Limpo/Clean Code?
● Clean code é uma prática de escrita de código
● Facilita a leitura
● Facilita a manutenabilidade
● Facilita entendimento
● Mais rápido e mais produtivo
● Eficiente
Código Limpo
Mas, o que é Código Limpo/Clean Code?
● Clean code é uma prática de escrita de código
● Facilita a leitura
● Facilita a manutenabilidade
● Facilita entendimento
● Mais rápido e mais produtivo
● Eficiente
● Organizado
Código Limpo
Mas, o que é Código Limpo/Clean Code?
● Clean code é uma prática de escrita de código
● Facilita a leitura
● Facilita a manutenabilidade
● Facilita entendimento
● Mais rápido e mais produtivo
● Eficiente
● Organizado
● ‘‘Limpo’’ e bem escrito
Código Limpo
Mas, o que é Código Limpo/Clean Code?
Código Limpo
Código Sujo X Código Limpo
public Movimento save(Object objeto, Authentication authentication) {
UserDetail userAuthentication = authentication
.getUserFromAuthentication(authentication);
Movimento movimento = new Movimento(
userAuthentication,
objeto.nome,
objeto.valor,
objeto.propriedades);
servicoExterno.salvarMovimentoNumero(movimento.numero);
return repositorio.save(movimento);
}
Código Limpo
Código Sujo X Código Limpo
public Movimento saveAndReturnMovimento(Object x, Authentication a) {
/* salva mv */
//PEGA UM USUARIO AUTENTICADO
UserDetail u_usuario_auth_logado = authentication.getUserFromAuthentication(a);
UserDetail usuario_nome_Novo_1 =
outroServico.trocarNomeUsuarioAutenticadoLogado(u_usuario_auth_logado);
//INSTANCIA UM MOVIMENTO
Movimento mov1 = new Movimento();
//SETA MOVIMENTO
mov1.setUser(usuario_nome_Novo_1);
//mov1.setName(x.nome);
mov1.setValor(x.value);
//PROPRIEDADES
mov1.setPropert(x.prop);
System.out.println("MOVIMENTO SALVO");
System.out.println(mov1);
/* servico.deletar(mov1.num); */
servico.salvar(mov1.num);
Movimento movimento_que_vai_ser_salvo = repositorio.salve(mov1);
return movimento_que_vai_ser_salvo;
}
Código Limpo
Filosofia e alguns conceitos
Código Limpo
Filosofia e alguns conceitos
Código Limpo
Filosofia e alguns conceitos
1. Ordenação
Código Limpo
Filosofia e alguns conceitos
1. Ordenação
2. Sistematizar
Código Limpo
Filosofia e alguns conceitos
1. Ordenação
2. Sistematizar
3. Limpeza
Código Limpo
Filosofia e alguns conceitos
1. Ordenação
2. Sistematizar
3. Limpeza
4. Padronização
Código Limpo
Filosofia e alguns conceitos
1. Ordenação
2. Sistematizar
3. Limpeza
4. Padronização
5. Disciplina
Código Limpo
Filosofia e alguns conceitos
● Nomes são muito importantes
Código Limpo
Filosofia e alguns conceitos
● Nomes são muito importantes
● Comente somente o necessário, SE, precisar
ser comentado. (Seu código tem que ser auto-explicativo)
Código Limpo
Filosofia e alguns conceitos
● Nomes são muito importantes
● Comente somente o necessário, SE, precisar
ser comentado. (Seu código tem que ser auto-explicativo)
● DRY - Não repita código
Código Limpo
Filosofia e alguns conceitos
● Nomes são muito importantes
● Comente somente o necessário, SE, precisar
ser comentado. (Seu código tem que ser auto-explicativo)
● DRY - Não repita código
● Testes !!
Código Limpo
Filosofia e alguns conceitos
● Nomes são muito importantes
● Comente somente o necessário, SE, precisar
ser comentado. (Seu código tem que ser auto-explicativo)
● DRY - Não repita código
● Testes !!
○ Testes rápidos
○ Testes simples
○ Testes independentes
Código Limpo
Tenha orgulho do seu código!
“Um código limpo sempre parece que foi
escrito por alguém que se importava”
Michael Feathers
Código Limpo
Obrigado !
Livro Clean Code: A Handbook of Agile Software Craftsmanship , Robert C.
Martin - 10 ago 2008.
Serie CLEAN CODE - https://goo.gl/Ha4A64 Filipe Deschamps

Mais conteúdo relacionado

Semelhante a Código limpo vs sujo: conceitos e boas práticas

Introdução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingIntrodução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingPedro Pereira Martins
 
De Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindo
De Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindoDe Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindo
De Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindoAnna Cruz
 
Seja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoSeja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoAlexandre Andrade
 
TDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saberTDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saberCamilo Lopes
 
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreamsJacqueline Abreu
 
Teste sua aplicação antes que ela teste você
Teste sua aplicação antes que ela teste vocêTeste sua aplicação antes que ela teste você
Teste sua aplicação antes que ela teste vocêTiago Link
 
Software de qualidade e qualidade de código
Software de qualidade e qualidade de códigoSoftware de qualidade e qualidade de código
Software de qualidade e qualidade de códigoGuilherme Silveira
 
Apresentação WTM
Apresentação WTMApresentação WTM
Apresentação WTMAnna Cruz
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSprofjotamarcosduarte
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaRogerio Fontes
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atechcesarcneto
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Marcio Miyamoto
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In TubaRafael Paz
 
Legibilidade de código não é perfumaria
Legibilidade de código não é perfumariaLegibilidade de código não é perfumaria
Legibilidade de código não é perfumariaAriane Izac
 

Semelhante a Código limpo vs sujo: conceitos e boas práticas (20)

Refatoração de Código Legado
Refatoração de Código LegadoRefatoração de Código Legado
Refatoração de Código Legado
 
Introdução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingIntrodução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCasting
 
De Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindo
De Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindoDe Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindo
De Fred Krueger a Brad Pitt como melhorar o seu código e fazê-lo ficar lindo
 
Seja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoSeja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinho
 
TDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saberTDC 2012 TDD e 20 coisas que você precisa saber
TDC 2012 TDD e 20 coisas que você precisa saber
 
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
 
Teste sua aplicação antes que ela teste você
Teste sua aplicação antes que ela teste vocêTeste sua aplicação antes que ela teste você
Teste sua aplicação antes que ela teste você
 
Software de qualidade e qualidade de código
Software de qualidade e qualidade de códigoSoftware de qualidade e qualidade de código
Software de qualidade e qualidade de código
 
Apresentação WTM
Apresentação WTMApresentação WTM
Apresentação WTM
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
 
O que é ser um bom programador?
O que é ser um bom programador?O que é ser um bom programador?
O que é ser um bom programador?
 
DDD + BDD + TDD + Scrum
DDD + BDD + TDD + ScrumDDD + BDD + TDD + Scrum
DDD + BDD + TDD + Scrum
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atech
 
Clean Code
Clean CodeClean Code
Clean Code
 
Codigo limpo
Codigo limpoCodigo limpo
Codigo limpo
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
 
TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Clean Code - Fork In Tuba
Clean Code - Fork In TubaClean Code - Fork In Tuba
Clean Code - Fork In Tuba
 
Legibilidade de código não é perfumaria
Legibilidade de código não é perfumariaLegibilidade de código não é perfumaria
Legibilidade de código não é perfumaria
 

Código limpo vs sujo: conceitos e boas práticas

  • 2. Código sujo Você já foi impedido de programar bem por conta de um código sujo/ruim?
  • 3. Código sujo ● Areia movediça - Quanto mais mexe mais se afunda
  • 4. Código sujo Porque escrevemos código sujo? ● Você estava tentando entregar resultados muito rápidos. ● Você percebeu que não daria tempo de entregar um bom trabalho, então entregou qualquer coisa. ● Você já estava de saco cheio da tarefa e concluiu de qualquer forma somente para pegar uma próxima tarefa mais interessante.. ● Os requisitos mudaram ao longo do caminho. ● Seu chefe não entende o que você faz, o cliente muito menos e só reclamam do seu trabalho.
  • 5. Código sujo No que um código sujo influência? ● Lentidão ● Uma alteração = Várias falhas ● Remendo em cima de remendo ● Afetada a produtividade ● Necessita de maior tempo dedicado ● Difícil compreensão ● Baixa coesão
  • 6. Código sujo De quem é a culpa?
  • 7. Código sujo De quem é a culpa? SUA MINHA NOSSA
  • 8. Código sujo De quem é a culpa? SUA MINHA NOSSA Você vai programar como amador ou como profissional?
  • 9. Código Limpo Mas, o que é Código Limpo/Clean Code?
  • 10. Código Limpo ● Clean code é uma prática de escrita de código Mas, o que é Código Limpo/Clean Code?
  • 11. Código Limpo ● Clean code é uma prática de escrita de código ● Facilita a leitura Mas, o que é Código Limpo/Clean Code?
  • 12. Código Limpo ● Clean code é uma prática de escrita de código ● Facilita a leitura ● Facilita a manutenabilidade Mas, o que é Código Limpo/Clean Code?
  • 13. Código Limpo ● Clean code é uma prática de escrita de código ● Facilita a leitura ● Facilita a manutenabilidade ● Facilita entendimento Mas, o que é Código Limpo/Clean Code?
  • 14. ● Clean code é uma prática de escrita de código ● Facilita a leitura ● Facilita a manutenabilidade ● Facilita entendimento ● Mais rápido e mais produtivo Código Limpo Mas, o que é Código Limpo/Clean Code?
  • 15. ● Clean code é uma prática de escrita de código ● Facilita a leitura ● Facilita a manutenabilidade ● Facilita entendimento ● Mais rápido e mais produtivo ● Eficiente Código Limpo Mas, o que é Código Limpo/Clean Code?
  • 16. ● Clean code é uma prática de escrita de código ● Facilita a leitura ● Facilita a manutenabilidade ● Facilita entendimento ● Mais rápido e mais produtivo ● Eficiente ● Organizado Código Limpo Mas, o que é Código Limpo/Clean Code?
  • 17. ● Clean code é uma prática de escrita de código ● Facilita a leitura ● Facilita a manutenabilidade ● Facilita entendimento ● Mais rápido e mais produtivo ● Eficiente ● Organizado ● ‘‘Limpo’’ e bem escrito Código Limpo Mas, o que é Código Limpo/Clean Code?
  • 18. Código Limpo Código Sujo X Código Limpo public Movimento save(Object objeto, Authentication authentication) { UserDetail userAuthentication = authentication .getUserFromAuthentication(authentication); Movimento movimento = new Movimento( userAuthentication, objeto.nome, objeto.valor, objeto.propriedades); servicoExterno.salvarMovimentoNumero(movimento.numero); return repositorio.save(movimento); }
  • 19. Código Limpo Código Sujo X Código Limpo public Movimento saveAndReturnMovimento(Object x, Authentication a) { /* salva mv */ //PEGA UM USUARIO AUTENTICADO UserDetail u_usuario_auth_logado = authentication.getUserFromAuthentication(a); UserDetail usuario_nome_Novo_1 = outroServico.trocarNomeUsuarioAutenticadoLogado(u_usuario_auth_logado); //INSTANCIA UM MOVIMENTO Movimento mov1 = new Movimento(); //SETA MOVIMENTO mov1.setUser(usuario_nome_Novo_1); //mov1.setName(x.nome); mov1.setValor(x.value); //PROPRIEDADES mov1.setPropert(x.prop); System.out.println("MOVIMENTO SALVO"); System.out.println(mov1); /* servico.deletar(mov1.num); */ servico.salvar(mov1.num); Movimento movimento_que_vai_ser_salvo = repositorio.salve(mov1); return movimento_que_vai_ser_salvo; }
  • 20. Código Limpo Filosofia e alguns conceitos
  • 21. Código Limpo Filosofia e alguns conceitos
  • 22. Código Limpo Filosofia e alguns conceitos 1. Ordenação
  • 23. Código Limpo Filosofia e alguns conceitos 1. Ordenação 2. Sistematizar
  • 24. Código Limpo Filosofia e alguns conceitos 1. Ordenação 2. Sistematizar 3. Limpeza
  • 25. Código Limpo Filosofia e alguns conceitos 1. Ordenação 2. Sistematizar 3. Limpeza 4. Padronização
  • 26. Código Limpo Filosofia e alguns conceitos 1. Ordenação 2. Sistematizar 3. Limpeza 4. Padronização 5. Disciplina
  • 27. Código Limpo Filosofia e alguns conceitos ● Nomes são muito importantes
  • 28. Código Limpo Filosofia e alguns conceitos ● Nomes são muito importantes ● Comente somente o necessário, SE, precisar ser comentado. (Seu código tem que ser auto-explicativo)
  • 29. Código Limpo Filosofia e alguns conceitos ● Nomes são muito importantes ● Comente somente o necessário, SE, precisar ser comentado. (Seu código tem que ser auto-explicativo) ● DRY - Não repita código
  • 30. Código Limpo Filosofia e alguns conceitos ● Nomes são muito importantes ● Comente somente o necessário, SE, precisar ser comentado. (Seu código tem que ser auto-explicativo) ● DRY - Não repita código ● Testes !!
  • 31. Código Limpo Filosofia e alguns conceitos ● Nomes são muito importantes ● Comente somente o necessário, SE, precisar ser comentado. (Seu código tem que ser auto-explicativo) ● DRY - Não repita código ● Testes !! ○ Testes rápidos ○ Testes simples ○ Testes independentes
  • 32. Código Limpo Tenha orgulho do seu código! “Um código limpo sempre parece que foi escrito por alguém que se importava” Michael Feathers
  • 33. Código Limpo Obrigado ! Livro Clean Code: A Handbook of Agile Software Craftsmanship , Robert C. Martin - 10 ago 2008. Serie CLEAN CODE - https://goo.gl/Ha4A64 Filipe Deschamps