MAISON CODE .
/ Tech · React · Design Systems · Atomic Design · Architecture · Frontend

Progettazione atomica: la chimica dell'architettura dell'interfaccia utente

L'interfaccia utente non è un dipinto. È un sistema. Come scomporre le interfacce complesse in atomi, molecole e organismi per uno sviluppo React scalabile.

AB
Alex B.
Progettazione atomica: la chimica dell'architettura dell'interfaccia utente

Ai vecchi tempi costruivamo “Pagine”. home.html, about.html, contact.html. Se volevi cambiare il colore del pulsante, dovevi modificare 50 file. Oggi costruiamo Sistemi. Brad Frost ha coniato il termine Atomic Design. Inquadra l’interfaccia utente come una gerarchia biologica. Si allinea perfettamente con l’Architettura basata su componenti (React, Vue, Svelte). Se non lo usi, la tua base di codice sarà probabilmente un pasticcio di stili incoerenti. Stai copiando le classi CSS invece di importare componenti.

Perché Maison Code ne parla

In Maison Code Paris, agiamo come la coscienza architettonica dei nostri clienti. Spesso ereditiamo stack “moderni” costruiti senza una comprensione fondamentale della scala.

Discutiamo di questo argomento perché rappresenta un punto di svolta critico nella maturità ingegneristica. Implementarlo correttamente differenzia un MVP fragile da una piattaforma resiliente di livello aziendale.

Perché il codice Maison impone la progettazione atomica

Non costruiamo “Siti Web”. Costruiamo “Prodotti”. I prodotti durano 5 anni. Senza un Design System il prodotto marcisce. Atomic Design è il vaccino contro “UI Rot”. Costringe gli sviluppatori a pensare in “Modelli”, non in “Pagine”. Ci permette di ampliare la squadra. 10 sviluppatori possono lavorare sulla stessa app senza intralciarsi a vicenda.

1. La Gerarchia

Atomi

I più piccoli elementi costitutivi. Non possono essere ulteriormente scomposte senza cessare di funzionare.

  • Esempi: <Pulsante>, <Input>, <Label>, <Icona>, <ColorSwatch>.
  • Codice: “tsx const Pulsante = ({ variante, figli }) => { restituisce <button className={btn-€{variant}}>{children }

Gli atomi hanno stili globali ma zero logica applicativa.

Molecole

Gruppi di atomi legati insieme per funzionare come un’unità.

  • Esempio: <SearchForm> (Input + Pulsante).
  • Esempio: <SchedaProdotto> (Immagine + Titolo + Prezzo + Pulsante).
  • Filosofia: fai bene una cosa. Una molecola potrebbe avere uno stato dell’interfaccia utente locale (“isOpen”), ma raramente una logica di business.

Organismi

Gruppi di molecole uniti per formare una sezione distinta di un’interfaccia.

  • Esempio: <Header> (Logo + Nav + SearchForm + CartIcon).
  • Esempio: <ProductGrid> (Elenco delle schede prodotto).
  • Stato: gli organismi spesso controllano lo “Stato locale” o comunicano con l’API. Sono i componenti “intelligenti”.

Modelli

Oggetti a livello di pagina che inseriscono componenti in un layout.

  • Esempio: <MainLayout> (Intestazione + Barra laterale + Contenuto + Piè di pagina).
  • Contesto: Definiscono la griglia, ma non il contenuto. Gestiscono la reattività.

Pagine

Istanze specifiche di modelli con contenuto reale.

  • Esempio: HomePage, ProductDetailPage. Le pagine collegano il Router allo Store (Redux/Zustand) e trasmettono i dati agli Organismi.

2. Perché questo è importante per la qualità del codice

Riutilizzabilità

Se costruisci un buon atomo <Button>, lo utilizzerai 1.000 volte. Se risolvi un bug nel pulsante (ad esempio, aggiungendo uno spinner di caricamento), lo correggi istantaneamente in 1.000 punti. Questa è la Leva finanziaria.

Coerenza

(Vedi Coerenza del marchio). Gli sviluppatori non devono indovinare “Di quale riempimento ha bisogno questo pulsante?”. Importano semplicemente "