Skip to Content
Patrones de Arquitectura con Python
book

Patrones de Arquitectura con Python

by Harry Percival, Bob Gregory
September 2024
Intermediate to advanced
304 pages
7h 50m
Spanish
O'Reilly Media, Inc.
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.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Piensa en Python, 3ª Edición

Piensa en Python, 3ª Edición

Allen B. Downey

Publisher Resources

ISBN: 9781098185763