Refatoração Para Padrões

Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação. Você receberá um email de confirmação. Somente depois de confirmar é que poderei lhe enviar o conteúdo exclusivo por email.

Email inválido.
Blog /Livros /Refatoração Para Padrões

Refatoração Para Padrões

Vinícius Thiengo04/04/2016
(1020) (7) (18)
Go-ahead
"Invariavelmente, o que nos impede de efetuar a mudança é o fato de vincularmos mais dor a promover uma mudança do que a permanecer onde estamos."
Tony Robbins
Código limpo
Capa do livro Refatorando Para Programas Limpos
TítuloRefatorando Para Programas Limpos
CategoriaEngenharia de Software
AutorVinícius Thiengo
Edição
Ano2017
Capítulos46
Páginas598
Comprar Livro
Conteúdo Exclusivo
Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação.
Email inválido
Capa do livro "Refatoração Para Padrões" de Joshua Kerievsky
Título
Refatoração Para Padrões
Categoria
Engenharia de Software
Autor(es)
Joshua Kerievsky
Editora
bookman
Ano
2008
Edição
Páginas
400

Opa, blz?

Terminada a leitura do livro Refatoração Para padrões de Joshua Kerievsky. Excelente livro, que diferente do livro Padrões de Implementação de Kent Beck, há implementações mais consistentes para um melhor entendimento por parte do leitor.

No livro o autor apresenta um catálogo com 27 métodos para refatoração para padrões. Ele apresenta também alguns problemas de codificação mais comuns na vida dos programadores e um que chama a atenção é o problema de otimização de código antes mesmo de ele estar finalizado.

Segundo o autor nós developers devemos otimizar código somente depois de ele apresentar o problema, durante a refatoração ou quando o sistema apresenta o problema, como delay alto de resposta a requisições do código cliente.

O autor passou por sérios problemas de produção no decorrer da carreira, pois o foco dele e dos developers parceiros era primeiro em definir os padrões que seriam utilizados para depois começar o desenvolvimento.

Porém em um projeto em especifico o autor trabalhou no formato de aplicar os padrões somente depois que os trechos de códigos já estivessem prontos. Resultado? Produção aumentou e com a refatoração o código continuou com qualidade.

Uma pausa. “Colocar padrões depois”. Era isso que eu queria ouvir em todos os livros de computação que li. Muitos falam sobre padrões, mas programar já utilizando eles é, a principio, muito improdutivo, tendo em mente que mais de um padrão pode ser útil para um determinado trecho de código. Claro que um código limpo e nos conformes desde o início vai nos trazer bons frutos depois no momento da manutenção / evolução. Porém a dúvida que fica é: quem já programa assim?

Tanto Joshua quanto Kent Beck e provavelmente Martin Fowler (pois ele tem também um livro de refatoração) "seguram a bandeira" de que devemos primeiro codificar feio e depois voltar corrigindo o código, a diferença entre eles, digo, o método indicado por Kent Beck e o indicado por Joshua (que provavelmente é o mesmo de Fowler) é que Joshua é ainda mais radical a ponto de indicar a refatoração somente depois de o projeto estar pronto, enquanto Beck indica a refatoração do trecho de código (de uma classe, por exemplo) logo depois de ter finalizado esse trecho.

Voltando ao livro… o autor (novamente outro autor) indica que é muito importante aprender a codificar utilizando Test Driven Development (TDD), que ele mesmo não consegue mais prosseguir em um projeto sem utiliza-lo. Porém no livro não há exemplos do uso do TDD, que, sinceramente, não faz falta.

Até o capítulo 5 há muito conteúdo sobre problemas de código e sobre padrões (sempre em texto e não em código). Você enxerga o poder do livro logo no final do capítulo 5 onde o autor passa uma linha de estudo dos métodos de refatoração para padrões apresentados no livro. Essa linha de estudo é indicada pelo autor para melhor entendimento dos métodos de refatoração. Por que essa linha de estudo? Porque no livro os métodos não estão na ordem de fácil aprendizagem e sim na ordem de tipos de refatoração (Criação, Simplificação, Generalização, Proteção, Acumulação e Utilitárias).

