Descrição geral
O livro constitui um guia profundo e sistemático para a construção de uma arquitetura de aplicações PHP sustentável, escalável e testável, usando o Laravel como exemplo prático. O autor começa por analisar os erros arquitetónicos e de conceção típicos que surgem com mais frequência em projetos reais: violações do princípio da responsabilidade única, uso excessivo do pensamento CRUD, abuso da "magia" do framework e a busca de um desenvolvimento pseudorápido em detrimento da qualidade do código.
De seguida, o livro mergulha progressivamente o leitor nos fundamentos de uma correta arquitetura orientada a objetos: injeção de dependências, uso significativo de herança, interfaces, traits e a renúncia a métodos estáticos onde estes dificultam a extensibilidade e os testes. É dada grande atenção a exemplos práticos e à refatoração de código existente, bem como às ferramentas que facilitam o trabalho do programador.
Uma parte significativa do livro é dedicada à camada de aplicação, ao tratamento de erros, à validação de dados e à construção de um sistema robusto de exceções. O autor delimita claramente as responsabilidades entre as camadas, mostrando como evitar que a lógica se disperse pelos controladores e modelos. São examinados separadamente eventos, filas, transações e o seu papel na construção de processos de negócio fiáveis.
Na segunda metade do livro, a atenção desloca-se para abordagens arquitetónicas mais complexas: testes unitários, camada de domínio, CQRS e Event Sourcing. Estes capítulos oferecem uma visão holística de como conceber sistemas complexos onde a lógica de negócio se torna o elemento central e a infraestrutura um aspeto secundário. O livro não é uma introdução simples e pressupõe experiência em desenvolvimento comercial, mas ao mesmo tempo fornece um quadro completo do pensamento arquitetónico moderno no ecossistema PHP.
Opinião
Um livro ambíguo que despertou os mais variados sentimentos. Por um lado, a POO proposta pelo autor neste livro parece elegante, facilmente escalável e bem testável. Por outro lado, depois de ler livros como este, apetece parar completamente de programar em POO e migrar inteiramente para a programação funcional.