SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Code	
  
Review	
  
           Frank	
  Santos	
  
 facebook.com/aitproeg	
  
Quem	
  faz	
  revisões	
  de	
  
        código?	
  
O	
  TIME	
  
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Tom	
  –	
  “Eu	
  preciso	
  	
  disso	
  agora!!!”	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Proprietário.	
  

	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Harry	
  –	
  “Apenas	
  faça	
  isso!!!”	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Gerente	
  

	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Adam	
  –	
  “O	
  codificador	
  da	
  noite	
  !!!”	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Desenvolvedor	
  
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Kris	
  –	
  “Hackety	
  Hack!!!”	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Mestre	
  revisor	
  	
  de	
  código	
  



	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Bruno	
  –	
  “Ele	
  vai	
  trabalhar!!!”	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Revisor	
  aprendiz	
  
 	
     	
   	
  
	
         	
   	
  Quanto	
  tempo	
  precisamos	
  para	
  
	
         começar	
  	
   	
    	
      	
   	
       e	
  ter	
  este	
  projeto	
  fei

	
    	
            	
       Bem,	
  design,	
  codificação,	
  código,	
  	
   	
     	
  
	
    	
            	
       	
      	
     	
      	
  
	
    	
            Será	
  que	
  realmente	
  precisamos	
  de	
  revisão	
  do	
  
	
    	
            	
       código?	
  Você	
  certamente	
  sabe	
  
como	
  	
          	
       codificar,	
  como	
  testar	
  e	
  como	
  
funciona	
  ...	
  	
  	
    	
      	
     	
      Certo?	
  
 	
                	
                    	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Estamos	
  quase	
  prontos,	
  só	
  
	
                    	
                    	
                                      	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  precisa	
  ser	
  revisto	
  este	
  código.	
  



	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   	
                               Hmmm	
  ...	
  todos	
  os	
  desenvolvedores	
  
	
                                      	
                   	
                               	
   	
  	
  	
  	
  	
  	
  estão	
  ocupados,	
  não	
  
temos	
  	
                                                  	
                               	
   	
                        	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  um	
  sobresselente.
	
                                      	
                   	
  	
  	
  	
  	
  	
  	
  	
  Vamos	
  ignorar	
  essa	
  parte	
  e	
  
seguir	
  em	
  	
   	
                                                                       	
   	
                        	
                                      	
                                      	
             	
   frente.	
  
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
   	
   	
   	
                        	
  	
  	
  	
  	
  	
  	
  Olá	
  Harry,	
  
	
                                        	
                             	
   	
   	
  	
  	
  	
  	
  Eu	
  preciso	
  de	
  John	
  para	
  rever	
  	
   	
  
	
                                        	
                             	
   	
  
	
  	
  	
  	
  	
  	
  	
  Johh	
  está	
  ocupado,	
  mas	
  tem	
  o	
  	
  Rob.	
  



	
  	
  	
  	
  	
     	
      	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Mas	
  Rob	
  é	
  um	
  desenvolvedor	
  	
  júnior,	
  
	
                     	
      	
                                        	
        e	
  ele	
  não	
  sabe	
  este	
  sistema.	
  

Você	
  quer	
  ou	
  não	
  quer	
  o	
  seu	
  código	
  revisado?	
  	
  
Rob	
  é	
  tudo	
  o	
  que	
  temos!	
  
          	
          	
      	
      Nós	
  fazemos	
  todas	
  essas	
  	
   	
     	
  
	
           	
          	
      	
  
	
           	
          	
      Gastamos	
  muito	
  tempo	
  nisso!!	
  
	
           	
          	
      	
  
	
  	
  	
   E	
  o	
  código	
  que	
  impulsiona	
  a	
  produção	
  ainda	
  
está	
  dando	
  buggy.	
  	
  
	
           	
          	
      	
      É	
  uma	
  perda	
  de	
  tempo....	
  
