Este documento discute como deixar o código mais amigável para as próximas gerações através de documentação clara, histórico de commits explicativo, código limpo e testes claros. O autor também enfatiza a importância de merge requests construtivos para tornar o código mais compreensível, reduzir bugs e disseminar conhecimento na equipe.
13. Migração de sistemas legado para novo
Sistema Legado
- Dificuldade pra entender
- Medo de alterar
Sistema novo
- Fácil de alterar
- Uso de tecnologias novas
- Mas….. Pode virar o legado de amanhã! (literalmente)
26. Clean Code - Necessary Comments
http://blog.cleancoder.com/uncle-bob/2017/02/23/NecessaryComments.html
“But it does happen; and when it does nothing can be more helpful than a well
written, well thought through, comment.”
38. Cuidado com excesso de indireções
Indireção: despachar uma mensagem através de um intermediário
https://jaysoo.ca/2015/11/21/avoid-unnecessary-indirection/
Clareza SOLID
DRY
39.
40.
41. Perguntas para avaliar um código
- O quão difícil foi para se escrever?
- O quão difícil é para se entender?
- Quando custará para alterar?
O quão difícil é responder perguntas sobre o domínio olhando o código?
- Quais são os estados de um farol?
- Qual a sequência de cores do farol?
Extraído do livro “99 bottles of OOP - Sandi Metz”
59. 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
61. 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
Sugestão: definir um Guideline!