Apéndice C. Cambiar la infraestructura: Hazlo todo con CSV
Este apéndice pretende ser una pequeña ilustración de las ventajas de los patrones Repositorio, Unidad de Trabajo y Capa de Servicio. Está pensado como continuación del Capítulo 6.
Justo cuando terminamos de crear nuestra API de Flask y de prepararla para su lanzamiento, la empresa se dirige a nosotros disculpándose, diciendo que no están preparados para utilizar nuestra API y preguntando si podríamos crear algo que sólo leyera los lotes y los pedidos de un par de CSV y diera como resultado un tercer CSV con las asignaciones.
Normalmente, este es el tipo de cosas que harían que un equipo maldijera, escupiera y tomara notas para sus memorias. Pero nosotros no. No, nos hemos asegurado de que nuestros problemas de infraestructura estén bien desacoplados de nuestro modelo de dominio y capa de servicio. Cambiar a CSV será una simple cuestión de escribir un par de nuevas clases Repository y UnitOfWork, y entonces podremos reutilizartoda nuestra lógica de la capa de dominio y la capa de servicio.
Aquí tienes una prueba E2E para que veas cómo entran y salen los CSV:
Una primera prueba 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
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