+ All Categories
Home > Documents > decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE...

decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE...

Date post: 12-Jul-2020
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
155
decodificando o CODE REVIEW
Transcript
Page 1: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

decodificando o

CODE REVIEW

TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Page 2: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Elaine Naomi Watanabe

github.com/elainenaomi

twitter.com/elaine_nw

speakerdeck.com/elainenaomi

Desenvolvedora de Software (Plataformatec)

Mestrado em Ciência da Computação (USP)

Page 3: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

careers.plataformatec.com.br

Page 4: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

expectativas:discutir os desafios e práticas da

revisão de código

Page 5: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

definição

práticas do dia a dia

desafios

aprendizados

Page 6: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

definição

práticas do dia a dia

desafios

aprendizados

Page 7: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

https://en.wikipedia.org/wiki/Code_review

CODE REVIEW

processo de verificação de um sistema por meio da análise do código fonte, realizada por humanos

Page 8: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

https://en.wikipedia.org/wiki/Code_review

CODE REVIEW

processo de verificação de um sistema por meio da análise do código fonte, realizada por humanos

Page 9: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

qual é o objetivo?

Page 10: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 11: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

2001

Page 12: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

60% dos defeitos podem ser identificados na revisão do código

Boehm, Barry, and Victor R. Basili. "Top 10 list [software development]." Computer 34.1 (2001): 135-137

Page 13: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

2009

Page 14: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Revisão de código é uma boa ferramenta para identificar defeitos relacionados à evolutibilidade do

código que não são identificáveis na fase de testes

Mäntylä, Mika V., and Casper Lassenius. "What types of defects are really discovered in code reviews?." IEEE Transactions on Software Engineering 35.3 (2009): 430-448

Page 15: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Dívida Técnica

Valor de negócioCust

o da

mud

ança

tempo

How to Monetize Application Technical Debt, Gartner, 2011

Page 16: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 17: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

http://agilemodeling.com/essays/modelReviews.htm

Desenv.

cust

o da

mud

ança

tempo

Requisitos Análise e Design Revisão Testes Produção

Page 18: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

http://agilemodeling.com/essays/modelReviews.htm

Desenv.

cust

o da

mud

ança

tempo

Requisitos Análise e Design Revisão Testes Produção

Page 19: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

QUALIDADE DE SOFTWAREConfiabilidade

Corretude

Eficiência

Manutenabilidade

Valor de negócio

https://en.wikipedia.org/wiki/Software_quality

Page 20: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 21: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

aprendizados

definição

práticas do dia a dia

desafios

Page 22: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

como fazer um code review?

Page 23: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

como pessoa revisora

Page 24: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Pair Programming

Pull Request

Page 25: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Pair Programming

Pull Request

Page 26: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Fonte: https://mtlynch.io/human-code-reviews-2/

Page 27: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 28: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Pair Programming

Pull Request

código + contexto de negócio

Page 29: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Pair Programming

Pull Request

histórico acessível das discussões

Page 30: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

interação assíncrona distribuída

Mesmolocal

Mesmo tempo Tempo diferente

Locaisdiferentes

interação síncrona

distribuída

interação assíncrona

interação face-a-face

Johansen, Robert. "Groupware: Future directions and wild cards." Journal of Organizational Computing and Electronic Commerce 1.2 (1991): 219-227.

Page 31: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 32: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

revisão por meio de comentários

Page 33: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 34: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

transferência de conhecimento

mentoria

Page 35: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

visibilidade das alterações para outros times

team awareness

Page 36: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

boas práticas

Page 37: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

como pessoa autora

Page 38: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Título explicativo

Motivação (contexto de negócio)

Lista de dúvidas e discussões prévias

Gifs, screenshots das alterações

Page 39: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Mensagens de commits coerentes

Código completo, testado

Alterações pequenas

Single responsibility principle

Page 40: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Marcar pessoas como revisoras

Aplicar as alterações necessárias

Responder a todos os comentários

Page 41: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 42: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

como pessoa revisora

Page 43: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Identificar defeitos (bugs)

Sugerir soluções alternativas, refatorações

Reforçar padrões de código e design

Validar funcionalidade (código + negócio)

Page 44: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Identificar problemas de segurança

Analisar impactos na performance

Sugerir documentações

Validar a qualidade do código-fonte

Page 45: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Conhecer novas funcionalidades

Aprender novas tecnologias

Compartilhar conhecimento e dúvidas

Page 46: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 47: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

definição

práticas do dia a dia

desafios

aprendizados

Page 48: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Fonte: https://mtlynch.io/human-code-reviews-1/

Page 49: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

2018

Page 50: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

70% das alterações do Googlesão integradas em menos de 24h