Revisão	
  de	
  Código	
  

               Adam	
  -­‐	
  	
  O	
  desenvolvedor	
  
               Para	
  	
  Kris	
  O	
  Avaliador	
  


               Kris,	
  

               Eu	
  tenho	
  esse	
  código	
  que	
  eu	
  preciso	
  que	
  você	
  revise	
  ele	
  pra	
  mim!!!	
  
               Você	
  pode	
  fazer	
  isso	
  por	
  mim,	
  por	
  favor?	
  	
  	
  

               O	
  código	
  está	
  no	
  meu	
  repositório.	
  
               obrigado	
  
               -­‐-­‐-­‐	
  
               Adam	
  
Sistemas	
  de	
  rastreamento	
  de	
  bugs	
  
•  JIRA	
  
•  Bugtrak	
  
•  ManBs	
  

Ferramentas	
  de	
  análise	
  dos	
  	
  
códigos	
  
•  Crucible/Fisheye	
  
•  Gerrit	
  
•  Github	
  
Revisão	
  de	
  Código	
  
          Adam	
  -­‐	
  	
  O	
  desenvolvedor	
  
          Para	
  	
  Kris	
  O	
  Avaliador	
  

          Kris,	
  
          Eu	
  tenho	
  esse	
  código	
  que	
  eu	
  preciso	
  que	
  você	
  revise	
  ele	
  pra	
  mim!!!	
  
          Você	
  pode	
  fazer	
  isso	
  por	
  mim,	
  por	
  favor?	
  	
  	
  

          O	
  código	
  está	
  no	
  meu	
  repositório.	
  
          obrigado	
  
          -­‐-­‐-­‐	
  
          Adam	
  


                  Kris	
  -­‐	
  O	
  Avaliador	
  
                  Para	
  Adam	
  O	
  Desenvolvedor	
  

                  Adam,	
  
                  Nenhum	
  problema	
  ,	
  mas	
  onde	
  você	
  um	
  braço	
  do	
  código?	
  
                  Eu	
  não	
  consigo	
  idenbficar	
  o	
  conjunto	
  de	
  mudanças	
  sem	
  ele.	
  
                  -­‐-­‐-­‐	
  
                  Kris	
  
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  O	
  que	
  analisar?	
  
                                       •  Ter	
  um	
  controle	
  da	
  versão:	
  

                                               –  	
   Especificar	
   o	
   conjunto	
   de	
  
                                                 mudanças	
   para	
   facilitar	
   o	
  
                                                 entendimento	
   da	
   proposta	
  
                                                 de	
   desenvolvimento	
   ou	
   das	
  
                                                 mudanças.	
  
Revisão	
  de	
  Código	
  

              Adam	
  -­‐	
  	
  O	
  desenvolvedor	
  
              Kris,	
  Eu	
  tenho	
  esse	
  código	
  que	
  eu	
  preciso	
  que	
  você	
  revise	
  ele	
  pra	
  mim!!!	
  
              (...)	
  
               Kris	
  -­‐	
  O	
  Avaliador	
  
               Para	
  Adam	
  O	
  Desenvolvedor	
  

               Adam,	
  
               Nenhum	
  problema	
  ,	
  mas	
  onde	
  você	
  um	
  braço	
  do	
  código?	
  
               Eu	
  não	
  consigo	
  idenbficar	
  o	
  conjunto	
  de	
  mudanças	
  sem	
  ele.	
  
               -­‐-­‐-­‐	
  
               Kris	
  

          Adam	
  -­‐	
  	
  O	
  desenvolvedor	
  
          Para	
  	
  Kris	
  O	
  Avaliador	
  

          Kris,	
  
          Ah	
  sim.	
  Desculpe.	
  Está	
  no	
  ramo	
  principal.	
  
          -­‐-­‐-­‐	
  
          Adam	
  
O	
  propósito	
  da	
  Revisão	
  

   O	
  que	
  ???	
  

Por	
  que?????	
  
Uma	
  forma	
  de	
  fazer	
  as	
  coisas:	
  
                                                                 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Bruno	
  –	
  Ele	
  vai	
  trabalhar!!!	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Revisor	
  aprendiz	
  

Comentário	
  habitual	
  produzido:	
  

•  Isso	
  faz	
  senbdo;	
  
•  O	
  que	
  foi	
  feito	
  ou	
  alterado;	
  
•  Sintabcamente	
  correto;	
  
•  Aprovado	
  ou	
  não;	
  
