Passos para se ter um projeto com


Qualidade

Willian Justen


Desenvolvedor

GloboEsporte

As vezes eu escrevo...

willianjusten.com.br

E faço código open source também...

github.com/willianjusten

O que é Qualidade?

Visão do cliente

  • Bonito
  • Tudo Funcionando
  • Barato

Visão do chefe

  • Não demora muito
  • Gera lucros
  • Cliente feliz

Visão do programador

Qualidade de Software
McCall

Operação

  • Corretitude - Ele faz o que foi pedido?
  • Confiabilidade - Ele é preciso?
  • Eficiência - Ele tem boa performance?
  • Integridade - Oferece segurança?
  • Usabilidade - Fácil de usar?
  • Adaptabilidade - Ele se adapta as necessidades do usuário?

Transição

  • Portabilidade - Consigo movê-lo facilmente?
  • Reusabilidade - Posso utilizar parte dele?
  • Interoperabilidade - Ele trabalha com outros sofwares em conjunto?

Revisão

  • Manutenibilidade - Fácil de corrigir?
  • Flexibilidade - Fácil de mudar?
  • Testabilidade - Posso testar seu funcionamento?

Como atingir esses fatores no Desenvolvimento?

#1

Tenha bom senso!

Escrita do código - variáveis

  • Utilize nomes semânticos. - Nada de variável "a"
  • Nomes fáceis de escrever e ler. - Muito menos "xkttfjzyal"
  • Use substantivos para classes e objetos. - User, Product
  • Use verbos para métodos. - getUser, deleteProduct

Escrita do código - métodos

  • Devem ser pequenos.
  • Possuir uma única responsabilidade.
  • Permitir reuso.
  • Fácilmente testáveis.

#2

Don't comment bad code, rewrite it.

P. J. Plaugher

#3

Deixe a área de acampamento mais limpa do que encontrou.

#4

Tenha carinho no início

Ou

Conviva com os débitos técnicos.

#5

Faça testes!

Quem aqui faz testes?

Por que testar?

  • Ajuda a encontrar bugs.
  • Facilita refatoração.
  • Gera documentação.
  • Melhora o design do código.
  • Garante que o trabalho tenha qualidade.

TDD

Microtests

Um microteste é um simples e pequeno teste automatizado que prova o comportamento de um único método.

  • Evite ruído entre os testes (Isolamento).
  • Escolha os melhores asserts para cada momento.
  • Procure usar Mocks para chamadas externas.
  • Utilize dele para organizar o design de seu código.

Testes de Integração

É um teste para validar se os componentes estão funcionando em conjunto.

  • Cuidado para não criar um teste inútil.
  • Isole o máximo possível dos ambientes.

Testes de Aceitação

O teste de aceitação é realizado com o propósito de avaliar a qualidade externa do produto e, na medida do possível, também a qualidade em uso.

  • Valide apenas o fluxo de funcionamento do projeto.

#6

Baby Steps

Obrigado

bit.ly/imasters-2015