SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
Escreva Código para Pessoas Além de
Máquinas
Edlaine Zamora
Thalita Gomes
Sobre nós
Desenvolvedora de Software na ThoughtWorks
Formada em Informática pela Universidade Estadual de
Maringá
Especializada em Desenvolvimento Web pela Universidade
Estadual de Maringá
Experiência de 6 anos de desenvolvimento de software
@EdlaineZamora
Sobre nós
Deva na ThoughtWorks =)
Formada em Sistemas de Informação pela Universidade
Federal dos Vales do Jequitinhonha e Mucuri
Especializada em Gestão de Projetos Ágeis
Experiência de 6 anos de desenvolvimento de software
@ThalitaPinheiro
Por que devemos
escrever um bom
código?
Por que devemos escrever um bom código?
Escreva código para Pessoas além de Máquinas
Por que devemos escrever um bom código?
Escreva código para Pessoas além de Máquinas
Equipe
escreve
código ruim
Fica irritante
qualquer
alteração no
código
É solicitado o
replanejamento
do software
Uma nova
equipe é
selecionada
para isso
Por que devemos escrever um bom código?
Teoria da Janela Quebrada
Escreva código para Pessoas além de Máquinas
O que é um bom
código?
O que é um bom código?
Escreva código para Pessoas além de Máquinas
O que é um bom código?
Escreva código para Pessoas além de Máquinas
O que é um bom código?
Escreva código para Pessoas além de Máquinas
O que é um bom código?
Escreva código para Pessoas além de Máquinas
O que é um bom código?
Escreva código para Pessoas além de Máquinas
"É elegante, eficiente, simples, possui lógica direta, poucas
dependências, um bom tratamento de erro, abstrações claras, contém
apenas o necessário, possui testes automatizados, pode ser alterado com
facilidade, possui nomes significativos, possuem métodos e objetos que
fazem apenas uma tarefa, não possui nada de óbvio para ser melhorado.
Pode ser lido de forma natural, possui alta expressividade e parece que foi
escrito por alguém que se importa."
Tio Bob (Robert C. Martin)
Ok, mas como
podemos fazer um
código assim?
Como podemos escrever um bom código?
Utilize a Regra do Escoteiro
Deixe a área do acampamento mais limpa do que como você a encontrou!
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Escreva Nomes Significativos
Variáveis, funções, parâmetros, classes,
pacotes, arquivos fontes, diretórios, etc.
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Escreva Nomes Significativos
Escreva nomes com fácil pronúncia
❖ Ex: generation date, year, month, day, hour, minute e second)
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Escreva Nomes Significativos
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Escreva Boas Funções
Escreva funções:
❖ Pequenas
❖ Sem estruturas aninhadas
❖ Que faça apenas uma coisa
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Escreva Boas Funções
Mantenha o menor número de parâmetros possível
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Escreva Boas Funções
Cuidado com "Efeitos Colaterais"
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Escreva Boas Funções
Evite duplicações
❖ A duplicação pode ser a raiz de todo o mal no software
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Escreva Boas Funções
Porém…
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Escreva Boas Funções
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Evite Escrever Comentários
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Evite Escrever Comentários
"Não insira comentários em um código ruim, reescreva-o"
(Brian W. KErnighan e P.J. Plaugher)
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Evite Escrever Comentários
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Evite Escrever Comentários
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Comentários em Códigos Público
❖ Se o código é público, uma biblioteca por exemplo, escrever um bom Javadoc é
essencial para sua utilização
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Faça uma Boa Formatação
❖ A formatação do código é importante
❖ Serve como comunicação
○ Cada linha representa uma expressão ou estrutura
○ Cada grupo de linhas representa um pensamento completo
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Faça uma Boa Formatação
E o mais importante...
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Faça uma Boa Formatação combinada com a Equipe
❖ Cada desenvolvedor(a) tem suas regras de formatação preferidas
❖ Se for trabalhar em equipe, as regras são delas
○ O software precisa ter uma formatação consistente
○ A última coisa que precisamos é adicionar mais complexidade ao código
programando-o com um monte de estilo diferente
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Saiba Diferenciar Estrutura de dados de Objetos
As estruturas de dados expõem seus
dados e não possuem funções significativas
Escreva código para Pessoas além de Máquinas
Estrutura de
dados
Como podemos escrever um bom código?
Saiba Diferenciar Estrutura de dados de Objetos
Os objetos usam abstrações para esconder
seus dados, e expõem as funções que operam
em tais dados
Escreva código para Pessoas além de Máquinas
Estrutura de
dados
Como podemos escrever um bom código?
Faça um Bom Tratamento de Erro
❖ Retornar código de erro é uma violação da separação comando-consulta
○ Ex.: if (deletePage(page) == E_OK) {...}
❖ Além disso, o chamador da função é obrigado a lidar imediatamente com o erro
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Faça um Bom Tratamento de Erro
❖ A exceção deve fornecer o contexto suficiente para determinar a fonte e a localização de
um erro
❖ Crie mensagem de erro informativa e a passe juntamente com a exceção
❖ Mencione a operação que falhou e o tipo de falha
Escreva código para Pessoas além de Máquinas
Escreva código para Pessoas além de Máquinas
Como podemos escrever um bom código?
Faça Testes Automatizados
❖ Teste deve ser mantido limpo
❖ Os testes devem ser legíveis
❖ E o que torna o teste legível?
○ Clareza
○ Simplicidade
○ Consistência de expressão
Escreva Código para Pessoas Além de Máquinas

