Aprendendo com
projetos open source
Mauro quem….
maurogeorge.com.br
História
shoulda-matchers
Descoberto a necessidade de dar
suporte a nova versão do Rails
Suporte ao novo Rails
Descoberto bug no Rails
Reportando issue no Rails
Agradecimento da thoughtbot
Menção no post e adesivos =D
Experiência
Entender o shoulda-matchers por baixo dos
panos
Criar um novo matcher para o shoulda-matchers
Utilizar uma versão do Rails ainda em
desenvolvimento
Aprendi um pouco sobre Rails por baixo dos
panos
Criei uma issue no Rails
Disclaimer
Baseado em fatos reais
Sua primeira
contribuição
Git + Github
Começe pelos projetos que já utiliza
Busque por issues
Documentação
Contribuição com a
documentação ao invés
de um Post
$ git clone
Rode o projeto
Issue ao rodar
o projeto
CONTRIBUTING
Faça suas
mudanças
Faça o fork
Faça o PR
Faça o PR
Faça sua mudança em um
branch
Deixe claro o que está
resolvendo
Adicione testes nas suas
mudanças
Comemore
A comunidade
A comunidade
Owner - O criador do projeto
Maintainers e Collaborators - São os
mais ativos no projeto
Contributors - Quem já teve um PR
aceito no projeto
Membros da comunidade - Quem
está envolvido nas discussões
Meu PR não foi
aceito :(
Não se sinta mal
Entenda o motivo, o racional por
trás da decisão, não leve para o
pessoal
Faça prova de
conceito
E leve para a comunidade como um PR
O review é do
código e não seu
Pode demorar até algo acontecer
Faça mudanças pequenas
Faça mudanças pequenas
Projeto estava pedindo ajuda
PRs menores foram aceitos
Decidi abraçar uma grande
mudança, mesmo sabendo dos
riscos
Velocidade X Qualidade
Não leve para o
pessoal e siga em
frente
Oh My! Eles vão ver meu código
será que tá
bom?
Aprenda com os
erros e melhore
Acompanhe os repositorios
Que quer contribuir ou que já
contribuiu
Responda
Issues
Tudo bem em
não contribuir <3
Code review
Code review
Aceite que muitas das discussões são opiniões
então discuta os tradeoffs
Lembre-se sempre que do outro lado está falando
com pessoas
Faça perguntas e não demandas
Evite comparar “meu”, “seu”, “não meu”
Seja o mais claro possível
Agradeça
Não leve para o pessoal
Trabalhar em um
ou mais projetos?
Ritmo
sustentável
Ritmo sustentável
Programe-se
Programe-se
Estude coisas novas
Faça posts
Contribua em projetos open
source
Se divirta =D
A gem X é uma
merd*!
Provide Options, Don't Make Lame Excuses
Não crie projetos,
abrace os existentes
Crie issues em
caso de problemas
Crie issues
Busque por issues existentes
Seja bem claro, qual o comportamento
esperado e o que ocorreu
Inclua o máximo de informações:
Sistema operacional, versão dos
projetos, versão de dependencias etc
Cole o erro, o stacktrace
O que ganho
com isso?
O que ganho com isso?
É um modo de aprender assim
como livro, cursos, posts etc.
Contato com pessoas da
comunidade de diversas partes do
mundo e empresas diferentes
Ler código dos outros é uma
excelente forma de aprender
Obrigado!
Referências
https://guides.github.com/overviews/os-
contributing/
https://github.com/thoughtbot/guides/tree/
master/code-review
https://medium.com/@raphamorim/como-ser-
um-desenvolvedor-transante-parte-i-
e010c125847f
https://medium.com/@raphamorim/como-ser-
um-desenvolvedor-descolado-6d085bcb36e1

Aprendendo com projetos open source @ RubyConf 2015