Livros: escolhendo a trindade do desenvolvedor Java

Muitas pessoas costumam me perguntar se o livro X é bom, se o livro Y cobre bem Java EE, assim por diante. Alguns desses livros são super específicos de uma determinada tecnologia Java, como por exemplo Struts in Action que só aborda a versão 1.x.y do Struts. Em um curto espaço de tempo você vai acabar reciclando as folhas desses livros: ficarão desatualizados.

Na Caelum começamos a debater sobre quais livros importantes havíamos lidos e que ainda eram úteis, e queríamos muito que os outros que participavam da discussão também tivessem lido. A lista estava ficando muito grande quando resolvemos corta-la para apenas 3. Separamos então a trindade do desenvolvedor Java. O critério da escolha foi tentar achar uma intersecção dos livros considerados importantes por nós que todos saíssem satisfeitos. Repare que já são bem velhinhos:

  • Refactoring, Martin Fowler
  • Livro do cientista chefe da ThoughtWorks, a famosa empresa onde nosso amigo Carlos Villela trabalha. Um excelente catálogo das gambiarras (smells, mal cheiro) que acabam aparecendo no seu código e como você pode fazer para conserta-las de maneira sensata. Ok, você já sabia disso. Exemplos clássicos são o uso de herança apenas por preguiça, uso do switch em vez de polimorfismo, entre milhares. Uma pena o código não usar a conveção da Sun e estar lotado de underscores…

  • Effective Java, Joshua Bloch
  • Livro do ex bambambam da Sun (você pode encontrar o nome dele como @author das principais classes do Java SE), agora no Google. Aqui ele mostra como enfrentar os principais problemas e limitações da linguagem. Se você já programa a algum tempo sem dúvida alguma já passou por boa parte dos casos catalogados. Uma excelente leitura, além de simples pois cada caso é relatado em um texto bem curto. Entre os casos interessantes está o uso de factory methods, os problemas da herança e do protected, uso de coleções, objetos imutáveis e serialização.

  • Design Patterns, Erich Gamma et al
  • O clichê dos clichês não poderia estar fora da lista! Livro do atual líder do projeto Eclipse, entre outros. Compre! E ao contrário do que muitos fazem não saia lendo o catálogo dos patterns decorando-os, concentre-se em ler toda a primeira parte onde eles revelam duas regras de ouro da programação orientada a objetos: “Evite herança, prefira composição” e “Programe voltado a interfaces e não à implementação“. Infelizmente perdi minha cópia hard-cover em inglês, faz uma falta imensa na empresa.

Apesar disso, todos eles revelam sinais de sua idade. No Design Patterns, muita gente já considera Singleton como um antipattern (como discutido neste post). Mais ainda, alguns vão além, dizendo que se você precisou utilizar um design pattern, é provável que a sua linguagem não tenha um nível de abstração suficiente para suprir as suas necessidades. Na minha opinião, uma crítica válida.

No Refactoring e no Effective Java, muita coisa já não ocorre mais das formas descritas devido ao Java 5 (em especial com o uso de generics e enumerações), além de que vários códigos podem ser escritos de uma forma mais elegante.

Claro que eu não deixo de ler alguns livros bem técnicos. Os últimos dois que gostei muito foram Lucene in Action e Enterprise Java Beans 5th edition (este último é excelente). Ao contrário dos livros JSF in action e do Core JSF, livros os quais não achei que foram escritos de maneira a prender a atenção do leitor: joga-se muita especificação e conceitos, além de que não há uma ordem de aprendizado, parece mais um guia de referência. Sinceramente, não faz sentido algum explicar todos os passos de uma requisição JSF sem antes mostrar concretamente o objetivo e uso da tecnologia.

Ficaram de fora da lista Programming Pearls, Practices of an Agile Developer, The Pragmatic Programmer, The Practice of Programming entre outros gigantes. E você, tem algum livro que considere imprescindível para os desenvolvedores Java? Tem uma outra formação para a sua trindade?

17 Comentários

  1. João Paulo (neófito) 24/09/2006 at 23:05 #

    Um livro que na minha opinião não deveria faltar na biblioteca de NENHUM programador OO é Applying UML and Patterns do Craig Larman, por sua importantíssima explanação sobre padrões GRASP e outros princípios fundamentais de projeto OO, que na verdade são o fundamento e as motivações de praticamente todos patterns.

  2. Fernando Boaglio 25/09/2006 at 11:55 #

    As pessoas da Caelum que participaram dessa discussão poderiam postar aqui nos comentários os 5 melhores livros que sugeriram e ficaram fora da lista acima… com certeza muita coisa boa tem. =)

  3. Rafael Naufal 19/10/2006 at 10:38 #

    Um livro que acho muito bom também para aprender os conceitos do paradigma OO e Java é o Thinking in Java de Bruce Eckel. Livro de leitura fácil, traz ao leitor conceitos de OOP com exemplos bastante práticos e úteis, além de disseminar as melhores práticas do desenvolvimento Java.

  4. Junior 27/03/2008 at 19:50 #

    O EFFECTIVE JAVA PROGRAMMING LANGUAGE GUIDE ja esta na 2 edicao e contempla isso que voces falaram.

  5. Paulo Silveira 29/07/2009 at 03:22 #

    Que fique aqui registrado, que adicionariamos mais dois livros bem populares entre o pessoal da Caelum: Pragmatic Programmer do Andrew Hunt e The Mythical Man-Month do Frederick Brooks.

  6. Daniel 06/04/2011 at 14:57 #

    Vale a pena comprar a versão em português destes livros?

  7. Fred Alencar 08/08/2011 at 23:08 #

    O livro do Craig Larman também é fantástico. Uma verdadeira aula de desenvolvimento de software.

  8. Rafael 03/05/2013 at 23:40 #

    Seria legal um novo post no blog atualizando a lista de livros 😀

  9. Andrew 03/07/2014 at 13:53 #

    Acabei de comprar o livro Applying UML and Patterns do Craig Larman.
    Simplesmente fantástico!

  10. Caio Santesso 10/09/2014 at 20:26 #

    Essa lista ainda é atual?

  11. Paulo Silveira 11/09/2014 at 00:22 #

    oi caio! Eu diria que sim. Lembrando que o Effective Java tem nova edicao e muita coisa muda com o Java 8.

  12. Maria Rafaela 09/11/2015 at 16:00 #

    Muito bom esses livros, nessa lista ai eu só acrescentaris o depois dos quinze. Abraço!

  13. Guaracy A. Lima 30/11/2015 at 13:31 #

    Bem, isso é melhor que Shakespeare.

  14. Francisco Sales 29/01/2016 at 12:44 #

    E qual é a sequencia mais apropriada de leitura(entre os 3 livros mencionados)? Se é que tem uma!

Deixe uma resposta