Software Architecture Pattern – Scarica la mappa gratuita!

4 minutes read
18 Novembre 2022

Il principale compito dei team di sviluppo, come si intuisce dalla parola stessa, consiste nello sviluppare software. Prima di poter iniziare a scrivere il codice che farà effettivamente funzionare il software, però, è necessario determinare come il software sarà composto: questo processo di design del software permette di individuare i vari elementi che andranno a formarlo, il tipo di interazione tra di essi e quali comunicazioni con altri software sono richieste. L’output del processo di design è una rappresentazione visuale dell’architettura del software, un vero e proprio diagramma che illustra tutti i vari componenti interni, le loro proprietà e le relazioni tra di essi e con altri sistemi esterni.

 

Pattern architetturali: cosa sono e quali sono i benefici

Nel corso degli anni si sono venuti a creare dei pattern per disegnare le architetture dei software: si tratta di veri e propri stili architetturali, cioè soluzioni a problemi comuni, riutilizzabili in contesti simili e basate su best practice derivate dall’esperienza accumulata nel tempo. Adottare un pattern architetturale porta diversi benefici:

  • Accelerare il processo di design: di conseguenza, iniziare prima la fase di sviluppo e ridurre il time-to-market;
  • Risolvere alla radice alcuni problemi comuni;
  • Facilitare la comunicazione intra e infra team perché si usano termini noti e visualizzabili, per cui sono tangibili ed è possibile dare feedback di miglioramento;
  • Semplificare la naturale evoluzione dell’architettura durante il ciclo di vita del prodotto digitale;
  • Costruire un software affidabile e performante, non reinventando soluzioni per affrontare problemi noti ma adottando le pratiche più adeguate per affrontarli.

 

Scarica la mappa dei principali pattern architetturali

Esistono moltissimi pattern architetturali, che ormai coprono la maggior parte delle casistiche che si possono incontrare nella progettazione di un software. Inoltre, nuovi pattern vengono ideati e condivisi continuamente nelle community open-source, includendo le nuove tecnologie a disposizione.

In questo panorama, Giulio Roggero, CTO e co‑founder di Mia‑Platform, ha raccolto alcuni degli stili più utilizzati, e li ha catalogati in una mappa mentale a seconda del tipo di soluzione che offrono. La lista non è esaustiva perché, come menzionato, il panorama dei pattern disponibili è molto vasto e in continua evoluzione, ma questa mappa può fornire spunti utilissimi in molti contesti.

Qui sotto puoi vedere un’anteprima della mappa:

Mia-Platform-Software_Architecture_Patterns

Per scaricare il file in alta qualità, gratuitamente e senza necessità di registrarti, clicca sul bottone qui sotto:

Scarica

Catalogazione dei pattern architetturali

Di seguito trovi una breve spiegazione dei vari gruppi in cui sono suddivisi i pattern architetturali dell’immagine, insieme a una breve descrizione di ciascuno di essi.

 

By Connections

Ci sono diversi modi di connettere servizi ed applicazioni legandole tra di loro:

  • RPC (Remote Procedure Call);
  • REST (REpresentational State Transfer);
  • BFF (Backend For Frontend);
  • P2P (Peer‑To‑Peer);
  • SOA (Service‑Oriented Architecture).

 

By Composition

I primissimi applicativi software hanno adottato il principio Divide et impera con moduli e funzioni. Più il software si complica, più è necessario isolarlo in modo da poterlo far evolvere:

 

By Events

Gli eventi sono un ottimo modo per ridurre l’accoppiamento tra i diversi componenti del software. Un’architettura ad eventi comporta un aumento di complessità e risulta più difficile da gestire, ma in certi contesti questo tipo di soluzione è preziosa:

  • Pub/Sub;
  • CQRS (Command Query Responsability Segregation);
  • ES (Event Sourcing);
  • Reactive.

 

By Stream

La quantità di dati che transita ogni giorno sta aumentando esponenzialmente. Gestire gli stream dati per estrarre informazioni utili può essere di enorme valore:

  • Fast Data;
  • Pipe and Filters;
  • Message Brokers.

 

By Data

Il dato è centrale per realizzare applicazioni di valore. Da come viene gestito possono dipendere interi business:

  • Data Fabric;
  • Data Mesh;
  • Data Warehouse;
  • Data Centric Business Logic;
  • Data Lake.

 

By Knowledge

Basandosi sulla capacità di unire le informazioni è possibile costruire agenti autonomi in grado di risolvere problemi complessi:

  • Blackboard;
  • Rule-Based;
  • AutoML.

 

By Purpose

Combinando diversi pattern è possibile realizzare artefatti ancora più elaborati che hanno lo scopo di generare valore per chi li utilizza:

 

Conclusione

Invia il file ad amici e colleghi, e condividilo sui social taggando i profili ufficiali di Mia‑Platform!

Se vuoi segnalare qualche altro pattern che vorresti vedere in questa mappa scrivi un commento qui sotto, ti risponderemo al più presto.

Mia-Platform RBAC Platform Engineering
Back to start ↑
TABLE OF CONTENT
Pattern architetturali: cosa sono e quali sono i benefici
Scarica la mappa dei principali pattern architetturali
Catalogazione dei pattern architetturali
Conclusione