Uma	
  forma	
  de	
  fazer	
  as	
  coisas:	
  

	
                                        	
                                         	
                                        	
                        	
  Kris	
  –	
  Hackety	
  Hack!!!	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Mestre	
  revisor	
  	
  de	
  código	
  

Ferramentas	
  Usadas:	
  
             – PHP	
  linter	
  
             – PHP	
  Code	
  Sniffer	
  
             – PHPUnit	
  
             – PHP	
  Documentor	
  
             – PHP	
  Depend	
  
             – PHP	
  Mess	
  Detector	
  
Olhando	
  para	
  coisas	
  importantes	
  
	
                                             	
                                             	
                                              	
            	
  Kris	
  –	
  Hackety	
  Hack!!!	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Mestre	
  revisor	
  	
  de	
  código	
  

Coisas	
  verificadas:	
  
              –  	
  clareza	
  
              –  	
  desempenho	
  
              –  	
  complexidade	
  excessiva	
  
              –  	
  o	
  impacto	
  em	
  outros	
  sistemas	
  
              –  	
  se	
  a	
  solução	
  resolve	
  o	
  problema	
  
              –  	
  duplicações	
  
              –  	
  qualidade	
  de	
  código	
  
              –  	
  potenciais	
  problemas	
  de	
  implantação	
  
              –  	
  falhas	
  de	
  projeto	
  
Os	
  benejcios	
  de	
  uma	
  revisão	
  do	
  
      código	
  -­‐	
  eles	
  são	
  para	
  você!	
  

Comparblhamento	
  de	
  conhecimento	
  
   – Encontrar	
  bugs	
  /	
  falhas	
  de	
  projeto	
  cedo	
  
   – 	
  Melhorar	
  a	
  qualidade	
  geral	
  do	
  código	
  
   – 	
  Fomentar	
  a	
  parbcipação	
  colebva	
  do	
  código	
  	
  
Desenvolvedor	
  
       Compreender	
  e	
  aceitar	
  que	
  você	
  vai	
  
               cometer	
  erros.	
  
•	
  Você	
  não	
  é	
  o	
  seu	
  código.	
  

•	
  Não	
  importa	
  o	
  quanto	
  	
  você	
  sabe,	
  alguém	
  vai	
  
sempre	
  saber	
  mais.	
  Uhauhauahuahuauha	
  

•	
  Não	
  reescrever	
  o	
  código	
  sem	
  consulta	
  
Code	
  Reviewers	
  

•  A	
  única	
  autoridade	
  verdadeira	
  deriva	
  de	
  
   conhecimento,	
  não	
  de	
  posição	
  

•  	
  Cribquem	
  códigos	
  ao	
  invés	
  de	
  pessoas	
  
Como	
  realizar	
  uma	
  boa	
  revisão	
  de	
  
                   código?	
  

•  Use	
  ferramentas,	
  não	
  seja	
  uma	
  ferramenta	
  

•  Verifique	
  se	
  há	
  duplicações	
  /	
  complexidade	
  

•  Veja	
  o	
  impacto	
  em	
  outros	
  sistemas	
  

•  Tornar	
  o	
  código	
  claro	
  e	
  auto-­‐describvo	
  
Sebas=an	
  	
  Marek,	
  SoAware	
  Architect	
  

Mais conteúdo relacionado

Semelhante a Code review

Software de qualidade e qualidade de código
Software de qualidade e qualidade de códigoSoftware de qualidade e qualidade de código
Software de qualidade e qualidade de códigoGuilherme Silveira
 
As escolhas do desenvolvedor
As escolhas do desenvolvedorAs escolhas do desenvolvedor
As escolhas do desenvolvedorWillian Molinari
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realHenrique Schmidt
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo realWilly Salazar
 
Desenvolvedor no controle utilizando tdd
Desenvolvedor no controle utilizando tddDesenvolvedor no controle utilizando tdd
Desenvolvedor no controle utilizando tddVictor Serta
 
O mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria terO mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria terÁtilla Silva Barros
 
Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)Better Developer
 
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadradoTDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadradoCezinha Anjos
 
