Não vou começar esse post dizendo que adoro ler livros técnicos. Eu não gosto. Não consigo me lembrar de outros livros da mesma categoria que consegui ler até o fim.
Existe alguma coisa sobre o POODR que o deixa diferente.
Sandi Metz fez um trabalho impecável aqui. A maneira como ela conduz a narrativa, como ela te faz pensar sobre os conceitos, é impressionante. Conceitos, estes, que você achava que sabia...
O que mais me chamout atenção sobre o livro é como ele me ensinou que eu não sei orientação a objetos. Ou, pelo menos, que eu sei menos do que eu achava que eu sabia. Um pouco chocante? Talvez. Mas necessário.
Durante o livro a autora apresenta um caso de uso relacionado à uma empresa que planeja viagens de bicicleta (esqueci o nome da empresa fictícia, depois atualizo o post). Os exemplos de código vão desde a modelagem de bicicletas (usando herança e depois composition) em si, bem como agendamento de trips com diferentes papéis (mecânico, motorista, etc) envolvidos.
Lembro bem de um caso em que ela indica que a estrutura das classes pode melhorar e eu simplemente não conseguia imaginar como isso poderia acontecer... Logo depois de ler mais dois parágrafos e mais um snippet de código, tudo fez sentido.
Espere por muito conceito. A leitura é intensa, não deixe isso lhe desanimar. Sandi não exibe somente code snippets com soluções e alternativas para problemas, mas ela explica muito bem o por que de tais escolhas e como isso diminui o custo de manutenção.
O último capítulo, sobre testes, foi um dos que mais aproveitei. Novos posts virão por conta disso.
No fim das contas, Practical Object-Oriented Design in Ruby é um livro obrigatório para qualquer programador ruby (ou qualquer outra linguagem dynamic typing) experiente ou não.
Lançado em 2012, é o único livro com 5 estrelas entre os best sellers de ruby na Amazon.
⭐️⭐️⭐️⭐️⭐️