fbpx

Neste post gostaria de fazer algumas recomendações de Livros sobre Arquitetura e Design de Software para programadores, desenvolvedores de software, arquitetos de software, e engenheiros de software que trabalham em times ágeis.

Estes Livros sobre Arquitetura e Design de Software tratam de assuntos boas práticas de programação, design, arquitetura, testes e requisitos não funcionais como performance, segurança e escalabilidade.

Se você quiser recomendações de livros sobre métodos e processos ágeis, veja este outro post. Por outro lado, se você estiver buscando especificamente sobre arquitetura de microservices (microserviços), veja esse outro post com os melhores livros sobre microservices.

Para facilitar, procurei deixar links para as versões em português e inglês dos livros, muito embora, eu recomendo, sempre que possível que você leia versão original em inglês.

1) Working effectively with legacy code (Trabalho Eficaz com Código Legado)

É mais fácil escrever código novo do que dar manutenção em código legado, e quase todos os desenvolvedores que conheço preferem trabalhar num projeto novo ou em uma nova funcionalidade do que dar manutenção em código legado. Mas na vida real, boa parte do trabalho dos desenvolvedores é fazer melhorias e alterar código legado. Por isso considero esse livro é fundamental para todo desenvolvedor.

Este livro trata de padrões e técnicas para que você possa evoluir o código legado sem ter que reescrever tudo, e com fazendo testes de unidade para evitar quebrar alguma funcionalidades pré-existente, mesmo nos casos mais desafiadores em que o design do código não facilita a testabilidade.  

Working Effectively with Legacy Code
  • Michael Feathers
  • Publisher: Prentice Hall
  • Edition no. 1 (10/02/2004)
  • Capa comum: 464 pages
Trabalho Eficaz com Código Legado
  • Michael C. Feathers
  • Publisher: Bookman
  • Edition no. 3 (04/05/2013)
  • Capa comum: 428 pages

2) Clean Code (Código Limpo)

Por Robert C. Martin

Este livro vai te ensinar a escrever código fácil de se entender, tanto para você mesmo quando para o os demais membros do seu time. É um livro realmente transformador.

Depois de ler esse livro, você vai mudar completamente a maneira que codifica, e pode ter certeza que vai gerar um grande impacto na sua própria produtividade bem como na produtividade da sua equipe com um todo.

Oferta
Clean Code: A Handbook of Agile Software Craftsmanship
  • Robert C. Martin, Michael C. Feathers, Timothy R. Ottinger
  • Publisher: Prentice Hall PTR
  • Edition no. 1 (08/11/2008)
  • Capa comum: 431 pages
Oferta
Código limpo: Habilidades Práticas do Agile Software
  • Robert C. Martin
  • Publisher: Alta Books
  • Edition no. 1 (09/08/2009)
  • Capa comum: 440 pages

3) Patterns of Enterprise Application Architecture

Por Martin Fowler

A linha entre o que é Design de Software e Arquitetura de Software é muito tênue e difícil de se definir mesmo para os maiores estudiosos da área.

Martin Fowler, sem dúvida, é uma das principais mentes no Design e Arquitetura de Software, e nesse livro ele explora uma série de padrões que vão te ajudar a construir aplicativos corporativos complexos com boas práticas para performance, escalabilidade, segurança e manutenabilidade.

Veja também uma palestra minha sobre concorrência, baseada nos conceitos deste livro.

Patterns of Enterprise Application Architecture
  • Martin Fowler
  • Publisher: Addison-Wesley Professional
  • Edition no. 1 (11/15/2002)
  • Capa dura: 560 pages
Padrões de Arquitetura de Aplicações Corporativas
  • Martin Fowler
  • Publisher: Bookman
  • Edition no. 1 (02/03/2006)
  • Capa comum: 492 pages

4) Domain Driven Design

Por Eric Evans

Todo software corporativo resolve problemas de negócio. E nada melhor do que o código fonte falar a mesma linguagem dos negócios em vez de tentar reinventar a roda com jargões e termos que não serão compreendidos pelas pessoas de negócios.

