Matias Leidemer
Published on

Review: Practical Object-Oriented Design in Ruby

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.

⭐️⭐️⭐️⭐️⭐️