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.
O QUE DEVO
PROCURAR EM UM
CODE REVIEW?
http://bit.ly/procurar-code-review
RODRIGO CASTRO
Desenvolvedor Android @ Concrete
Analista de Sistemas pela UFMS/CPCX.
De Coxim/MS para o mundo!
http://cast...
SUMÁRIO
•Projeto
•Legibilidade e Manutenibilidade
•Funcionalidade
•Testes
•Boas práticas de programação
•Code Review
•Ferr...
PROJETO
O novo código...
● se adequa a arquitetura existente?
● segue SOLID, DDD ou outro paradigma de projeto que o time adota?
●...
LEGIBILIDADE E
MANUTENIBILIDADE
LEGIBILIDADE E
MANUTENIBILIDADE
● Os nomes(campos, variáveis, parametros, métodos e classes) refletem
no que eles represen...
FUNCIONALIDADE
FUNCIONALIDADE
● O código realmente faz o que ele deveria fazer? Existem testes
automatizados para garantir se o código es...
TESTES
Pergunte para si mesmo
essas perguntas:
● Existe testes para esse novo código?
● Os testes cobrem pelo menos as partes con...
BOAS PRÁTICAS DE
PROGRAMAÇÃO
BOAS PRÁTICAS DE
PROGRAMAÇÃO
SOLID
DRY
Padrões de Projeto
Guidelines
SRP - The single responsibility principle - A class s...
BOAS PRÁTICAS DE
PROGRAMAÇÃO
SOLID
DRY
Padrões de Projeto
Guidelines
DRY – “Don’t Repeat Yourself” – suggests that writing...
BOAS PRÁTICAS DE
PROGRAMAÇÃO
SOLID
DRY
Padrões de Projeto
Guidelines
BOAS PRÁTICAS DE
PROGRAMAÇÃO
SOLID
DRY
Padrões de Projeto
Guidelines
"Any fool can write code that a computer can understand. Good
programmers write code that humans can understand.
MARTIN FO...
CODE REVIEW
CODE REVIEW
WIKI
Checklist
Tenha um documento que contenha todas as práticas
adotadas no seu projeto.
É um documento vivo,...
CODE REVIEW
WIKI
Checklist Categorize cada ponto que foram citados anteriormente,
e separe em uma checklist. Desta maneira...
http://www.osnews.com/story/19266/WTFs_m
FERRAMENTAS
FERRAMENTAS
Android Lint
Checkstyle
Findbugs
SonarQube
O Android Studio oferece uma ferramenta de verificação
de código de...
FERRAMENTAS
Android Lint
Checkstyle
Findbugs
SonarQube
Checkstyle é uma ferramenta de desenvolvimento para
ajudar os progr...
FERRAMENTAS
Android Lint
Checkstyle
Findbugs
SonarQube
FindBugs é um analisador de código estático de código
aberto criado...
FERRAMENTAS
Android Lint
Checkstyle
Findbugs
SonarQube
O SonarSource oferece o que provavelmente é o melhor
analisador de ...
CODEBASEMerge Requests /
Pull Requests
Autor
Conversa direta com o
desenvolvedor
WIKI e
Checklist
MR em avaliação
👎 ou 👍
DICAS DE LIVROS
BIBLIOGRAFIA
● https://leanpub.com/whattolookforinacodereview
● http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod
●...
OBRIGADO!
Centro
Av. Presidente Wilson,
231 - 29º andar
(21) 2240-2030
Cidade Monções
Av. Nações Unidas,
11.541 - 3º andar
(11) 4119...
O que devo procurar em um code review
O que devo procurar em um code review
O que devo procurar em um code review
O que devo procurar em um code review
O que devo procurar em um code review
Próximos SlideShares
Carregando em…5
×

de