Sistemas para o Mundo Real
Sistemas para o Mundo RealSistemas para o Mundo Real
Sistemas para o Mundo RealLeandro Silva
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMAdriano Bertucci
 
Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017Jonathan Filho
 
Aula 01 - Introducao a C (3).pptx
Aula 01 - Introducao a C (3).pptxAula 01 - Introducao a C (3).pptx
Aula 01 - Introducao a C (3).pptxAbdulSacur2
 
Seja burro e preguiçoso. A criação do synccode
Seja burro e preguiçoso. A criação do synccodeSeja burro e preguiçoso. A criação do synccode
Seja burro e preguiçoso. A criação do synccodes4nx
 
Construindo bons relacionamentos entre desenvolvedores e testadores
Construindo bons relacionamentos entre desenvolvedores e testadoresConstruindo bons relacionamentos entre desenvolvedores e testadores
Construindo bons relacionamentos entre desenvolvedores e testadoresGabriel Oliveira
 
Cafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and DesignCafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and DesignThoughtworks
 

Semelhante a Code review (20)

Fiz em C e me arrependi
Fiz em C e me arrependiFiz em C e me arrependi
Fiz em C e me arrependi
 
Software de qualidade e qualidade de código
Software de qualidade e qualidade de códigoSoftware de qualidade e qualidade de código
Software de qualidade e qualidade de código
 
As escolhas do desenvolvedor
As escolhas do desenvolvedorAs escolhas do desenvolvedor
As escolhas do desenvolvedor
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
 
Desenvolvedor no controle utilizando tdd
Desenvolvedor no controle utilizando tddDesenvolvedor no controle utilizando tdd
Desenvolvedor no controle utilizando tdd
 
O mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria terO mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria ter
 
Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)
 
Hack Thursday - NodeJS
Hack Thursday - NodeJSHack Thursday - NodeJS
Hack Thursday - NodeJS
 
Git e redmine
Git e redmineGit e redmine
Git e redmine
 
Go git - Presentation @Navita
Go git - Presentation @NavitaGo git - Presentation @Navita
Go git - Presentation @Navita
 
Designer vs programador
Designer vs programadorDesigner vs programador
Designer vs programador
 
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadradoTDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
 
Sistemas para o Mundo Real
Sistemas para o Mundo RealSistemas para o Mundo Real
Sistemas para o Mundo Real
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 
Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017Mini Curso Android basico EATI-2017
Mini Curso Android basico EATI-2017
 
Aula 01 - Introducao a C (3).pptx
Aula 01 - Introducao a C (3).pptxAula 01 - Introducao a C (3).pptx
Aula 01 - Introducao a C (3).pptx
 
Seja burro e preguiçoso. A criação do synccode
Seja burro e preguiçoso. A criação do synccodeSeja burro e preguiçoso. A criação do synccode
Seja burro e preguiçoso. A criação do synccode
 
Construindo bons relacionamentos entre desenvolvedores e testadores
Construindo bons relacionamentos entre desenvolvedores e testadoresConstruindo bons relacionamentos entre desenvolvedores e testadores
Construindo bons relacionamentos entre desenvolvedores e testadores
 
Cafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and DesignCafe agil em Recife - Agile and Design
Cafe agil em Recife - Agile and Design
 

Mais de COTIC-PROEG (UFPA) (20)

LT - Redis
LT - RedisLT - Redis
LT - Redis
 
LT Ansible
LT AnsibleLT Ansible
LT Ansible
 
Testes automatizados com Cypress
Testes automatizados com CypressTestes automatizados com Cypress
Testes automatizados com Cypress
 
Loop back
Loop backLoop back
Loop back
 
METEOR
METEORMETEOR
METEOR
 
Desenvolvimento de software tradicional vs ágil
Desenvolvimento de software tradicional vs ágilDesenvolvimento de software tradicional vs ágil
Desenvolvimento de software tradicional vs ágil
 
Canva
CanvaCanva
Canva
 
Git v2
Git v2Git v2
Git v2
 
Atitudes que levam ao Fracasso profissional
Atitudes que levam ao Fracasso profissionalAtitudes que levam ao Fracasso profissional
Atitudes que levam ao Fracasso profissional
 
