clean code

Download Clean code

Post on 15-Apr-2017

104 views

Category:

Technology

0 download

Embed Size (px)

TRANSCRIPT

  • Agenda

    Motivao Nomes significativos Funes Comentrios Formatao Tratamento de exceo Testes de unidade

  • Era uma vez em 1980...

  • Maiores intervalos entre lanamentos Bugs no eram corrigidos Cada vez mais travamentos

  • Alguns anos depois...

  • O custo de ter um cdigo confuso

  • Por que no fazer de novo?Afinal somos melhores doque quando comeamos

  • Sem comentrios

  • Escolhendo nomes significativos

  • Um bom nome precisa responder 3 perguntas:

    1. Por que existe?2. O que faz?3. Como usado?

  • Use nomes que revelem seu proposito

  • Cuidado para no passar informaes erradas!

  • Evite nomes sem significado

  • Outro exemplo

  • Use palavras pronunciveis

  • Notao Hngara

  • Notao Hngara

  • Funes

  • Funes devem ser:

    Pequenas Fazer apenas uma coisa Ser bem nomeadas Devem ser lidas de cima para baixo Extrair trechos para funes menores DRY

  • Cuidado com a quantidade de parmetros

    Qual a quantidade ideal de parmetros?ZERO

  • Mnades

    Geralmente perguntam ou transformam algo Evitar retornos void Evitar parmetros lgicos

  • Dades

    Sempre tentar transform-la em mnade Parmetros deve fazer parte do mesmo

    valor Cuidar a ordem dos parmetros

  • Trades

    Problemas:+ pausa+ ignorao+ dificuldade de manter a ordem

  • Comentrios

  • Comentrios geralmente:

    Mentem Desatualizam Imprecisos

    Porque o cdigo muda!

    Porque o cdigo muda!

    Porque o cdigo muda!

  • Uso de comentrios

    Esclarecimento Alerta de consequncia JavaDoc em API pblica Comentrio legal TODO

    Redundantes Longos HTML Explicando cdigo Ao lados de cada chave JavaDoc em API NO

    pblica Cdigo comentado

  • Formatao

  • Alguns cuidados:

    Manter o cdigo bem identado Distncia vertical Funo dependente Linha de no mximo 120 caracteres Classes devem tem o minimo de linhas

    possvel

  • Tratamento de excees

  • Excees Usar excees em vez de retornar cdigo de erro No pode obscurecer a lgica Criar testes que forcem a exceo Use excees no verificadas Lance excees com um contexto

  • No retorne NULL

  • No retorne NULL

    Diminui o nmero de NullPointerException

  • No passe NULL

  • Testes de Unidade

  • As 3 leis do TDD Voc no pode escrever cdigo de produo a menos que ele

    tenha um teste de unidade que falha.

    Voc no pode escrever mais teste de unidade que o suficiente para falhar; e erros de compilao so falhas.

    Voc no pode escrever mais que o suficiente, para o cdigo de produo passar em um teste de unidade.

  • Vantagens

    flexibilidade cdigo limpo passvel de mudanas feedback segurana maior produtividade

  • Testes = Cdigo

  • Classes

  • Como elas devem ser?

    Possuir nomes descritivos Pequenas SRP Alta coeso

  • O que SRP?

  • O que alta coeso?