O que devo procurar em um code review  Slide 1 O que devo procurar em um code review  Slide 2 O que devo procurar em um code review  Slide 3 O que devo procurar em um code review  Slide 4 O que devo procurar em um code review  Slide 5 O que devo procurar em um code review  Slide 6 O que devo procurar em um code review  Slide 7 O que devo procurar em um code review  Slide 8 O que devo procurar em um code review  Slide 9 O que devo procurar em um code review  Slide 10 O que devo procurar em um code review  Slide 11 O que devo procurar em um code review  Slide 12 O que devo procurar em um code review  Slide 13 O que devo procurar em um code review  Slide 14 O que devo procurar em um code review  Slide 15 O que devo procurar em um code review  Slide 16 O que devo procurar em um code review  Slide 17 O que devo procurar em um code review  Slide 18 O que devo procurar em um code review  Slide 19 O que devo procurar em um code review  Slide 20 O que devo procurar em um code review  Slide 21 O que devo procurar em um code review  Slide 22 O que devo procurar em um code review  Slide 23 O que devo procurar em um code review  Slide 24 O que devo procurar em um code review  Slide 25 O que devo procurar em um code review  Slide 26 O que devo procurar em um code review  Slide 27 O que devo procurar em um code review  Slide 28 O que devo procurar em um code review  Slide 29 O que devo procurar em um code review  Slide 30 O que devo procurar em um code review  Slide 31 O que devo procurar em um code review  Slide 32 O que devo procurar em um code review  Slide 33 O que devo procurar em um code review  Slide 34 O que devo procurar em um code review  Slide 35 O que devo procurar em um code review  Slide 36
Próximos SlideShares
What to Upload to SlideShare
Avançar
Transfira para ler offline e ver em ecrã inteiro.

0 gostaram

Compartilhar

Baixar para ler offline

O que devo procurar em um code review

Baixar para ler offline

Dicas de pontos importantes para serem analizados em um code review.

  • Seja a primeira pessoa a gostar disto

