49
Como montar uma palestra com seu conhecimento dos últimos meses Fabio Perrella Lider Técnico Hospedagem

Deixando o codigo_mais_amigavel_para_as_proximas_geracoes

Embed Size (px)

Citation preview

Como montar uma palestra com seu conhecimento dos

últimos mesesFabio PerrellaLider TécnicoHospedagem

2017

2016

Deixando o código mais amigável para as próximas gerações

Fabio PerrellaLider TécnicoHospedagem

Agenda

- Documentação- Histórico de commits- Limpeza do código- Testes claros- Merge requests construtivos

Tomdoc - tomdoc.orgDocumentação de métodos

asciiflow.com

Documente códigos sem contexto

Utilize o corpo do commit para mais detalhes

Keepachangelog.comDocumentação de gems

- Ajuda muito na hora de precisar atualizar de uma versão X para Y

Documente tudo que possa gerar dúvidas

Exemplo no crontab

Contando a história do código através dos commitshttps://about.futurelearn.com/blog/telling-stories-with-your-git-history/

Commits atômicos

Explicar o porquê e não só o “como”http://chris.beams.io/posts/git-commit

Remover commits de wip, typo, fix, etc..

$ git rebase -i master (usando squash)

Preferir rebase para atualizar feature branchesMerge só quando for mergear o MR

Commit --fixup para atualizar commit antigohttps://robots.thoughtbot.com/autosquashing-git-commits

git add .

git commit --fixup add92db

git rebase -i --autosquash HEAD~6

Limpeza de código

Module prependhttp://gshutler.com/2013/04/ruby-2-module-prepend/

Module prependVantagens sobre a gem aspector:

- fica explícito no código!- aparece no stacktrace explicitamente em caso de exceção

Mais clareza com keyword argumentshttp://gshutler.com/2013/04/ruby-2-module-prepend/

Uso de funções (métodos) para iterators

Prefira composição do que herança

Remoção de código obsoletogem debride

https://github.com/seattlerb/debride

Testes mais clarosTestes também servem como documentação!

Proposta

Proposta- Não se importe muito com DRY. Caso se importe, prefira uso de métodos- Evite o uso de LETs e BEFOREs- Tudo bem colocar mais de 1 expect dentro dos ITs- Separe em 3 blocos: setup, exercise e verify

http://blog.locaweb.com.br/geral/melhorando-o-entendimento-de-testes-com-rspec

Merge requests construtivos- Torna o código mais entendível- Reduz chance de bugs- Espalha conhecimento entre membros- Serve de referência para futuras consultas

Guideline de hospedagem:

apps-hospedagem.docs.arda.locaweb.com.br/guidelines/merge-requests.html

Dúvidas?@fabioperrella