">
 

Pipeline Architecture: dati che fluiscono attraverso filtri

Iniciado por joomlamz, Hoje at 18:25

Respostas: 0   |   Visualizações: 1

Tópico anterior - Tópico seguinte

0 Membros e 1 Visitante estão a ver este tópico.

Pipeline Architecture: dati che fluiscono attraverso filtri



Tópico: Pipeline Architecture: dati che fluiscono attraverso filtri
Categoria: Tutoriais | Programação & Tecnologia
Idioma Principal: Português (Conteúdo de Tecnologia)

Descrição do Conteúdo / Informações:
-------------------------------------------------------------------------


L'idea: dati in ingresso, trasformazioni in sequenza, risultato in uscita


Un'immagine caricata dall'utente deve essere: validata (dimensioni, formato), ridimensionata, compressa, convertita in WebP, caricata su CDN, e il suo URL salvato nel database. Ogni passaggio e indipendente e potrebbe essere riordinato, rimosso o aggiunto senza influenzare gli altri. Questa catena di trasformazioni e una pipeline.

La Pipeline Architecture (o Pipes and Filters) organizza il processing come una sequenza di filtri collegati da pipe. Ogni filtro riceve un input, lo trasforma, e produce un output che diventa l'input del filtro successivo. I filtri non si conoscono tra loro — conoscono solo il formato dei dati che ricevono e producono.



Struttura: Pipe, Filter, Source, Sink



Source: il punto di ingresso dei dati (upload dell'utente, file CSV, request HTTP)


Filter: un componente che trasforma i dati. Ha un input e un output. Non ha stato condiviso con altri filtri.


Pipe: il connettore tra due filtri. Passa l'output di un filtro come input del successivo.


Sink: il punto di uscita (database, file, response HTTP)



Pipeline Architecture in PHP: il middleware


Il caso più evidente di Pipeline in PHP e il middleware HTTP. Ogni middleware e un filtro che riceve la request, la può modificare, la passa al filtro successivo, e può modificare la response al ritorno:


CsrfMiddleware: verifica il token CSRF. Se invalido, blocca. Se valido, passa al prossimo.


AuthMiddleware: verifica l'autenticazione. Aggiunge l'utente alla request.


RateLimitMiddleware: verifica il rate limit. Se superato, risponde 429.


CorsMiddleware: aggiunge gli header CORS alla response.

In Soft PHP MVC, il MiddlewarePipeline e un'implementazione pura della Pipeline Architecture: ogni middleware implementa la stessa interfaccia, viene eseguito in sequenza, e può interrompere la catena o modificare i dati che attraversano.



Esempio teorico: ETL (Extract-Transform-Load)


Un import di dati da un file CSV al database e una pipeline naturale:


Extract: legge il CSV riga per riga (generator PHP per memoria costante)


Validate: scarta le righe con dati invalidi, logga gli errori


Normalize: converte date, normalizza nomi, pulisce spazi


Deduplicate: rimuove duplicati per chiave unica


Enrich: aggiunge dati da API esterne (geocoding, validazione email)


Transform: mappa i campi CSV nei campi del database


Load: inserisce nel database in batch da 500

Ogni filtro e una classe indipendente, testabile e riutilizzabile. Puoi riordinare i filtri, aggiungerne di nuovi, o rimuoverne senza toccare gli altri.



Pipeline con Generator PHP


I generator PHP sono lo strumento ideale per implementare pipeline lazy:

$result = load(transform(enrich(deduplicate(normalize(validate(extract('data.csv')))))));

Ogni funzione e un generator che yielda i risultati uno alla volta. L'intera pipeline processa un record alla volta con memoria costante, indipendentemente dalla dimensione del file.



Quando usare la Pipeline Architecture



Usa Pipeline per processing sequenziale di dati: ETL, image processing, log parsing


Usa Pipeline per middleware HTTP: ogni step aggiunge o verifica qualcosa


Usa Pipeline quando i passaggi sono indipendenti e potenzialmente riordinabili


Non usare Pipeline quando i passaggi hanno dipendenze complesse tra loro e l'ordine e rigido


Non usare Pipeline per flussi con branching complesso: un albero di decisioni non e una pipeline

La Pipeline Architecture e la più antica e la più elegante: e la filosofia Unix applicata al software. Ogni filtro fa una cosa sola e la fa bene. Collegati insieme, risolvono problemi complessi con componenti semplici.

👉 Leggi l'articolo completo su iadicola.it


Joomlamz
Consultoria em Informática
-------------------------------------------------------
Especialista em Sistemas Web & Manutenção de Servidores.
A desenvolver o novo AplPortal com suporte a PHP 8.
Precisa de ajuda profissional? Contacte-me.

Tags: