Seu App a prova de
gambiarras (ou não)
Ferramentas de validação de código
Christiane Morais
Android Developer @ Concrete Solutions
@ChrisCirce
Chris.morais2
christianemorais
Tópicos
● Boas práticas de programação
● Padronização
● Code-Review
● Testes
● Ferramentas
● #Comofaz
● Bibliografia
Boas Práticas
de
Programação
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?
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 :/ )
Padronização
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!
Code-Review
Code-Review
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!
Code-Review
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!
Testes o/
(Sim, de novo)
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!
Ferramentas
● Android Lint
● Checkstyle
● FindBugs
● SonarQube
Checkstyle
O 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 {}.
Android Lint
Essa é a ferramenta mais simples de se utilizar.
1. Execute o comando no terminal: ./gradlew lint
2. 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.
Findbugs
Identifica 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
SonarQube
#ComoFaz
#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. :)
#Checkstyle
Para ativar o checkstyle é necessário criar uma task customizada no gradle:
#Checkstyle
Agora você precisa configurar o .xml com as regras de validação:
Bibliografia
Bibliografia
● 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
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 validaSPção de código

  • 1.
    Seu App aprova de gambiarras (ou não) Ferramentas de validação de código
  • 2.
    Christiane Morais Android Developer@ Concrete Solutions @ChrisCirce Chris.morais2 christianemorais
  • 3.
    Tópicos ● Boas práticasde programação ● Padronização ● Code-Review ● Testes ● Ferramentas ● #Comofaz ● Bibliografia
  • 4.
  • 5.
    Boas Práticas deProgramaçã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?
  • 6.
    Boas Práticas de Programação Ogoogle 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 :/ )
  • 8.
  • 10.
    Padronização ● Identifiqueos 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!
  • 11.
  • 12.
    Code-Review Code-review é umadas 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!
  • 13.
    Code-Review O que deveser 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!
  • 14.
  • 16.
    Testes Testes são umaparte 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!
  • 17.
    Ferramentas ● Android Lint ●Checkstyle ● FindBugs ● SonarQube
  • 18.
    Checkstyle O 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 {}.
  • 19.
    Android Lint Essa éa ferramenta mais simples de se utilizar. 1. Execute o comando no terminal: ./gradlew lint 2. 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.
  • 20.
    Findbugs Identifica código Javaque são passíveis de bugs. Algumas categorias de bugs avaliadas: ● Bad Practice ● Malicious code vulnerability ● Multithreaded correctness ● Performance ● Security ● Dodgy code
  • 21.
  • 22.
  • 23.
    #ComoFaz Basicamente você precisade um conhecimento básico de Gradle, mas não se desespere a documentação deles é muito simples de ser seguida. :)
  • 25.
    #Checkstyle Para ativar ocheckstyle é necessário criar uma task customizada no gradle:
  • 26.
    #Checkstyle Agora você precisaconfigurar o .xml com as regras de validação:
  • 27.
  • 28.
    Bibliografia ● 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