SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
Code Review
E um pouco de boas práticas.
Code Review
- Importância:
- Manter um padrão de qualidade nos códigos fontes;
- Evitar códigos repetidos (implementação de algo que já
existe);
- Evitar implementações desnecessárias;
- Melhorar eficiência dos algoritmos;
- Gantir que o código está suficientemente legível;
- Aprender e ensinar;
- etc.
Code Review
Para se fazer o code review, não necessariamente o revisor
deverá estar em dia do contexto da aplicação.
[OPINIÃO] O revisor, a princípio, deve ter apenas conhecimento
das tecnologias utilizadas e boas práticas sobre ela.
Nunca levar as correções para o lado pessoal.
Code Review
Por onde começar ?
- Legibilidade do código desenvolvido:
- Nomes de variáveis;
- Complexidade.
- Verificar bom uso dos frameworks/bibliotecas utilizados na
aplicação.
- Verificar Styleguide.
Code Review - Apontamentos
Os apontamentos nos códigos dos colegas devem ser, na grande
maioria das vezes, descritíveis.
Sempre que necessário, apontar soluções.
Boas práticas
Boas práticas #1
Evitar condicionais
extensas e complexas
dentro do IF.
Sempre que possível, criar
uma variável booleana
para melhorar a leitura.
Boas práticas #2
Diminuir complexidade ciclomática (quantidade de caminhos que
seu método/classe pode tomar até o seu fim).
Boas práticas #3
Métodos devem ser pequenos.
Tamanho máximo recomendado:
● Método <= 20 linhas
● Linha <= 100 caracteres (evitar o scroll horizontal)
● Classe <= 500 linhas
Boas práticas
Ler sobre refatoração e código limpo.
Resumo Clean Code:
http://eduardokurita.com/?p=34
Fim

Mais conteúdo relacionado

Semelhante a Code Review

Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshopguestd37c23
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmáticaelliando dias
 
Boas Práticas de Programação
Boas Práticas de ProgramaçãoBoas Práticas de Programação
Boas Práticas de ProgramaçãoPaulo Souza
 
Boas Práticas de Programação
Boas Práticas de ProgramaçãoBoas Práticas de Programação
Boas Práticas de ProgramaçãoCOTIC-PROEG (UFPA)
 
Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09 Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09 Inael Rodrigues
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
 
Como criar uma cultura de qualidade de código
Como criar uma cultura de qualidade de código Como criar uma cultura de qualidade de código
Como criar uma cultura de qualidade de código João Lethier
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorMarcos Pereira
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...minastestingconference
 
Compartilhando qualidade e conhecimento com code review
Compartilhando qualidade e conhecimento com code reviewCompartilhando qualidade e conhecimento com code review
Compartilhando qualidade e conhecimento com code reviewAntonio Spinelli
 
Testes de unidade - RP Tec Com
Testes de unidade - RP Tec ComTestes de unidade - RP Tec Com
Testes de unidade - RP Tec ComIgor Rozani
 
6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe muniz6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe munizMatheus de Lara Calache
 
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Gabriel Rubens
 
Utilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes UnitáriosUtilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes UnitáriosComunidade NetPonto
 

Semelhante a Code Review (20)

Refactory Worshop
Refactory WorshopRefactory Worshop
Refactory Worshop
 
Tdd On Rails
Tdd On RailsTdd On Rails
Tdd On Rails
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmática
 
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
 
Boas Práticas de Programação
Boas Práticas de ProgramaçãoBoas Práticas de Programação
Boas Práticas de Programação
 
Boas Práticas de Programação
Boas Práticas de ProgramaçãoBoas Práticas de Programação
Boas Práticas de Programação
 
Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09 Código Limpo: Testes de Unidade Capítulo 09
Código Limpo: Testes de Unidade Capítulo 09
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
Como criar uma cultura de qualidade de código
Como criar uma cultura de qualidade de código Como criar uma cultura de qualidade de código
Como criar uma cultura de qualidade de código
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao Sênior
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
A Arte do Código Limpo
A Arte do Código LimpoA Arte do Código Limpo
A Arte do Código Limpo
 
