Apêndice C. Troca a infraestrutura: Faz tudo com CSVs
Este apêndice pretende ser uma pequena ilustração dos benefícios dos padrões Repositório, Unidade de Trabalho e Camada de Serviço. Pretende seguir o Capítulo 6.
Quando acabamos de construir a nossa Flask API e a preparamos para o lançamento, a empresa vem pedir-nos desculpa, dizendo que não estão prontos para usar a nossa API e perguntando se podíamos construir uma coisa que lesse apenas lotes e encomendas de alguns CSVs e produzisse um terceiro CSV com alocações.
Normalmente, este é o tipo de coisa que pode levar uma equipa a praguejar, cuspir e tomar notas para as suas memórias. Mas nós não! Oh não, nós garantimos que as nossas preocupações com a infraestrutura estão bem separadas do nosso modelo de domínio e camada de serviço. Mudar para CSVs será uma simples questão de escrever um par de novas classes Repository e UnitOfWork, e então poderemos reutilizartoda a nossa lógica da camada de domínio e da camada de serviço.
Aqui está um teste E2E para te mostrar como os CSVs entram e saem:
Um primeiro teste CSV (tests/e2e/test_csv.py)
deftest_cli_app_reads_csvs_with_batches_and_orders_and_outputs_allocations(make_csv):sku1,sku2=random_ref('s1'),random_ref('s2')batch1,batch2,batch3=random_ref('b1'),random_ref('b2'),random_ref('b3')order_ref=random_ref('o')make_csv('batches.csv',[['ref','sku','qty','eta'],[batch1,sku1,100,''],[batch2,sku2,100,'2011-01-01'],[batch3,sku2,100,'2011-01-02'],])
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