Mais conteúdo relacionado

Semelhante a Escreva Código para Pessoas Além de Máquinas

Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...Edlaine Zamora
 
Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Thiago Barradas
 
Clean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareClean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareGabriel Felipe Soares
 
Code Smells: o que eles dizem sobre seu código?
Code Smells: o que eles dizem sobre seu código?Code Smells: o que eles dizem sobre seu código?
Code Smells: o que eles dizem sobre seu código?Elaine Naomi
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisRogerio Fontes
 
Princípios Básicos para Desenvolvedores
Princípios Básicos para DesenvolvedoresPrincípios Básicos para Desenvolvedores
Princípios Básicos para Desenvolvedoresguitoper
 
Caminho Do Desenvolvedor Amador Para o Profissional
Caminho Do Desenvolvedor Amador Para o ProfissionalCaminho Do Desenvolvedor Amador Para o Profissional
Caminho Do Desenvolvedor Amador Para o ProfissionalGiovanni Bassi
 
Carreira em Desenvolvimento de Software
Carreira em Desenvolvimento de SoftwareCarreira em Desenvolvimento de Software
Carreira em Desenvolvimento de SoftwareFlávio de Sousa
 
Previsibilidade em desenvolvimento de software
Previsibilidade em desenvolvimento de softwarePrevisibilidade em desenvolvimento de software
Previsibilidade em desenvolvimento de softwareDenis Ferrari
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento4Soft
 
Vendedores grátis consult - 20120213 - Curitiba
Vendedores grátis   consult - 20120213 - CuritibaVendedores grátis   consult - 20120213 - Curitiba
Vendedores grátis consult - 20120213 - CuritibaFernando Misato
 
Clean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimentoClean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimentoPaulo Henrique da Silva
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehaveMarcelo Zeferino
 
#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
 

Semelhante a Escreva Código para Pessoas Além de Máquinas (20)

Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
Compilar Não Basta: Escreva código para pessoas e não apenas para máquinas - ...
 
Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017
 
Clean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareClean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de Software
 
Clean Code
Clean CodeClean Code
Clean Code
 
O que é ser um bom programador?
O que é ser um bom programador?O que é ser um bom programador?
O que é ser um bom programador?
 
Code Smells: o que eles dizem sobre seu código?
Code Smells: o que eles dizem sobre seu código?Code Smells: o que eles dizem sobre seu código?
Code Smells: o que eles dizem sobre seu código?
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everis
 
Microsoft C#
Microsoft C#Microsoft C#
Microsoft C#
 
Princípios Básicos para Desenvolvedores
Princípios Básicos para DesenvolvedoresPrincípios Básicos para Desenvolvedores
Princípios Básicos para Desenvolvedores
 
Caminho Do Desenvolvedor Amador Para o Profissional
Caminho Do Desenvolvedor Amador Para o ProfissionalCaminho Do Desenvolvedor Amador Para o Profissional
Caminho Do Desenvolvedor Amador Para o Profissional
 
