Leitura Obrigatória (Refatoração / Refactoring)

Postado por Osvaldo Santana

Quem me conhece sabe que adoro livros. Compro eles aos montes e quase sempre tenho uma fila interminável de leitura que nunca diminui.

Gosto de livros porque encontrei neles a melhor forma de aprender as coisas. Nunca gostei de salas de aulas e treinamentos mas sempre fui muito curioso e graças ao meu pai, que sempre lia muito, descobri que, no meu caso, a melhor forma de aprender algo novo é através dos livros.

Tendo lido vários livros eu consegui montar uma lista de livros que todos os desenvolvedores de software deveriam ler ou ao menos ter em suas prateleiras para uma rápida consulta. Sei que o Google é uma excelente ferramenta de ajuda, mas em certas situações o bom e velho livrinho repousado ao lado do teclado nos inspira para o trabalho como se fosse alguém lhe dizendo o que deve ser feito.

Como a lista é razoavelmente grande e pode crescer ainda mais vou adotar a tática de postar um de cada vez (talvez dois, quando tiver mais inspirado) aqui no blog. Assim que um novo post surgir eu irei fazer uma cópia do conteúdo dele para na página de resenhas que ficará permanentemente nos links da barra lateral.

A lista que será apresentada não é definitiva e é formada por livros que eu li e por alguns que eu ainda não li mas sei que são indispensáveis. Também tenho livros que não servem para serem lidos de ponta-a-ponta, mas simplesmente para uma rápida referência.

Refatoração (Refactoring) - Martin Fowler

Refatoração (Refactoring)Esse livro é fundamental para aqueles programadores que começaram há pouco tempo a trabalhar mas que já possuem alguns sistemas desenvolvidos. Refatorar um sistema é o nome que o autor dá à prática de aprimorar e/ou mudar o código da aplicação sem que o comportamento visível dela se altere. O funcionamento da refatoração é assegurado pela construção de testes para o sistema que será refatorado. Esses testes servem justamente para garantir que o funcionamento do sistema não será modificado pela refatoração.

O capítulo que fala sobre ‘bad smells‘ já vale a compra do livro. É um dos melhores apanhados de problemas encontrados em código fontes existentes. Depois de falar sobre os ‘bad smells‘ do código um amplo catálogo de táticas e técnicas para refatorar o sistema é fornecido.

Este livro pode ser usado para a leitura de ponta-a-ponta e deve ser guardado para referências futuras. A tradução para o português foi feita pela editora Bookman e é muito caprichosa (como quase todas as traduções da editora).

Para comprar: Refactoring e Refatoração


5 Responses to “Leitura Obrigatória (Refatoração / Refactoring)”

  1. Humberto Diógenes Says:

    Oi, Osvaldo! Eu já tinha visto algumas recomendações a respeito do Refactoring mas ainda tava na dúvida… Agora com esse post meus problemas se acabaram-se! :D Você já leu o Pragmatic Programmer? Eu falei dele lá no blog e recomendo bastante!
    P.S.: É uma pena que você não poderá vir ao EPSL este ano, mas já estamos em negociações com o Barbieri! ;)

  2. Osvaldo Santana Neto Says:

    Eu tenho esse livro (ganhei ele do Luciano Ramalho) e vai ser um dos que irei resenhar posteriormente :)
    Legal! :) O Barbieri vai mostrar algumas novidades legais pra vocês esse ano :)

  3. Allysson Sebastian Says:

    Sr. Neto,

    Pesquisando sobre AJAX e lendo no Webinsider, percebi lá na última linha dos comentários e indicação para novas leituras um nome que me atraio, lembrando quanse que o nome de uma cobra píton: Python é opção para desenvolvimento web. Mas na verdade era um nome que muito surgia em alguns textos que eu lia (desenvolvimento de websites) de ASP, PHP, MySQL, Java, etc., e sem criar curiosidade, diferente de hoje, onde me atraio como abelha no mel.

    Buscando informações para iniciar no universo AJAX, cliquei no título da matéria e comecei a ler o texto e depois seus comentários sobre o mesmo. Em suas declarações notei sua segurança em falar sobre PYTHON, inclusive no seu blog narrando disputas com um defensor do Java. Então disse para mim: “Tenho de conhecer esse cara! Preciso fazer uma pergunta, ou melhor, duas perguntas a ele, ou mais ainda, três !”

    Então sem muita demora pergunto:

    1) Conhece alguém de Teresina-Piauí, como eu, que trabalhe com PYTHON? Se não, você poderia me ajudar a “andar nesse mundo”?
    2) A técnica de tirar a água suja do copo para colocar a água limpa nele, funcionaria com um reles desenvolvedor de websites em PHP/Java/MySQL como eu ao aprender PYTHON? Se sim, por onde começo?
    3) A muito ouço falar dos excelentes profissionais oriundos de nossa grande RECIFE. Minha mãe adora essa cidade, pois morou e trabalho como arqueóloga por um bom tempo na U. Federal.
    Supondo que sejamos verdadeiros nordestinos, você estaria disposto a acompanhar meus passos me ajudando a descobrir se poderei crescer nesse ambiente de desenvolvimento de sites com o uso da Python”? Se sim, como faremos, como pode me ajudar?

    Aguardo respostas. Obrigado pela atenção.

  4. Luciano Pacheco Says:

    Allysson Sebastian, comece pelo http://www.pythonbrasil.com.br, que é o site (wiki) da comunidade Python brasileira.

    Acredito que para ter a ajuda que você quer além do site seria interessante você ler e assinar a nossa lista de discussão. http://br.groups.yahoo.com/group/python-brasil/

    Por coincidência o Osavaldo é o moderador da lista e administrador do site. :)
    Seja bem vindo a comunidade. ;)
    Até mais.

  5. Osvaldo Santana Neto Says:

    Oi Alysson,

    Em primeiro lugar, me desculpe pela demora em responder…

    1) Conhece alguém de Teresina-Piauí, como eu, que trabalhe com PYTHON? Se não, você poderia me ajudar a “andar nesse mundo”?

    Eu não conheço ninguém pessoalmente, mas acho que você poderia inaugurar a seção “PUG-PI” na página:

    http://www.pythonbrasil.com.br/moin.cgi/GrupoDeUsuarios

    O que você acha da idéia? Ser o pioneiro em seu estado e ficar famoso pelo resto da vida? ;)
    2) A técnica de tirar a água suja do copo para colocar a água limpa nele, funcionaria com um reles desenvolvedor de websites em PHP/Java/MySQL como eu ao aprender PYTHON? Se sim, por onde começo?

    Acho que todos responderiam o mesmo: começa programando.

    Tente achar um sistema que você queira fazer e comece a desenvolvê-lo em Python… Aí você recorre à documentação disponível na Internet e quando a coisa apertar e você não estiver conseguindo achar solução manda um e-mail lá pra nossa lista pedindo ajuda… :)
    3) A muito ouço falar dos excelentes profissionais oriundos de nossa grande RECIFE. Minha mãe adora essa cidade, pois morou e trabalho como arqueóloga por um bom tempo na U. Federal.
    Supondo que sejamos verdadeiros nordestinos, você estaria disposto a acompanhar meus passos me ajudando a descobrir se poderei crescer nesse ambiente de desenvolvimento de sites com o uso da Python”? Se sim, como faremos, como pode me ajudar?

    Eu moro em Recife atualmente e trabalho no INdT mas sou do interior de SP (e morei bastante tempo em Curitiba também). Ainda estamos na etapa de criar uma massa crítica maior de programadores Python por aqui (ainda são poucos).

Deixe um comentário