29
Seu App a prova de gambiarras (ou não) Ferramentas de validação de código

Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Embed Size (px)

Citation preview

Page 1: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Seu App a prova de gambiarras (ou não)

Ferramentas de validação de código

Page 2: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Christiane MoraisAndroid Developer @ Concrete Solutions

@ChrisCirce Chris.morais2 christianemorais

Page 3: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Tópicos

● Boas práticas de programação● Padronização● Code-Review● Testes● Ferramentas● #Comofaz● Bibliografia

Page 4: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Boas Práticas de Programação

Page 5: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Boas Práticas de Programação

Algumas boas práticas de programação são válidas para qualquer linguagem.

● Métodos com responsabilidade única● Evitar classes gigantes. Separe responsabilidades● Não Copie e Cole!● Nomes de classe, métodos e variáveis que façam sentido. Nada de usar, x, x1, a, var…● Usar try catch corretamente● Tratamento de strings adequado● Performance na leitura de listas● Já ouviram falar de SOLID?

Page 6: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Boas Práticas de Programação

O google possui um Guideline para código Java e um para Android.

O Guideline mais recomendado a ser seguido é o de Java. (O de Android recomenda usar notação Húngara :/ )

Page 7: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Page 8: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Padronização

Page 9: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Page 10: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Padronização ● Identifique os padrões já existentes no seu projeto○ Documente

● Levante padrões utilizados pela comunidade.○ Discuta-os com seus amiguinhos○ Aplique os que forem aprovados no seu projeto○ Documente

● E Documente!

Page 11: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Code-Review

Page 12: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Code

-Rev

iew Code-review é uma das técnicas utilizadas para avaliar a

qualidade do código a ser adicionada no projeto. O ideal é que quem desenvolveu a feature, não faça seu próprio code-review.

Fatores importantes:

● Não leve a avaliação como algo pessoal● Não avalie o código de forma pessoal● Tenha um checklist do que é avaliado no code-review● Siga o checklist!

Page 13: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Code

-Rev

iew O que deve ser avaliado no code-review:

● A utilização dos padrões adotados● Performance● Testes● Segurança● Estrutura de dados● SOLID● Boiler Plate● Validações não automatizáveis● Enfim: TUDO!

Page 14: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Testes \o/(Sim, de novo)

Page 15: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Page 16: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Testes

Testes são uma parte fundamental do desenvolvimento.

Somente com testes podemos garantir que uma alteração não afeta o que já foi feito e que um bug corrigido não irá se repetir.

Escrevam testes. Por favor!

Page 17: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Ferramentas

● Android Lint● Checkstyle● FindBugs● SonarQube

Page 18: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

CheckstyleO checkstyle é um plugin que se adiciona pelo Gradle que valida pontos de padronização de código java.

Alguns pontos que podem ser validados:

● Magic Number● Nome de método / Variável / Constantes● Indentação com Tab versus Espaço● Tamanho da linha● Espaçamento● O uso correto de {}.

Page 19: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Android Lint

Essa é a ferramenta mais simples de se utilizar.

1. Execute o comando no terminal: ./gradlew lint2. Um relatório .html será gerado no diretório:

app/build/outputs

O relatório mostra o erro, a gravidade e uma explicação detalhada do erro e como corrigir.

Page 20: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

FindbugsIdentifica código Java que são passíveis de bugs.

Algumas categorias de bugs avaliadas:

● Bad Practice● Malicious code vulnerability● Multithreaded correctness● Performance● Security● Dodgy code

Page 21: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

SonarQube

Page 22: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

#ComoFaz

Page 23: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

#ComoFaz

Basicamente você precisa de um conhecimento básico de Gradle, mas não se desespere a documentação deles é muito simples de ser seguida. :)

Page 24: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código
Page 25: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

#Checkstyle

Para ativar o checkstyle é necessário criar uma task customizada no gradle:

Page 26: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

#Checkstyle

Agora você precisa configurar o .xml com as regras de validação:

Page 27: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Bibliografia

Page 28: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código

Bibl

iogr

afia ● Android Lint: http://tools.android.com/tips/lint

● Checkstyle: http://checkstyle.sourceforge.net/● Findbugs: http://findbugs.sourceforge.net/● Google Styleguide: https://google.github.io/styleguide/javaguide.html● SonarQube: https://www.sonarqube.org/● What look for in a Code-Review (e-book gratis)

https://leanpub.com/whattolookforinacodereview● Espresso:

https://developer.android.com/training/testing/ui-testing/espresso-testing.html● Testes no Android com Espresso:

http://www.concretesolutions.com.br/2016/09/02/testes-android-espresso-1/● Gradle: https://gradle.org/● SOLID no Android - Marcello Galhardo:

https://www.youtube.com/watch?v=grW2uDOvzeU

Page 29: Seu app a prova de gambiarras (ou não) - Ferramentas de validaSPção de código