O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Legibilidade de código não é perfumaria

Pensar em legibilidade vai além de ter simplesmente um código "bonitinho", é otimizar uma análise e entendimento e principalmente a evolução dele.

Trabalhando em um piloto de automação de testes de software percebemos na pele a importância de seguir boas práticas de escrita de código e como construções ruins oneravam nosso entendimento na análise\refactoring desses testes.

A ideia é trazer dicas de boas práticas que deixarão seu código mais claro e efetivo, baseado no aprendizado que tivemos e "dificultavam nossa vida".

Essa talk foi apresentada no TDC Porto Alegre 2019, trilha Design de Código.

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Legibilidade de código não é perfumaria

  1. 1. Legibilidade de código não é perfumaria
  2. 2. Alessandra Kajihara e Ariane Izac
  3. 3. CONTEXTO ● Piloto de Automação de Testes ● Objetivo: Evoluir a qualidade e cobertura de testes ● Maiores Dificuldades ○ Legibilidade do código ○ Construções complexas ○ Propósito do teste ○ Asserts incoerentes / ausência de asserts ○ Falsos positivos: Riscos na entrega
  4. 4. “Decifrar menos. Criar mais”
  5. 5. E o que é legibilidade?
  6. 6. LEGIBILIDADE ● Facilidade de leitura e entendimento ● Bem estruturado/formatado ● Minimizar margem para falsos positivos ● Fácil manutenção
  7. 7. 1. Convenção de Nome ● Padrões utilizado no Java ○ Camelcase ● Para o nome do teste, considere: ○ Claro, curto e objetivo ● Importante ○ Time alinhado com a convenção
  8. 8. ● Métodos muito grandes ○ Tornam-se complexos ○ Dificultam entendimento ● Reuso de código ○ Encapsulamento ○ Facilita manutenção 2. Atenção com Métodos
  9. 9. Original
  10. 10. Refatorado
  11. 11. Encapsulamento
  12. 12. ● Definição de domínios ● Facilita a leitura dos testes ● Enum próprio para o teste 3. Uso de Enums
  13. 13. Enum
  14. 14. 4. Data Driven Testing ○ O que é Data Driven? ■ Testes orientados a dados ■ Uso de matrizes (tabela-verdade) ○ Quando utilizar ■ Vários testes com o mesmo fluxo e dados diferentes de entrada e/ou saída ○ Como?
  15. 15. 5. Uso de DSL ● O que é DSL? ○ Domain Specific Language: Linguagem de domínio específico ○ Pequenas Linguagens - Resolve um problema específico ○ Camada de abstração ● Tipos de DSL ○ DSL Interna: Utiliza linguagem host ○ DSL Externa: Utiliza uma outranova linguagem para atender o domínio
  16. 16. ● Quando utilizar? ○ Casos complexos ○ Casos com muito reuso de código ● Como utilizar? ○ Linguagem de negócio ○ Encapsulamento do método ● Vantagens ○ Facilita o entendimento do código - Intuitivo ○ Aumenta a produtividade - manutenção 5. Uso de DSL
  17. 17. Estrutura DSL
  18. 18. E pra fechar... ● Legibilidade não é perfumaria ● Facilita entendimento ● Facilita a manutenção ● Deixa seu código limpo ● Adotar padrões ou diretrizes ○ Linguagem ○ Time
  19. 19. “Test code is just as important as production code…” Robert C. Martin - Clean Code
  20. 20. Analista de Testes Há 12 anos Ariane Izac Matera Systems Há 7 anos Blogueira Grupo no LinkedIN Diário de uma Paixão: Teste de Software CONTATOS Linkedin: Ariane Izac Email: afizac@gmail.com Twitter: @arianizac

    Seja o primeiro a comentar

    Entre para ver os comentários

Pensar em legibilidade vai além de ter simplesmente um código "bonitinho", é otimizar uma análise e entendimento e principalmente a evolução dele. Trabalhando em um piloto de automação de testes de software percebemos na pele a importância de seguir boas práticas de escrita de código e como construções ruins oneravam nosso entendimento na análise\refactoring desses testes. A ideia é trazer dicas de boas práticas que deixarão seu código mais claro e efetivo, baseado no aprendizado que tivemos e "dificultavam nossa vida". Essa talk foi apresentada no TDC Porto Alegre 2019, trilha Design de Código.

Vistos

Vistos totais

63

No Slideshare

0

De incorporações

0

Número de incorporações

0

Ações

Baixados

1

Compartilhados

0

Comentários

0

Curtir

0

×