Refatoração em Ruby - by Marcos Brizeno
Posted on January 4th, 2016
This is a Portuguese-only book so I'll post the review in Portuguese.
This is just a short summary in English if you're interested:
Marcos introduces 9 of the Gang of Four's design patterns in Ruby. With great stories motivating the patterns and initial code samples, Marcos walks the reader through the work of refactoring code to design patterns. The walkthrough helps readers that are new to design patterns, ruby or refactoring. If you feel comfortable with all those 3, the book is still a nice work that merges it all together. If you're interested in having the book translated, shoot Marcos an email at "his first name dot his last name at thoughtworks dot com".
Neste livro, Marcos nos guia por 9 exercícios de refatoração muito bem apresentados. Usando Ruby e mostrandos ótimos exemplos de código, acompanhamos vários desenvolvedores pela sua jornada que transforma seus códigos em implementações de alguns dos padrões descritos no livro "Design Patterns" (ou Gang of Four). Ao contrário da maioria dos livros de padrões, Marcos não apresenta o padrão isoladamente. Ele descreve o problema que seus desenvolvedores imaginários enfrentam, explica suas necessidades e apresenta o caminho a ser seguido para transformar seus códigos em implementações de um determinado padrão.
Já aviso que escrevi o prefácio ao livro e, portanto, sou enviesado no julgamento do mesmo. Mas realmente acho que esse livro é uma ótima ferramenta para explicar e aplicar padrões de projeto. É muito mais prático que os cursos costumam ser e apresenta situações com as quais é possível empatizar. O passo a passo de cada refatoração também ajuda aqueles que não se sentem completamente confortável refatorando. Por fim, o uso de Ruby é o mais simples possível. Isso faz com que não seja difícil entender o livro mesmo se você nunca estudou Ruby. Por fim, se você já se sentir confortável com padrões, ruby e refatoração, esse livro é uma ótima referência de como todas as coisas se juntam e interagem entre elas.