Skip to Main Content
Patrones de Arquitectura con Python
book

Patrones de Arquitectura con Python

by Harry Percival, Bob Gregory
September 2024
Intermediate to advanced content levelIntermediate to advanced
304 pages
7h 50m
Spanish
O'Reilly Media, Inc.
Book available
Content preview from Patrones de Arquitectura con Python

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)

def test_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.
Start your free trial

You might also like

Introducción a Python, 2ª Edición

Introducción a Python, 2ª Edición

Bill Lubanovic

Publisher Resources

ISBN: 9781098185763Supplemental Content