Desenvolvimento

24 abr, 2012

Boas leituras para desenvolvedores

Publicidade

Eu fiz uma pequena lista de livros que a leitura pode beneficiar qualquer desenvolvedor de software. Divirta-se!

Código Limpo: Habilidades Práticas do Agile Software (Clean Code: A Handbook of Agile Software Craftsmanship), Robert Martin

A manutenibilidade é, sem dúvida, o aspecto mais importante de um bom software. Se você não entende o porquê, leia este livro. De convenções de nomenclatura até os princípios OO, “Tio Bob” Martin abrange todo o território de forma fragmentada e fácil. “Código limpo” é fácil de ler, mas cheio de grandes ideias e discussões abrangentes sobre o tema OO.

Vale lembrar que, se você está procurando padrões de codificação para seguir, este livro pode ser a resposta.

The Art of Unit Testing (A Arte do Teste Unitário), Roy Osherove

Durante muito tempo, meu entendimento do que era um teste unitário se resumia a “o que quer que seja que um desenvolvedor faz logo após terminar a codificação, mas antes de entregá-la para o setor de qualidade”. Coisas que caíram nessa categoria variaram de um pequeno EXE para executar algumas entradas de testes, até mexer num app até que eu ficasse satisfeito com ele (ou entediado pelo processo).

Ler “A Arte do Teste Unitário” foi uma experiência de alerta. Tenho recomendado este livro para um monte de gente e a resposta que costumo receber é: “uau, eu não tinha ideia de que havia muito para saber sobre testes unitários”. Se você já se perguntou o que era uma imitação ou por que há tantas interfaces de projetos C#, leia este livro.

Use a Cabeça! – Padrões de Projetos (Head First Design Patterns), Eric Freeman

O primeiro livro de padrões de projetos que eu (e provavelmente todos os outros nerds) li foi, naturalmente, o Gang of Four. Quero dizer, é O livro sobre o assunto.

Bem, para ser sincero, esse livro não é uma leitura fácil (por favor, tente conter seus suspiros). Por quê? Porque, às vezes, fica muito acadêmico (quase denso, alguns poderiam dizer) e os exemplos que ele usa podem ser considerados um tanto quanto antigos (ok, ele faz, repetidamente, referências a softwares que não existem desde os anos oitenta – não que haja algo de errado com isso). Ser denso e retrô podem funcionar para Tolstoi, mas ele não funciona bem com padrões de projetos.

Esse livro tem uma abordagem muito diferente. Ele se esforça muito para fazer com que os padrões de projetos sejam fáceis de entender – e consegue a maior parte do tempo. É bastante divertido, flui bem, tem bons exemplos e gasta uma boa quantidade de tempo nas melhores práticas de OO, além de padrões de projetos. Se você estiver procurando por padrões de projetos grok, sem todas aquelas frescuras, dê a esse livro uma chance!

Working Effectively with Legacy Code (Trabalhando efetivamente com código legado), Michael Feathers

Poucas coisas provocam mais reações negativas nos desenvolvedores do que as palavras “código legado”. Temos muitas maneiras de descrever códigos legados e os seus males ( código spaghetti, grande bola de lama, Windows Vista, etc). Para Michael Feathers, o código legado significa um código sem testes. Independente se você concorda com esta definição, ou não, você pode, definitivamente, aprender com ele sobre como lidar com código legado. Há um monte de coisas interessantes neste livro (o capítulo sobre as costuras do objeto por si só vale a leitura).

Se você já teve que olhar o mal nos olhos (e por “mal” eu quero dizer 1.500 linhas da função Page_OnLoad), você sabe que vai precisar de todas as ferramentas que o homem conhece para trabalhar com ele. Este livro tem um bom número dessas ferramentas. Boa sorte e que a força esteja com você!

Programação Extrema Explicada: Acolha as Mudanças (Extreme Programming Explained), Kent Beck

Kent Beck inventou a programação extrema (eu acho) e isso o torna qualificado para explicar o conceito. Duas vezes.

Falando sério, este é um grande livro: curto, fácil e direto. Se tudo o que você consegue pensar é “programação em par”, quando você ouve “XP”, leia este livro. Além disso, se tudo que você pode pensar é “alguém em minha grade durante todo o dia” quando você ouve “programação em par”, leia este livro.

Por último, um mais antigo, mais ainda sim muito bom:

O Mítico Homem-Mês (The Mythical Man-Month), Frederick Brooks

Eu não posso pensar em muitos livros que sejam, ao mesmo tempo, modernos e pitorescos. Por um lado, as observações de Brooks sobre a natureza do desenvolvimento de software são notavelmente perspicazes e relevantes. Por exemplo, a sua explicação sobre as dificuldades essenciais enfrentadas pelos desenvolvedores é incrivelmente verdadeira. Ele também abraçou, surpreendentemente, o desenvolvimento iterativo (na década de 70!). Por outro lado, há o capítulo sobre a estrutura das equipes de programação (equipe cirúrgica).

Se você for ler O Mítico Homem-Mês, por favor obter a edição atualizada. Brooks acrescentou alguns capítulos excelentes que continuar a desenvolver suas ideias originais. Coisas fascinantes.

***

Artigo original disponível em: http://tatiyants.com/reading-for-devs/