Carreira em Desenvolvimento de Software
Carreira em Desenvolvimento de SoftwareCarreira em Desenvolvimento de Software
Carreira em Desenvolvimento de Software
 
Previsibilidade em desenvolvimento de software
Previsibilidade em desenvolvimento de softwarePrevisibilidade em desenvolvimento de software
Previsibilidade em desenvolvimento de software
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento
 
Vendedores grátis consult - 20120213 - Curitiba
Vendedores grátis   consult - 20120213 - CuritibaVendedores grátis   consult - 20120213 - Curitiba
Vendedores grátis consult - 20120213 - Curitiba
 
Clean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimentoClean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimento
 
Behaviour driven development, com jbehave
Behaviour driven development, com jbehaveBehaviour driven development, com jbehave
Behaviour driven development, com jbehave
 
TDD com Clean Code: Chega de amadorismo!
TDD com Clean Code: Chega de amadorismo!TDD com Clean Code: Chega de amadorismo!
TDD com Clean Code: Chega de amadorismo!
 
Código limpo
Código limpoCódigo limpo
Código limpo
 
#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
 
Clean code
Clean codeClean code
Clean code
 

Escreva Código para Pessoas Além de Máquinas

  • 1. Escreva Código para Pessoas Além de Máquinas Edlaine Zamora Thalita Gomes
  • 2. Sobre nós Desenvolvedora de Software na ThoughtWorks Formada em Informática pela Universidade Estadual de Maringá Especializada em Desenvolvimento Web pela Universidade Estadual de Maringá Experiência de 6 anos de desenvolvimento de software @EdlaineZamora
  • 3. Sobre nós Deva na ThoughtWorks =) Formada em Sistemas de Informação pela Universidade Federal dos Vales do Jequitinhonha e Mucuri Especializada em Gestão de Projetos Ágeis Experiência de 6 anos de desenvolvimento de software @ThalitaPinheiro
  • 4. Por que devemos escrever um bom código?
  • 5. Por que devemos escrever um bom código? Escreva código para Pessoas além de Máquinas
  • 6. Por que devemos escrever um bom código? Escreva código para Pessoas além de Máquinas Equipe escreve código ruim Fica irritante qualquer alteração no código É solicitado o replanejamento do software Uma nova equipe é selecionada para isso
  • 7. Por que devemos escrever um bom código? Teoria da Janela Quebrada Escreva código para Pessoas além de Máquinas
  • 8. O que é um bom código?
  • 9. O que é um bom código? Escreva código para Pessoas além de Máquinas
  • 10. O que é um bom código? Escreva código para Pessoas além de Máquinas
  • 11. O que é um bom código? Escreva código para Pessoas além de Máquinas
  • 12. O que é um bom código? Escreva código para Pessoas além de Máquinas
  • 13. O que é um bom código? Escreva código para Pessoas além de Máquinas "É elegante, eficiente, simples, possui lógica direta, poucas dependências, um bom tratamento de erro, abstrações claras, contém apenas o necessário, possui testes automatizados, pode ser alterado com facilidade, possui nomes significativos, possuem métodos e objetos que fazem apenas uma tarefa, não possui nada de óbvio para ser melhorado. Pode ser lido de forma natural, possui alta expressividade e parece que foi escrito por alguém que se importa." Tio Bob (Robert C. Martin)
  • 14. Ok, mas como podemos fazer um código assim?
  • 15. Como podemos escrever um bom código? Utilize a Regra do Escoteiro Deixe a área do acampamento mais limpa do que como você a encontrou! Escreva código para Pessoas além de Máquinas
  • 16. Como podemos escrever um bom código? Escreva Nomes Significativos Variáveis, funções, parâmetros, classes, pacotes, arquivos fontes, diretórios, etc. Escreva código para Pessoas além de Máquinas
  • 17. Como podemos escrever um bom código? Escreva Nomes Significativos Escreva nomes com fácil pronúncia ❖ Ex: generation date, year, month, day, hour, minute e second) Escreva código para Pessoas além de Máquinas
  • 18. Como podemos escrever um bom código? Escreva Nomes Significativos Escreva código para Pessoas além de Máquinas
  • 19. Como podemos escrever um bom código? Escreva Boas Funções Escreva funções: ❖ Pequenas ❖ Sem estruturas aninhadas ❖ Que faça apenas uma coisa Escreva código para Pessoas além de Máquinas
  • 20. Como podemos escrever um bom código? Escreva Boas Funções Mantenha o menor número de parâmetros possível Escreva código para Pessoas além de Máquinas
  • 21. Como podemos escrever um bom código? Escreva Boas Funções Cuidado com "Efeitos Colaterais" Escreva código para Pessoas além de Máquinas
  • 22. Como podemos escrever um bom código? Escreva Boas Funções Evite duplicações ❖ A duplicação pode ser a raiz de todo o mal no software Escreva código para Pessoas além de Máquinas
  • 23. Como podemos escrever um bom código? Escreva Boas Funções Porém… Escreva código para Pessoas além de Máquinas
  • 24. Como podemos escrever um bom código? Escreva Boas Funções Escreva código para Pessoas além de Máquinas
  • 25. Como podemos escrever um bom código? Evite Escrever Comentários Escreva código para Pessoas além de Máquinas
  • 26. Como podemos escrever um bom código? Evite Escrever Comentários "Não insira comentários em um código ruim, reescreva-o" (Brian W. KErnighan e P.J. Plaugher) Escreva código para Pessoas além de Máquinas
  • 27. Como podemos escrever um bom código? Evite Escrever Comentários Escreva código para Pessoas além de Máquinas
  • 28. Como podemos escrever um bom código? Evite Escrever Comentários Escreva código para Pessoas além de Máquinas
  • 29. Como podemos escrever um bom código? Comentários em Códigos Público ❖ Se o código é público, uma biblioteca por exemplo, escrever um bom Javadoc é essencial para sua utilização Escreva código para Pessoas além de Máquinas
  • 30. Como podemos escrever um bom código? Faça uma Boa Formatação ❖ A formatação do código é importante ❖ Serve como comunicação ○ Cada linha representa uma expressão ou estrutura ○ Cada grupo de linhas representa um pensamento completo Escreva código para Pessoas além de Máquinas
  • 31. Como podemos escrever um bom código? Faça uma Boa Formatação E o mais importante... Escreva código para Pessoas além de Máquinas
  • 32. Como podemos escrever um bom código? Faça uma Boa Formatação combinada com a Equipe ❖ Cada desenvolvedor(a) tem suas regras de formatação preferidas ❖ Se for trabalhar em equipe, as regras são delas ○ O software precisa ter uma formatação consistente ○ A última coisa que precisamos é adicionar mais complexidade ao código programando-o com um monte de estilo diferente Escreva código para Pessoas além de Máquinas
  • 33. Como podemos escrever um bom código? Saiba Diferenciar Estrutura de dados de Objetos As estruturas de dados expõem seus dados e não possuem funções significativas Escreva código para Pessoas além de Máquinas Estrutura de dados
  • 34. Como podemos escrever um bom código? Saiba Diferenciar Estrutura de dados de Objetos Os objetos usam abstrações para esconder seus dados, e expõem as funções que operam em tais dados Escreva código para Pessoas além de Máquinas Estrutura de dados
  • 35. Como podemos escrever um bom código? Faça um Bom Tratamento de Erro ❖ Retornar código de erro é uma violação da separação comando-consulta ○ Ex.: if (deletePage(page) == E_OK) {...} ❖ Além disso, o chamador da função é obrigado a lidar imediatamente com o erro Escreva código para Pessoas além de Máquinas
  • 36. Como podemos escrever um bom código? Faça um Bom Tratamento de Erro ❖ A exceção deve fornecer o contexto suficiente para determinar a fonte e a localização de um erro ❖ Crie mensagem de erro informativa e a passe juntamente com a exceção ❖ Mencione a operação que falhou e o tipo de falha Escreva código para Pessoas além de Máquinas
  • 37. Escreva código para Pessoas além de Máquinas Como podemos escrever um bom código? Faça Testes Automatizados ❖ Teste deve ser mantido limpo ❖ Os testes devem ser legíveis ❖ E o que torna o teste legível? ○ Clareza ○ Simplicidade ○ Consistência de expressão