O que devo procurar em um code review

  1. 1. O QUE DEVO PROCURAR EM UM CODE REVIEW? http://bit.ly/procurar-code-review
  2. 2. RODRIGO CASTRO Desenvolvedor Android @ Concrete Analista de Sistemas pela UFMS/CPCX. De Coxim/MS para o mundo! http://castrors.github.io rodrigo.castro@concrete.com.br @rodrigocastro_o
  3. 3. SUMÁRIO •Projeto •Legibilidade e Manutenibilidade •Funcionalidade •Testes •Boas práticas de programação •Code Review •Ferramentas
  4. 4. PROJETO
  5. 5. O novo código... ● se adequa a arquitetura existente? ● segue SOLID, DDD ou outro paradigma de projeto que o time adota? ● utiliza padrões de projetos adequados? ● está no lugar certo? ● reutiliza algo já existente no projeto ou introduz duplicação de código? ● adiciona complexidade desnecessária?
  6. 6. LEGIBILIDADE E MANUTENIBILIDADE
  7. 7. LEGIBILIDADE E MANUTENIBILIDADE ● Os nomes(campos, variáveis, parametros, métodos e classes) refletem no que eles representam? ● É possível entender o que o código faz apenas lendo ele? ● É possível entender o que o teste faz? ● Os testes cobrem uma boa parte das classes? Ele cobre o caminho feliz e os casos excepcionais? Existem classes que não foram cobertas?
  8. 8. FUNCIONALIDADE
  9. 9. FUNCIONALIDADE ● O código realmente faz o que ele deveria fazer? Existem testes automatizados para garantir se o código está correto, se os testes realmente testam o código de acordo com os requisitos? ● O código contém algum bug, como acidentalmente trocar um ''&&'' por ''||''?
  10. 10. TESTES
  11. 11. Pergunte para si mesmo essas perguntas: ● Existe testes para esse novo código? ● Os testes cobrem pelo menos as partes confusas ou complicadas do código? ● Eu consigo entender os testes? (Robot Pattern - @jakewharton) ● Os testes verificam os requisitos? ● Eu consigo pensar em partes não cobertas do código que deveriam ser testadas? ● Existem testes para aspectos de segurança? ● Existem testes de performance?
  12. 12. BOAS PRÁTICAS DE PROGRAMAÇÃO
  13. 13. BOAS PRÁTICAS DE PROGRAMAÇÃO SOLID DRY Padrões de Projeto Guidelines SRP - The single responsibility principle - A class should have one, and only one, reason to change. OCP - The Open Closed Principle - You should be able to extend a classes behavior, without modifying it. LSP - The Liskov Substitution Principle - Derived classes must be substitutable for their base classes. ISP - The Interface Segregation Principle - Make fine grained interfaces that are client specific. DIP- The Dependency Inversion Principle - Depend on abstractions, not on concretions.
  14. 14. BOAS PRÁTICAS DE PROGRAMAÇÃO SOLID DRY Padrões de Projeto Guidelines DRY – “Don’t Repeat Yourself” – suggests that writing the same code over and over again is a bad thing.
  15. 15. BOAS PRÁTICAS DE PROGRAMAÇÃO SOLID DRY Padrões de Projeto Guidelines
  16. 16. BOAS PRÁTICAS DE PROGRAMAÇÃO SOLID DRY Padrões de Projeto Guidelines
  17. 17. "Any fool can write code that a computer can understand. Good programmers write code that humans can understand. MARTIN FOWLER, REFACTORING - 1999
  18. 18. CODE REVIEW
  19. 19. CODE REVIEW WIKI Checklist Tenha um documento que contenha todas as práticas adotadas no seu projeto. É um documento vivo, que pode e deve ser alterado constantemente, acompanhando a evolução do projeto. Deve estar sempre disponível aos desenvolvedores e revisores. Wiki? Livro? Etc.
  20. 20. CODE REVIEW WIKI Checklist Categorize cada ponto que foram citados anteriormente, e separe em uma checklist. Desta maneira facilitará tanto a vida do desenvolvedor na hora de criar um pull request quanto a vida do revisor ao verificar o que foi submetido.
  21. 21. http://www.osnews.com/story/19266/WTFs_m
  22. 22. FERRAMENTAS
  23. 23. FERRAMENTAS Android Lint Checkstyle Findbugs SonarQube O Android Studio oferece uma ferramenta de verificação de código denominada lint para ajudar a identificar e corrigir problemas com a qualidade estrutural do código, sem executar o aplicativo nem criar casos de teste. Gera um relatório .html o qual mostra o erro, gravidade, explicação detalhada e como corrigir.
  24. 24. FERRAMENTAS Android Lint Checkstyle Findbugs SonarQube Checkstyle é uma ferramenta de desenvolvimento para ajudar os programadores a escrever código Java que adira a um padrão de codificação. Ele automatiza o processo de verificação do código Java para poupar humanos dessa tarefa chata (mas importante). Isso o torna ideal para projetos que desejam impor um padrão de codificação. Pontos a serem validados: Magic Number, Nomenclatura (de métodos, variáveis, constantes), Identação, uso correto de chaves.
  25. 25. FERRAMENTAS Android Lint Checkstyle Findbugs SonarQube FindBugs é um analisador de código estático de código aberto criado por Bill Pugh e David Hovemeyer, que detecta possíveis erros em programas Java. Os erros potenciais são classificados em quatro categorias: (i) mais assustador, (ii) assustador, (iii) preocupante e (iv) de preocupação. Esta é uma pista para o desenvolvedor sobre o seu possível impacto ou gravidade. FindBugs opera em bytecode Java, em vez de código fonte. Categorias de bugs avaliadas: Bad Practice, Malicious code vunerability, Multitheaded correctness, Performance, Security, Dodgy code.
  26. 26. FERRAMENTAS Android Lint Checkstyle Findbugs SonarQube O SonarSource oferece o que provavelmente é o melhor analisador de código estático que você pode encontrar no mercado para Java. Com base no nosso próprio front-end do compilador Java, ele usa as técnicas mais avançadas (correspondência de padrões, análise de fluxo de dados) para analisar código e encontrar cheiros de código, bugs e vulnerabilidades de segurança. Quanto a qualquer produto que desenvolvamos no SonarSource, foi construído com os seguintes princípios: profundidade, precisão e velocidade.
  27. 27. CODEBASEMerge Requests / Pull Requests Autor Conversa direta com o desenvolvedor WIKI e Checklist MR em avaliação 👎 ou 👍
  28. 28. DICAS DE LIVROS
  29. 29. BIBLIOGRAFIA ● https://leanpub.com/whattolookforinacodereview ● http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod ● https://martinfowler.com/books/refactoring.html ● https://www.slideshare.net/ChristianeMoraisSilv ● http://wiki.c2.com/?GangOfFour ● https://source.android.com/source/code-style ● https://android.github.io/kotlin-guides/style.html ● https://developer.android.com/studio/write/lint.html ● http://checkstyle.sourceforge.net/index.html ● https://docs.gradle.org/current/userguide/checkstyle_plugin.html ● http://findbugs.sourceforge.net/ ● https://www.sonarqube.org/
  30. 30. OBRIGADO!
  31. 31. Centro Av. Presidente Wilson, 231 - 29º andar (21) 2240-2030 Cidade Monções Av. Nações Unidas, 11.541 - 3º andar (11) 4119-0449 Savassi Av. Getúlio Vargas, 671 Sala 800 - 8º andar (31) 3360-8900 www.concrete.com.b r

Dicas de pontos importantes para serem analizados em um code review.

Vistos

Vistos totais

409

No Slideshare

0

De incorporações

0

Número de incorporações

0

Ações

Baixados

5

Compartilhados

0

Comentários

0

Curtir

0

×