após o pedido de review

Sadowski, Caitlin, et al. "Modern code review: a case study at Google." Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice. ACM, 2018

Page 51: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Alterações pequenas, uma pessoa revisora e sem comentários além de

autorização para integração

Sadowski, Caitlin, et al. "Modern code review: a case study at Google." Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice. ACM, 2018

Page 52: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

mágica?

Page 53: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

alinhamento

Page 54: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Sua base de código parece ter sido escrita por ÚNICA PESSOA?

SIM NÃO

Fonte: Talking with Tech Leads - Patrick Kua

Page 55: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

collective code ownership

https://martinfowler.com/bliki/CodeOwnership.html

Page 56: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Fonte: https://mtlynch.io/human-code-reviews-2/

Page 57: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

quem faz review, faz parte da construção da solução também

Page 58: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

como ir nessa direção?

Page 59: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 60: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

como pessoa

Page 61: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 62: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

lembre-se que o feedback deve ser sobre o código, e não sobre as pessoas

Page 63: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

ninguém acorda e pensa: vou lá adicionar um bug e já volto

Page 64: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 65: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

apoie a participação de TODAS AS PESSOAS do seu time

Page 66: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

não é porque alguém é experiente, que não vai errar

Page 67: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

não é porque alguém é iniciante, que não vai ter contribuição

Page 68: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 69: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

use comentáriosexplícitos e descritivos

Page 70: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 71: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

é para eu jogar fora a minha alteração?

Page 72: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

ah, era só para apagar o espaço extra

Page 73: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 74: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

comentários repetitivos sobre estilo de código

Page 75: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

podem ser substituídos por uma ferramenta de análise de código

Page 76: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 77: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 78: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

CÓDIGO: ELAINE50% por 6 meses

Page 79: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 80: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

melhorias de design podem ser entregues em outro pull request

Page 81: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 82: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

se chegar a uma conclusãoestiver difícil

Page 83: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

não se limite à ferramenta de review

Page 84: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

videoconferência

presencialmente

http://blog.plataformatec.com.br/2018/11/trabalhando-com-times-distribuidos/

Page 85: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

documente as decisões e discussões offline

Page 86: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 87: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

preste atenção na sua

forma de se comunicar

Page 88: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

muitas vezes não é óbvio que um comentário ou comportamento é

prejudicial

Page 89: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 90: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

como organização

Page 91: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 92: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

tenha critérios bem definidosex.: o número mínimo de aprovações

Page 93: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 94: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

fator social

Page 95: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

2014

Page 96: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Tsay, Jason, Laura Dabbish, and James Herbsleb. "Influence of social and technical factors for evaluating contribution in GitHub." Proceedings of the 36th international conference on Software engineering. ACM, 2014.

Quando os testes estão incluso, o PR tem 17% mais chance de ser aceito

fator técnico

Page 97: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Se a pessoa autora segue a pessoa responsável pelo projeto, tem

187% mais chance do PR ser aceitofator social

Tsay, Jason, Laura Dabbish, and James Herbsleb. "Influence of social and technical factors for evaluating contribution in GitHub." Proceedings of the 36th international conference on Software engineering. ACM, 2014.

Page 98: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 99: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

formalize as recomendações, crie guidelines sobre

aspectos comportamentais

Page 100: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

comunicaçãoverbal, não verbal e escrita

Page 101: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 102: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

comportamentos tóxicos

Page 103: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

COMPORTAMENTOS TÓXICOS

https://medium.com/@jgefroh/toxic-developers-considered-harmful-f7ea1494d4c0

Impedem inovações e ideias

Promovem a cultura da não-comunicação

Colocam o projeto e negócio em risco por centralizar informação

Comunicação agressiva (verbal, não-verbal e escrita)

Page 104: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

"como assim você não sabe isso???"

Page 105: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

"como deixaram você entrar aqui??"

Page 106: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

"vou ter que te explicar de novo?"

Page 107: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

A análise de sentimento em comentários tem mostrado evidências de que comentários com tom negativo

tendem a ser menos úteis

Sadowski, Caitlin, et al. "Modern code review: a case study at Google." Proceedings of the 40th International Conference on Software Engineering: Software Engineering in Practice. ACM, 2018

Page 108: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

como evitar isso?

Page 109: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Faça reviews como seres humanos

https://mtlynch.io/human-code-reviews-1/https://mtlynch.io/human-code-reviews-2/

Page 110: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

ask, don't tell

Page 111: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

ok, é só perguntar

Page 112: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

ok, é só perguntar

Page 113: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

"Testes não são importantes pra vc?"

pergunta sarcástica, com julgamento pessoal

Page 114: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

"Testes não são importantes pra vc?"