Os 5 Sensos da Qualidade
Os 5 Sensos da QualidadeOs 5 Sensos da Qualidade
Os 5 Sensos da Qualidade
 
WATSON - O Fascinante Computador da IBM
WATSON - O Fascinante Computador da IBMWATSON - O Fascinante Computador da IBM
WATSON - O Fascinante Computador da IBM
 
Produtividade sem enrrolação
Produtividade sem enrrolaçãoProdutividade sem enrrolação
Produtividade sem enrrolação
 
LAB JavaScript
LAB JavaScriptLAB JavaScript
LAB JavaScript
 
Principios e Valores Ágeis
Principios e Valores ÁgeisPrincipios e Valores Ágeis
Principios e Valores Ágeis
 
Big data
Big dataBig data
Big data
 
Metricas para Times Ágeis
Metricas para Times ÁgeisMetricas para Times Ágeis
Metricas para Times Ágeis
 
Aplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPA
Aplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPAAplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPA
Aplicação de Abordagens Ágeis: Estudo de Caso de utlização do SCRUM – PROEG/UFPA
 
Técnicas para Programação em Par
Técnicas para Programação em ParTécnicas para Programação em Par
Técnicas para Programação em Par
 
Feedback Canvas
Feedback CanvasFeedback Canvas
Feedback Canvas
 
5 Doenças do Gerenciamento de Projetos
5 Doenças do Gerenciamento de Projetos5 Doenças do Gerenciamento de Projetos
5 Doenças do Gerenciamento de Projetos
 