Este livro ensina a criar uma linguagem comum entre desenvolvedores e usuários, e a pensar no design do código de uma maneira que favoreça o entendimento e a evolução do software através de padrões que colocam em primeiro lugar o domínio de negócio.

Domain-Driven Design: Tackling Complexity in the Heart of Software (English Edition)
  • Eric Evans
  • Addison-Wesley Professional
  • eBook Kindle
  • Edition no. 1 (08/22/2003)
  • Inglês
Oferta
Domain Driven Design: Atacando as Complexidades no Coração do Software
  • Eric Evans
  • Publisher: Alta Books
  • Edition no. 3 (12/16/2016)
  • Capa comum: 528 pages

5) Refactoring: Improving the Design of Existing Code

Por Martin Fowler

A Refatoração é uma das principais técnicas ágeis de engenharia de software, e fundamental para a evolução profissional de sistemas.

Este livro explica detalhamento os principais conceitos e explora as melhores práticas para que você possa melhorar constantemente o código sem alterar a funcionalidade do software.  

Refactoring: Improving the Design of Existing Code
  • Martin Fowler
  • Publisher: Addison-Wesley Professional
  • Edition no. 1 (06/28/1999)
  • Capa dura: 464 pages
Refatoração: Aperfeiçoando o Projeto de Código Existente
  • Martin Fowler
  • Bookman
  • eBook Kindle
  • Edition no. 1 (01/01/2004)
  • Português

6) Growing Object-Oriented Software

Por Nat Pryce, Freeman Steve

Este livro vai unir alguns conceitos dos livros citados anteriormente como Refatoração, Test Driven Development (TDD), Design Patterns e Testes Unitários e te ajudar a juntar todas as peças para aplicar tudo isso em conjunto no seu dia-a-dia.

Recomendo ler esse livro como complemento depois ter lido o livro anteriores. 

Desenvolvimento de software - orientando a objetos
  • Steve Freeman, Nat Pryce
  • Publisher: Alta Books
  • Edition no. 1 (09/26/2012)
  • Capa comum: 384 pages
Growing Object-Oriented Software, Guided by Tests (Addison-Wesley Signature Series (Beck)) (English Edition)
  • Steve Freeman, Nat Pryce
  • Addison-Wesley Professional
  • eBook Kindle
  • Edition no. 1 (10/12/2009)
  • Inglês

7) The Pragmatic Programmer

Por Andy Hunt, Dave Thomas

De todas as recomendações esse livro é o menos técnico, e mais conceitual, mas de forma alguma é menos importante do que os outros livros.

Este livro vai trabalhar o seu mindset para que nunca deixe se aprender, de se desafiar, e vai te trazer conceitos de muita maturidade profissional, que talvez você levaria anos para conquistar sozinho.  

The Pragmatic Programmer: From Journeyman to Master (English Edition)
  • Andrew Hunt, David Thomas
  • Addison-Wesley Professional
  • eBook Kindle
  • Edition no. 1 (10/20/1999)
  • Inglês
O Programador Pragmático: De Aprendiz a Mestre
  • Andrew Hunt, David Thomas
  • Bookman
  • eBook Kindle
  • Edition no. 1 (01/01/2010)
  • Português

8) Clean Architecture

Por Robert C. Martin

Esse livro vai te ensinar conceitos importantes para entender os diferentes paradigmas de programação (programação orientada a objetos, programação funcional e programação estruturada) além de abordar princípios para um bom design como o princípio da responsabilidade única, o princípio da substituição de Liskov, e injeção de dependências.  

Clean Architecture: A Craftsman's Guide to Software Structure and Design
  • Robert C. Martin
  • Publisher: Prentice Hall
  • Edition no. 1 (09/20/2017)
  • Capa comum: 432 pages
Oferta
Arquitetura Limpa: O Guia do Artesão Para Estrutura e Design de Software
  • Robert C. Martin
  • Publisher: Alta Books
  • Edition no. 1 (11/27/2019)
  • Capa comum: 432 pages