pergunta sarcástica, com julgamento pessoal

Page 115: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

"Esse PR não pode ser mergeado"

comentário opinativo, sem ação concreta, imperativo

Page 116: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

"Esse PR não pode ser mergeado"

comentário opinativo, sem ação concreta, imperativo

Page 117: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

"Por que não criou uma nova classe?"

pergunta com julgamento pessoal ainda"como você não pensou nisso?"

Page 118: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

"Por que não criou uma nova classe?"

pergunta com julgamento pessoal ainda"como você não pensou nisso?"

Page 119: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

busque comentar de maneira construtiva

Page 120: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

construtivo

"O que você acha sobre extrair essa lógica para uma classe? Acredito que vai melhorar a legibilidade e reduzir a complexidade"

Page 121: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

sem suposição, tom de sugestão

"Não sei se você já analisou isso, mas será que não vale a pena criar uma nova classe para esse caso?"

Page 122: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

...

Page 123: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

definição

práticas do dia a dia

desafios

aprendizados

Page 124: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

desenvolvimento de software tem muito a ver com cultura

Page 125: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

"A cultura não faz as pessoas, as pessoas fazem a cultura"

Chimamanda Ngozi Adichie

Page 126: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 127: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 128: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

olhe para o seu time

Page 129: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

diversidade ajuda a estimular empatia

Page 130: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

pode ajudar a reduzir comportamentos tóxicos

Page 131: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

e impactar positivamente na inovação e lucro

Page 132: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

https://assets.mckinsey.com/~/media/857F440109AA4D13A54D9C496D86ED58.ashx

Diversidade de gênero: 21% mais chances de resultados acima da média do mercado

Diversidade cultural e étnica:33% mais chances de resultadosacima da média do mercado

Page 133: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

olhe também para o ambientefatores não-técnicos

Page 134: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

pressão, sobrecarga de atividades,experiência e contexto de negócio

Baysal, Olga, et al. "The influence of non-technical factors on code review." 2013 20th Working Conference on Reverse Engineering (WCRE). IEEE, 2013.

Page 135: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

a qualidade do software reflete todos esses fatores

Page 136: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

impacta também no código escrito

Page 137: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

código escrito é uma forma de comunicação

Page 138: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

"Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on

explaining to human beings what we want a computer to do."

Donald Knuth. "Literate Programming (1984)" in Literate Programming. CSLI, 1992, pg. 99.

Page 139: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

code review é sobre cultura, pessoas, qualidade de software

Page 140: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

e aí, como é o code review no seu dia a dia?

Page 141: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

minhas referências

Page 142: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 143: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 144: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 145: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 146: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 147: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 148: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 149: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 150: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

guidelines.plataformatec.com.br

github.blog/2015-01-21-how-to-write-the-perfect-pull-request

medium.com/palantir/19e02780015f

medium.com/@jgefroh/f7ea1494d4c0

forbes.com/sites/quora/2014/11/07/10-characteristics-of-a-bad-software-engineer

blog.plataformatec.com.br/2018/07/como-evitar-silos-de-conhecimento-na-sua-codebase-e-levar-seus-code-reviews-para-o-proximo-nivel/

Page 151: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Building an Iconic Company - Reed Hastingyoutube.com/watch?v=BsXXIfqbnRk

A Arquitetura (Peculiar) do Stack Overflow - Roberta Arcoverdeinfoq.com/br/presentations/a-arquitetura-peculiar-do-stack-overflow

Arquitetura, pragmatismo e simplicidade - Roberta Arcoverdedocs.google.com/presentation/d/1DMpfVcXtALeCPwQwTM0Nz-YE1DBz7hCvPMf8q6O1ogI/preview

Talking with Tech Leads - Patrick Kuayoutube.com/watch?v=dNE6aqkG7ss

Page 152: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

Implementing a Strong Code-Review Culture - Derek Prioryoutube.com/watch?v=PJjmw9TRB7s

Maintaining a big open source project: lessons learned - Leonardo Tegonyoutube.com/watch?v=rnOcDH_sgxg

Integração Discreta: como melhorar a Integração Contínua e ainda ganhar em colaboração - George Guimarãesinfoq.com/br/presentations/integracao-discreta-como-melhorar

Page 153: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

https://twitter.com/rla4/status/1097982806163185666

Page 154: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019
Page 155: decodificando o CODE REVIEW - Amazon S3 · 2019-07-20 · decodificando o CODE REVIEW TRILHA DE RUBY - THE DEVELOPER'S CONFERENCE - SÃO PAULO - 2019

muito obrigada

speakerdeck.com/elainenaomi

CÓDIGO: ELAINE50% por 6 meses


Recommended