Code review

  • 1. Code   Review   Frank  Santos   facebook.com/aitproeg  
  • 2. Quem  faz  revisões  de   código?  
  • 4.                                                            Tom  –  “Eu  preciso    disso  agora!!!”                                                                                                                                          Proprietário.                                                                        Harry  –  “Apenas  faça  isso!!!”                                                                                                                                                                      Gerente                                                              Adam  –  “O  codificador  da  noite  !!!”                                                                                                                                Desenvolvedor  
  • 5.                                                    Kris  –  “Hackety  Hack!!!”                                                                                              Mestre  revisor    de  código                                                      Bruno  –  “Ele  vai  trabalhar!!!”                                                                                                  Revisor  aprendiz  
  • 6.              Quanto  tempo  precisamos  para     começar             e  ter  este  projeto  fei       Bem,  design,  codificação,  código,                           Será  que  realmente  precisamos  de  revisão  do         código?  Você  certamente  sabe   como       codificar,  como  testar  e  como   funciona  ...             Certo?  
  • 7.                                                            Estamos  quase  prontos,  só                            precisa  ser  revisto  este  código.                                   Hmmm  ...  todos  os  desenvolvedores                      estão  ocupados,  não   temos                                                      um  sobresselente.                    Vamos  ignorar  essa  parte  e   seguir  em                   frente.  
  • 8.                                                        Olá  Harry,                    Eu  preciso  de  John  para  rever                            Johh  está  ocupado,  mas  tem  o    Rob.                                    Mas  Rob  é  um  desenvolvedor    júnior,           e  ele  não  sabe  este  sistema.   Você  quer  ou  não  quer  o  seu  código  revisado?     Rob  é  tudo  o  que  temos!  
  • 9.         Nós  fazemos  todas  essas                       Gastamos  muito  tempo  nisso!!                 E  o  código  que  impulsiona  a  produção  ainda   está  dando  buggy.             É  uma  perda  de  tempo....  
  • 10. Revisão  de  Código   Adam  -­‐    O  desenvolvedor   Para    Kris  O  Avaliador   Kris,   Eu  tenho  esse  código  que  eu  preciso  que  você  revise  ele  pra  mim!!!   Você  pode  fazer  isso  por  mim,  por  favor?       O  código  está  no  meu  repositório.   obrigado   -­‐-­‐-­‐   Adam  
  • 11.
  • 12. Sistemas  de  rastreamento  de  bugs   •  JIRA   •  Bugtrak   •  ManBs   Ferramentas  de  análise  dos     códigos   •  Crucible/Fisheye   •  Gerrit   •  Github  
  • 13. Revisão  de  Código   Adam  -­‐    O  desenvolvedor   Para    Kris  O  Avaliador   Kris,   Eu  tenho  esse  código  que  eu  preciso  que  você  revise  ele  pra  mim!!!   Você  pode  fazer  isso  por  mim,  por  favor?       O  código  está  no  meu  repositório.   obrigado   -­‐-­‐-­‐   Adam   Kris  -­‐  O  Avaliador   Para  Adam  O  Desenvolvedor   Adam,   Nenhum  problema  ,  mas  onde  você  um  braço  do  código?   Eu  não  consigo  idenbficar  o  conjunto  de  mudanças  sem  ele.   -­‐-­‐-­‐   Kris  
  • 14.                                      O  que  analisar?   •  Ter  um  controle  da  versão:   –    Especificar   o   conjunto   de   mudanças   para   facilitar   o   entendimento   da   proposta   de   desenvolvimento   ou   das   mudanças.  
  • 15. Revisão  de  Código   Adam  -­‐    O  desenvolvedor   Kris,  Eu  tenho  esse  código  que  eu  preciso  que  você  revise  ele  pra  mim!!!   (...)   Kris  -­‐  O  Avaliador   Para  Adam  O  Desenvolvedor   Adam,   Nenhum  problema  ,  mas  onde  você  um  braço  do  código?   Eu  não  consigo  idenbficar  o  conjunto  de  mudanças  sem  ele.   -­‐-­‐-­‐   Kris   Adam  -­‐    O  desenvolvedor   Para    Kris  O  Avaliador   Kris,   Ah  sim.  Desculpe.  Está  no  ramo  principal.   -­‐-­‐-­‐   Adam  
  • 16. O  propósito  da  Revisão   O  que  ???   Por  que?????  
  • 17. Uma  forma  de  fazer  as  coisas:                          Bruno  –  Ele  vai  trabalhar!!!                                                                                Revisor  aprendiz   Comentário  habitual  produzido:   •  Isso  faz  senbdo;   •  O  que  foi  feito  ou  alterado;   •  Sintabcamente  correto;   •  Aprovado  ou  não;  
  • 18. Uma  forma  de  fazer  as  coisas:            Kris  –  Hackety  Hack!!!                                                                                                    Mestre  revisor    de  código   Ferramentas  Usadas:   – PHP  linter   – PHP  Code  Sniffer   – PHPUnit   – PHP  Documentor   – PHP  Depend   – PHP  Mess  Detector  
  • 19.
  • 20.
  • 21. Olhando  para  coisas  importantes            Kris  –  Hackety  Hack!!!                                                                                                    Mestre  revisor    de  código   Coisas  verificadas:   –   clareza   –   desempenho   –   complexidade  excessiva   –   o  impacto  em  outros  sistemas   –   se  a  solução  resolve  o  problema   –   duplicações   –   qualidade  de  código   –   potenciais  problemas  de  implantação   –   falhas  de  projeto  
  • 22. Os  benejcios  de  uma  revisão  do   código  -­‐  eles  são  para  você!   Comparblhamento  de  conhecimento   – Encontrar  bugs  /  falhas  de  projeto  cedo   –   Melhorar  a  qualidade  geral  do  código   –   Fomentar  a  parbcipação  colebva  do  código    
  • 23. Desenvolvedor   Compreender  e  aceitar  que  você  vai   cometer  erros.   •  Você  não  é  o  seu  código.   •  Não  importa  o  quanto    você  sabe,  alguém  vai   sempre  saber  mais.  Uhauhauahuahuauha   •  Não  reescrever  o  código  sem  consulta  
  • 24. Code  Reviewers   •  A  única  autoridade  verdadeira  deriva  de   conhecimento,  não  de  posição   •   Cribquem  códigos  ao  invés  de  pessoas  
  • 25. Como  realizar  uma  boa  revisão  de   código?   •  Use  ferramentas,  não  seja  uma  ferramenta   •  Verifique  se  há  duplicações  /  complexidade   •  Veja  o  impacto  em  outros  sistemas   •  Tornar  o  código  claro  e  auto-­‐describvo  
  • 26. Sebas=an    Marek,  SoAware  Architect