9) Building Evolutionary Architectures: Support Constant Change

Por Neal Ford, Rebecca Parsons, Patrick Kua

Depois de anos atuando como consultor em diferentes projetos de empresas de todos os tamanhos, Neal Ford, compartilha nesse livro as principais lições aprendidas para a construção de sistemas que nunca podem parar de evoluir.

Leitura essencial para equipes de desenvolvimento ágil de software que atuam em produtos (em vez projetos).

Building Evolutionary Architectures: Support Constant Change (English Edition)
  • Neal Ford, Rebecca Parsons, Patrick Kua
  • O'Reilly Media
  • eBook Kindle
  • Edition no. 1 (09/18/2017)
  • Inglês

10) Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation

Por Jez Humble, David Farley

O ritmo da inovação tecnológica vem aumentando cada vez mais, e por isso, fazer deploy de novas versões deve ser fácil rápido e sem perda de disponibilidade, porém, para que isso seja possível é preciso que código e arquitetura do software seja projetada para atender esses requisitos.

Nesse livro você vai aprender as mais importantes técnicas, princípios e ferramentas para fazer entrega contínua em seus projetos.  

Entrega Contínua: Como Entregar Software de Forma Rápida e Confiável
  • Jez Humble, David Farley
  • Bookman
  • eBook Kindle
  • Edition no. 1 (01/01/2014)
  • Português

11) Beyond Software Architecture: Creating and Sustaining Winning Solutions

Autor Luke Hohmann

Esse livro traz uma visão interessante sobre coisas importantes a serem levadas em consideração que vão além da codificação, testes, design e arquitetura de software, coisas como licenciamento, entrega (deploy), instalação, configuração, e suporte.  

12)  97 Things Every Software Architect Should Know: Collective Wisdom from the Experts

Autor Richard Monson-Haefel

Com participação de grandes ícones do mundo da engenharia de software esse livro traz lições muitos interessantes e valiosas que podem evitar que você e sua empresa paguem por erros que outros já comeram como colocar seu currículo ou suas tecnologias de preferência na frente dos requisitos do sistema em desenvolvimento, subestimar problemas não técnicos, não desenvolver habilidades de comunicação efetivas, não dar a devida importância a interface de usuário, deixar a performance de lado na hora de desenvolver.

97 Things Every Software Architect Should Know: Collective Wisdom from the Experts (English Edition)
  • Richard Monson-Haefel, Kevlin Henney
  • O'Reilly Media
  • eBook Kindle
  • Edition no. 1 (02/05/2009)
  • Inglês

13) Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Autores Gregor Hohpe, Bobby Woolf

Este foi o livro que deu origem ao Camel um dos principais frameworks de integração de softwares corporativos no mundo. Sabemos que quase nenhum software funciona isolado.

O ERP precisa buscar dados de clientes do CRM para faturar, e integrar com o banco para consultar o saldo da conta bancária, o CRM conecta nas redes sociais para verificar o engajamento dos clientes, o software de forecasting conecta no Canal do Tempo para verificar se o Supermercado vai vender mais cerveja do que no próximo final de semana.

Este livro vai te dar uma base forte sobre Integração de Software para que você construa sistemas que conversam melhor com o mundo externo de forma segura, escalável, interoperáveis e com alta disponibilidade.  

14) Design It

Esse é o livro perfeito para você que é desenvolvedor de software, e nunca teve muito contato com arquitetura, mas pretende aprender mais sobre arquitetura de software, e está buscando uma posição de arquiteto de software.

Design It!
  • Micahel Keeling
  • Publisher: O′Reilly
  • Capa comum: 354 pages

Pronto para se tornar um especialista em Arquitetura e Design de Software?

Então comece lendo todos esses livros, e praticando muito!

Gostou dessas recomendações Livros sobre Arquitetura e Design de Software?

Conhece algum outro bom?

Deixe opinião e indicações nos comentários.

Share This