Compartilhando qualidade e conhecimento com code review
Compartilhando qualidade e conhecimento com code reviewCompartilhando qualidade e conhecimento com code review
Compartilhando qualidade e conhecimento com code review
 
Testes de unidade - RP Tec Com
Testes de unidade - RP Tec ComTestes de unidade - RP Tec Com
Testes de unidade - RP Tec Com
 
6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe muniz6. apresentacao rp tec com 2018 igor rozani e felipe muniz
6. apresentacao rp tec com 2018 igor rozani e felipe muniz
 
jCompany X Geradores de Códigos
jCompany X Geradores de CódigosjCompany X Geradores de Códigos
jCompany X Geradores de Códigos
 
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
 
Utilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes UnitáriosUtilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes Unitários
 
O programador pragmático
O programador pragmáticoO programador pragmático
O programador pragmático
 
Introdução C#
Introdução C#Introdução C#
Introdução C#
 

Mais de Danilo Pinotti

Design Pattern: Pending Objects com exemplos
Design Pattern: Pending Objects com exemplosDesign Pattern: Pending Objects com exemplos
Design Pattern: Pending Objects com exemplosDanilo Pinotti
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Site estático + Hospedagem Gratuita.pdf
Site estático + Hospedagem Gratuita.pdfSite estático + Hospedagem Gratuita.pdf
Site estático + Hospedagem Gratuita.pdfDanilo Pinotti
 
Vue 2 - Componentes [2 de 2 - 2020]
Vue 2 - Componentes [2 de 2 - 2020]Vue 2 - Componentes [2 de 2 - 2020]
Vue 2 - Componentes [2 de 2 - 2020]Danilo Pinotti
 
Vue - Básico sobre Vue [1 de 2 - 2020]
Vue - Básico sobre Vue [1 de 2 - 2020]Vue - Básico sobre Vue [1 de 2 - 2020]
Vue - Básico sobre Vue [1 de 2 - 2020]Danilo Pinotti
 
Minicurso de Expressões Regulares (REGEX)
Minicurso de Expressões Regulares (REGEX)Minicurso de Expressões Regulares (REGEX)
Minicurso de Expressões Regulares (REGEX)Danilo Pinotti
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Danilo Pinotti
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACDanilo Pinotti
 
Talk sobre testes automatizados. Parte 1/2
Talk sobre testes automatizados. Parte 1/2Talk sobre testes automatizados. Parte 1/2
Talk sobre testes automatizados. Parte 1/2Danilo Pinotti
 
O básico sobre Vue 2. Talk Vue Básico 1/3
O básico sobre Vue 2. Talk Vue Básico 1/3O básico sobre Vue 2. Talk Vue Básico 1/3
O básico sobre Vue 2. Talk Vue Básico 1/3Danilo Pinotti
 
Comunicação entre componentes com Vue 2. Talk Vue Básico 2/3
Comunicação entre componentes com Vue 2. Talk Vue Básico 2/3Comunicação entre componentes com Vue 2. Talk Vue Básico 2/3
Comunicação entre componentes com Vue 2. Talk Vue Básico 2/3Danilo Pinotti
 
Alguns Helpers do Laravel 5.6
Alguns Helpers do Laravel 5.6Alguns Helpers do Laravel 5.6
Alguns Helpers do Laravel 5.6Danilo Pinotti
 
Deixando aplicações Laravel mais rápidas
Deixando aplicações Laravel mais rápidasDeixando aplicações Laravel mais rápidas
Deixando aplicações Laravel mais rápidasDanilo Pinotti
 

Mais de Danilo Pinotti (15)

Design Pattern: Pending Objects com exemplos
Design Pattern: Pending Objects com exemplosDesign Pattern: Pending Objects com exemplos
Design Pattern: Pending Objects com exemplos
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Do Zero à Produção
Do Zero à ProduçãoDo Zero à Produção
Do Zero à Produção
 
