Refatorando com padrões de projeto Um guia em Ruby
Marcos BrizenoPrefácio
Desenvolvimento de software é uma profissão muito jovem. Entre meados de 1940 (com o computador de Alan Turing) e a década de 2010, são meros 70 anos de história. Para a humanidade, isso não é nada. A maioria da população ainda viveu boa parte de sua vida sem a influência de um computador no seu dia a dia. Tudo é muito novo e muda muito rápido. Ainda não temos um conhecimento aprofundado e difundido do que dá certo e do que não dá.
Padrões de projeto são uma tentativa de estabelecer uma coletânea destes conhecimentos. Eles são apresentados em um formato que segue resumidamente a seguinte estrutura:
Nome;Objetivo;
Motivação (o problema);
Contexto;
Solução;
Exemplo.
Idealmente, essas coletâneas se tornarão um recurso para programadores identificarem o problema com o qual estão lidando, e aplicarem uma solução que é conhecida e "garantida". Nesse cenário, ainda falta uma coisa para que possamos usar esse conhecimento de forma segura: como caminhar da situação atual até a solução do padrão, sem introduzir problemas.
Este livro apresenta exemplos práticos em Ruby para seguir essa jornada de forma responsável. Marcos Brizeno apresenta claramente todos os passos para refatorar o código sem causar problemas para os testes automatizados (e, portanto, em seu programa), e chegar a uma implementação de um padrão de projeto conhecido.
Ao passar por 9 padrões documentados no primeiro livro sobre padrões de projeto (Design Patterns) em computação, Marcos não se contenta em explicar a refatoração, nem o padrão. Ele nos guia pelos passos que toma e os motivos pelos quais seria perigoso seguir outro caminho.
O livro é bem fluido, e lê-lo de ponta a ponta não é um problema. Recomendo que, ao final de cada capítulo, você pause a leitura e tente refazer o código daquele capítulo sozinho. A experiência do Marcos no assunto fica óbvia com a clareza dos exemplos e o detalhe dos passos necessários. Se conseguir atingir os mesmos resultados que ele sem quebrar os testes, estará dando um belo passo em direção à excelência técnica.
Caso a leitura de ponta a ponta não seja seu estilo, não se preocupe. Cada capítulo é coeso e independente. Sinta-se à vontade para pular de padrão a padrão, na ordem que lhe convir, desde que pare para tentar seguir os passos você mesmo.
Independente do quanto você já conhece de Ruby, de refatoração ou de padrões de projeto, este livro lhe guiará por uma jornada consciente no uso conjunto dessas técnicas em uma linguagem que incorpora vários aspectos de linguagens modernas, como Orientação a Objetos, funções de primeira ordem, e tipagem forte e dinâmica. Mesmo que você não use Ruby no dia a dia, o exercício de refatoração será de muito valor e poderá ser aplicado no seu cotidiano.
─ Hugo Corbucci
Sobre o autor
Marcos Brizeno é Cientista da Computação pela Universidade Estadual do Ceará e Consultor na ThoughtWorks Brasil. Apaixonado por Engenharia de Software, em especial Metodologias Ágeis, gosta dos desafios de desenvolver software e se apaixonou à primeira vista por Ruby. Publica regularmente em http://brizeno.wordpress.com.br, e gosta de jogar videogames para passar o tempo e ter novas ideias.
Sumário
- 1 - O que você quer aprender?
- 1.1 - O que você vai encontrar
- 1.2 - Como aproveitar bem o livro
- 2 - Refatoração e padrões de projeto
- 2.1 - O que é refatoração?
- 2.2 - Técnicas de refatoração
- 2.3 - O que são padrões de projeto?
- 2.4 - Refatorando com padrões
- 3 - Ruby e o paradigma orientado a objetos
- 3.1 - Pensando orientado a objetos
- 3.2 - O que torna Ruby tão especial
- 3.3 - Outras características da linguagem
- 4 - Factory: gerenciando a criação de objetos
- 4.1 - O custo da flexibilidade
- 4.2 - Os padrões Factory
- 5 - Strategy: dividir para simplificar
- 5.1 - Um login com vários provedores
- 5.2 - O padrão Strategy
- 6 - Template Method: definindo algoritmos extensíveis
- 6.1 - Nem tão diferentes assim
- 6.2 - O padrão Template Method
- 7 - Adapter: seja como a água
- 7.1 - Caos e ordem
- 7.2 - O padrão Adapter
- 8 - State: 11 estados e 1 objeto
- 8.1 - Maria e seus poderes
- 8.2 - O padrão State
- 9 - Builder: construir com classe
- 9.1 - Muita informação em um só lugar
- 9.2 - O padrão Builder
- 10 - Decorator: adicionando características
- 10.1 - Espada mágica flamejante da velocidade
- 10.2 - O padrão Decorator
- 11 - Mediator: notificações inteligentes
- 11.1 - O espaguete de notificações
- 11.2 - O padrão Mediator
- 12 - Os outros padrões
- 12.1 - Padrões pouco utilizados
- 12.2 - Padrões mal utilizados
- 12.3 - Padrões que ninguém deveria utilizar
- 13 - Padrões de projeto e linguagens dinâmicas
- 13.1 - Padrões mais simples
- 13.2 - Padrões invisíveis
- 14 - Conclusão
- 14.1 - Design evolucionário
Dados do produto
- Número de páginas:
- 145
- ISBN:
- 978-85-5519-112-1
- Data publicação:
- 10/2015