Sistema degli ambiti
Sistema degli ambiti
Il sistema degli ambiti controlla dove le sezioni riutilizzabili di FaceFlow sono visibili e condivise.
Per gli utenti tecnici, l'ambito è una delle regole architetturali fondamentali in FaceFlow. Decide se una sezione riutilizzabile si comporta come un asset globale, un asset di una famiglia di pagine o un asset locale esclusivo di una singola Pagina.
Tre livelli di ambito
- Sito: condiviso su tutto il sito
- Layout: condiviso tra Pagine che usano lo stesso Layout
- Pagina: locale a una singola Pagina
Modello mentale tecnico
Considera l'ambito come un contratto di visibilità e impatto delle modifiche associato a un'istanza di sezione riutilizzabile.
Concettualmente:
{
"component": "announcement-strip",
"scope": "site"
}Il campo importante non è la forma esatta di memorizzazione. La regola importante è che l'ambito determina quanto ampiamente quell'istanza dovrebbe essere riutilizzata e quanto diffusamente una modifica successiva si propagherà.
Perché l'ambito è importante
L'ambito impedisce che il riuso degeneri in caos.
Senza regole di ambito, i team o:
- duplicano lo stesso blocco ovunque
- condividono eccessivamente un blocco che avrebbe dovuto rimanere locale
- perdono traccia di quali modifiche influenzano quali Pagine
L'ambito rende espliciti quei confini.
Modello mentale
Site scope
-> affects all relevant Pages across the site
Layout scope
-> affects Pages that share one Layout
Page scope
-> affects only one PageQuesto non è una preferenza di contenuto. È una regola sull'impatto delle modifiche.
Esempio di mappatura delle istanze
Un'assemblaggio semplificato di una Pagina potrebbe apparire così:
Layout: docs-shell
Site scope:
announcement-strip
Layout scope:
docs-sidebar
docs-subnav
Page scope:
release-notes-cta
migration-faqQuel singolo diagramma spiega due fatti tecnici importanti:
- non tutte le sezioni riutilizzabili sono condivise allo stesso modo
- la revisione delle modifiche deve tenere conto dell'ambito prima che la modifica venga approvata
Esempi di ambito
Ambito Sito
Usa questo ambito quando una sezione deve comportarsi come un asset a livello di sito.
Esempi:
- barra di annunci globale
- strip di supporto per la navigazione condivisa
- banner di fiducia usato in tutto il sito
Ambito Layout
Usa questo ambito quando una sezione appartiene a una famiglia di pagine.
Esempi:
- sidebar della documentazione utilizzata solo nelle pagine di documentazione
- sub-navigazione condivisa per una sezione di servizio
- rail di supporto per un'intera famiglia di Layout
Ambito Pagina
Usa questo ambito quando la sezione è unica per una sola Pagina.
Esempi:
- un hero di campagna one-off
- una strip CTA locale
- FAQ o blocco di proof specifico della pagina
Esempio di raggio di cambiamento
Lo stesso tipo di sezione può essere valido a diversi ambiti a seconda dell'intento:
announcement-strip at Site scope
-> change affects all relevant Pages
announcement-strip at Layout scope
-> change affects one page family
announcement-strip at Page scope
-> change affects only one PagePer questo motivo l'ambito dovrebbe essere scelto in base al raggio di impatto previsto, non per comodità dell'editor.
Regola decisionale
Fai una domanda:
If I change this section, which Pages should change with it?Se la risposta è:
- "tutte le Pagine rilevanti" -> Sito
- "Pagine in questa singola famiglia" -> Layout
- "solo questa singola Pagina" -> Pagina
Esempio di composizione
Site scope:
global-announcement
Layout scope:
docs-sidebar
Page scope:
pricing-faqQuel modello mantiene il riuso intenzionale e rende prevedibile l'impatto delle modifiche.
Linee guida architetturali
Usa l'ambito per rispondere a queste domande tecniche:
- dove dovrebbe essere individuabile questa istanza?
- quante Pagine dovrebbero ereditare le modifiche future?
- chi dovrebbe possedere la modifica?
- quale livello di revisione è giustificato prima della pubblicazione?
In pratica:
- l'ambito Sito di solito necessita della revisione più rigorosa perché l'impatto è ampio
- l'ambito Layout richiede consapevolezza della famiglia di pagine
- l'ambito Pagina è il posto più sicuro per sperimentazioni locali
Impatto tecnico
L'ambito influenza:
- dove una sezione riutilizzabile è disponibile
- quante Pagine può influenzare una modifica
- come i team ragionano sulla proprietà
- come la struttura condivisa viene mantenuta nel tempo
Per questo motivo le decisioni sull'ambito dovrebbero essere trattate come decisioni architetturali, non come scelte di comodità per l'editor.
Pattern di revisione
Quando un team propone di ampliare l'ambito, rivedilo come un cambiamento architetturale:
page -> layout
question: is this section now shared by a durable page family?
layout -> site
question: does this section now belong to the broader site, not one section?Se la risposta è "non proprio", probabilmente l'ambito viene ampliato troppo presto.
Checklist per la revisione tecnica
- l'ambito scelto corrisponde al raggio di cambiamento previsto?
- la sezione è davvero riutilizzabile a quel livello?
- un futuro editor capirebbe perché la sezione è condivisa?
- la sezione contiene contenuti che avrebbero dovuto rimanere locali?
- una sezione che dovrebbe essere locale viene copiata in molte Pagine?
Anti-pattern
Evita:
- usare l'ambito sito per contenuti che servono solo a una famiglia di pagine
- usare l'ambito pagina per contenuti copiati in molte Pagine
- usare l'ambito layout per contenuti che appartengono alla shell globale del sito
- ampliare l'ambito solo per risparmiare lavoro a breve termine
Esempio di regola in pratica
Main navigation utility bar -> Site scope
Developer docs sidebar -> Layout scope
Landing page final CTA -> Page scopeRegola di design correlata
L'ambito dovrebbe essere rivisto insieme alla responsabilità dell'oggetto:
- se la modifica interessa la shell, rivedi il Layout
- se la modifica interessa il contratto di una sezione riutilizzabile, rivedi il Componente
- se la modifica interessa solo un'esperienza assemblata, rivedi la Pagina