Logo no capítulo 6 você já entende como será o livro dali para frente. O autor primeiro apresenta um diagrama de um código sem o padrão e logo depois o diagrama do código com o padrão. Logo em seguida o autor apresenta a motivação para a refatoração para o padrão proposto pelo método de refatoração. Junto a motivação são apresentados os pontos positivos e negativos na utilização do padrão. Em seguida o autor apresenta a mecânica para utilização do método de refatoração, o passo a passo. Esse passo a passo é o core do livro, pois diferente de conteúdos que somente comentam sobre a importância dos padrões, o autor mostra como voltamos ao nosso código legado e o corrigimos. Os passos são sempre simples, as vezes longos, mas sempre bem divididos e nada complexo como implementação de gratos e cia, sempre na linha: mova esse método dessa classe para a classe XYZ.

E assim vai até o último método de refatoração apresentado. Em alguns pontos o autor apresenta algumas comparações entre padrões para definir qual o melhor para determinado contexto, pontos também valiosos do livro. Uma parte interessante é quando Joshua discute falando sobre as diferenças entre as implementações do padrão Factory, e comenta também que muitos acreditam ser um único padrão quando na verdade são três (Abstract Factory, Factory e Factory Method), ou ao menos três.

Bom, o livro é excelente, recomendo muito a leitura dele se você pensa em elevar seu nível de programação. Uma dica importante para tirar o máximo do livro é o estudo dos padrões: Builder, Commander, Composite, Decorator,Factory (todos as variações dele), State, Strategy, Singleton e Visitor antes ou durante a leitura. Todos esses padrões estão bem documentados na Web, não enxerguei a necessidade da leitura do livro Refatoração de Martin Fowler como indicado pelo autor. Outro livro que é indicado pelo autor antes de iniciar a leitura de Refatoração Para Padrões é o livro Padrões de Projeto de Erich Gamma, John Vlissides, Ralph Johnson e Richard Helm.

O ponto negativo do livro fica na forma como o autor indica primeiro a leitura de outros livros, de forma que sem eles você não terá um bom entendimento, na verdade o estudo dos padrões que indiquei já é o suficiente e não precisa ser antes da leitura, pode ser durante quando eles são utilizados. Outro ponto negativo é o preço dele, um pouco mais caro que o valor de outros da engenharia de software que já li, mas é aquilo, veja isso como um investimento e não como um gasto.

Então é isso, já indiquei alguns livros como leitura obrigatória, indico esse sem sombra de dúvidas como um desses, caso você seja developer. O achei bem mais completo apesar de não abordar muitos padrões e sim métodos de refatoração, que era a proposta do livro. Refatoração Para padrões é para mim como o AWS Para Developers de Lecheta, editora Novatec, você vai ter de ler mais vezes para pegar 100% do conteúdo. Vou de cinco estrelas.

Obs. 1: Os códigos do livro são em Java, mas as técnicas são para qualquer linguagem, principalmente se estiver utilizando o paradigma orientado a objetos.

Obs. 2: Um método de refatoração que pode ser útil a ti caso trabalhe com código de comunicação assincrona é o método "Introduzir Objeto Nullo", developers Android concerteza trabalham com códigos assíncronos. O padrão Objeto Nullo nos polpa da verificação se um objeto é null ou não.

Vlw

Receba em primeira mão o conteúdo exclusivo do Blog, além de promoções de livros e cursos de programação.
Email inválido

Relacionado

Código Limpo - Habilidades Práticas do Agile SoftwareCódigo Limpo - Habilidades Práticas do Agile SoftwareLivros
O Codificador Limpo - Um código de conduto para programadores profissionaisO Codificador Limpo - Um código de conduto para programadores profissionaisLivros
Padrões de Implementação - Um Catálogo de Padrões Indispensável Para o Dia a Dia do ProgramadorPadrões de Implementação - Um Catálogo de Padrões Indispensável Para o Dia a Dia do ProgramadorLivros
Refatoração de Código: Substituir Construtores Por Métodos de CriaçãoRefatoração de Código: Substituir Construtores Por Métodos de CriaçãoAndroid

Compartilhar

Comentários Facebook

Comentários Blog

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...