Site estático + Hospedagem Gratuita.pdf
Site estático + Hospedagem Gratuita.pdfSite estático + Hospedagem Gratuita.pdf
Site estático + Hospedagem Gratuita.pdf
 
Vue 2 - Componentes [2 de 2 - 2020]
Vue 2 - Componentes [2 de 2 - 2020]Vue 2 - Componentes [2 de 2 - 2020]
Vue 2 - Componentes [2 de 2 - 2020]
 
Vue - Básico sobre Vue [1 de 2 - 2020]
Vue - Básico sobre Vue [1 de 2 - 2020]Vue - Básico sobre Vue [1 de 2 - 2020]
Vue - Básico sobre Vue [1 de 2 - 2020]
 
Minicurso de Expressões Regulares (REGEX)
Minicurso de Expressões Regulares (REGEX)Minicurso de Expressões Regulares (REGEX)
Minicurso de Expressões Regulares (REGEX)
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENAC
 
Talk sobre testes automatizados. Parte 1/2
Talk sobre testes automatizados. Parte 1/2Talk sobre testes automatizados. Parte 1/2
Talk sobre testes automatizados. Parte 1/2
 
O básico sobre Vue 2. Talk Vue Básico 1/3
O básico sobre Vue 2. Talk Vue Básico 1/3O básico sobre Vue 2. Talk Vue Básico 1/3
O básico sobre Vue 2. Talk Vue Básico 1/3
 
Comunicação entre componentes com Vue 2. Talk Vue Básico 2/3
Comunicação entre componentes com Vue 2. Talk Vue Básico 2/3Comunicação entre componentes com Vue 2. Talk Vue Básico 2/3
Comunicação entre componentes com Vue 2. Talk Vue Básico 2/3
 
Alguns Helpers do Laravel 5.6
Alguns Helpers do Laravel 5.6Alguns Helpers do Laravel 5.6
Alguns Helpers do Laravel 5.6
 
Deixando aplicações Laravel mais rápidas
Deixando aplicações Laravel mais rápidasDeixando aplicações Laravel mais rápidas
Deixando aplicações Laravel mais rápidas
 

Code Review

  • 1. Code Review E um pouco de boas práticas.
  • 2. Code Review - Importância: - Manter um padrão de qualidade nos códigos fontes; - Evitar códigos repetidos (implementação de algo que já existe); - Evitar implementações desnecessárias; - Melhorar eficiência dos algoritmos; - Gantir que o código está suficientemente legível; - Aprender e ensinar; - etc.
  • 3. Code Review Para se fazer o code review, não necessariamente o revisor deverá estar em dia do contexto da aplicação. [OPINIÃO] O revisor, a princípio, deve ter apenas conhecimento das tecnologias utilizadas e boas práticas sobre ela. Nunca levar as correções para o lado pessoal.
  • 4. Code Review Por onde começar ? - Legibilidade do código desenvolvido: - Nomes de variáveis; - Complexidade. - Verificar bom uso dos frameworks/bibliotecas utilizados na aplicação. - Verificar Styleguide.
  • 5. Code Review - Apontamentos Os apontamentos nos códigos dos colegas devem ser, na grande maioria das vezes, descritíveis. Sempre que necessário, apontar soluções.
  • 7. Boas práticas #1 Evitar condicionais extensas e complexas dentro do IF. Sempre que possível, criar uma variável booleana para melhorar a leitura.
  • 8. Boas práticas #2 Diminuir complexidade ciclomática (quantidade de caminhos que seu método/classe pode tomar até o seu fim).
  • 9. Boas práticas #3 Métodos devem ser pequenos. Tamanho máximo recomendado: ● Método <= 20 linhas ● Linha <= 100 caracteres (evitar o scroll horizontal) ● Classe <= 500 linhas
  • 10. Boas práticas Ler sobre refatoração e código limpo. Resumo Clean Code: http://eduardokurita.com/?p=34
  • 11. Fim