Informações Gerais
Um livro de 250 páginas sobre a construção de uma arquitetura limpa em PHP (aproximadamente a mesma sobre a qual o tio Bob escreveu em seu livro). Embora o PHP possa ser facilmente substituído por Java, C# ou outra linguagem orientada a objetos de gerações anteriores. O livro que encontrei estava em inglês, então não tenho certeza se existem traduções para outros idiomas. O livro inclui trechos de código (coloridos), mas quase não há imagens, apenas alguns diagramas e fluxogramas.
Conteúdo do Livro
O livro é composto por 4 seções:
- Problemas com o Código
- Ferramentas para Resolver Problemas
- Arquitetura Limpa (em Camadas/Cebola)
- Exemplos de Arquitetura Limpa
A seção "Problemas com o Código" explica por que o código frequentemente se torna difícil de ler, testar e manter. Uma arquitetura ruim costuma ser uma das principais razões.
A segunda seção (sobre ferramentas de solução) consiste em vários capítulos. O primeiro é sobre padrões de projeto (incluindo exemplos de alguns padrões). Em seguida, há uma análise detalhada dos princípios SOLID. O capítulo seguinte aborda profundamente a injeção de dependências. O autor também não deixa de fora as interfaces, que são o tema do próximo capítulo.
A exploração da arquitetura limpa começa com uma análise do padrão MVC e uma descrição de cada um de seus componentes. O roteamento também é discutido, e, ao final do primeiro capítulo, o autor aponta as fraquezas dessa abordagem arquitetônica. Depois disso, começam os capítulos sobre a arquitetura em camadas (cebola), com uma análise detalhada de cada componente. Cada análise é acompanhada por um exemplo de código em PHP para uma camada específica (código mais abstrato, sem aprofundar detalhes). Também é dada muita atenção a aspectos e questões teóricas, como por que não deve haver um acoplamento estreito com um banco de dados ou framework, e qual é o papel dos testes nessa arquitetura.
A última seção é uma espécie de resumo de todo o livro, consolidando todo o material anterior e construindo um pequeno exemplo real com sua própria estrutura de pastas e modelo de negócios, mas utilizando frameworks e pacotes reais.
Opinião
O conceito de arquitetura em camadas, que certamente seria aprovado pelo tio Bob (Robert Martin), é implementado diretamente em PHP. Injeção de dependências, uso de interfaces, descrição e implementação de alguns padrões populares, SOLID e outras abordagens para construir arquitetura em PHP. E, o mais importante: tudo é apoiado por exemplos práticos. Portanto, recomendo este livro tanto para uma introdução quanto para um estudo aprofundado.