Capítulo 6. Padrão de unidade de trabalho
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
Neste capítulo, apresentaremos a peça final do quebra-cabeça que une os padrões Repositório e Camada de Serviço: o padrão Unidade de Trabalho.
Se o padrão Repository é a nossa abstração sobre a ideia de armazenamento persistente, o padrão Unit of Work (UoW) é a nossa abstração sobre a ideia de operações atómicas. Ele nos permitirá finalmente e completamente desacoplar nossa camada de serviço da camada de dados.
AFigura 6-1 mostra que, atualmente, ocorre muita comunicação entre as camadas da nossa infraestrutura: a API fala diretamente com a camada da base de dados para iniciar uma sessão, fala com a camada do repositório para inicializarSQLAlchemyRepository, e fala com a camada do serviço para lhe pedir para alocar.
Dica
O código para este capítulo está no ramo chapter_06_uow no GitHub:
git clone https://github.com/cosmicpython/code.git cd code git checkout chapter_06_uow # or to code along, checkout Chapter 4: git checkout chapter_04_service_layer
Figura 6-1. Sem UoW: A API fala diretamente com três camadas
A Figura 6-2 mostra nosso estado alvo. A API do Flask agora faz apenas duas coisas: inicializa uma unidade de trabalho e invoca um serviço. O serviço colabora com o UoW (gostamos de pensar no UoW como sendo parte ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access