Scope System
Scope System
Le systeme de scope controle ou les sections reutilisables FaceFlow sont visibles et partagees.
Pour les utilisateurs techniques, le scope est l'une des regles architecturales centrales de FaceFlow. Il decide si une section reutilisable se comporte comme un actif global, un actif de famille de pages ou un actif local a une seule page.
Trois niveaux de scope
- Site : partage sur l'ensemble du site
- Layout : partage sur les Pages qui utilisent le meme Layout
- Page : local a une seule Page
Modele mental technique
Pensez le scope comme un contrat de visibilite et d'impact de changement attache a une instance de section reutilisable.
Conceptuellement :
{
"component": "announcement-strip",
"scope": "site"
}Le champ important n'est pas la forme exacte de stockage. La regle importante est que le scope determine l'ampleur de reutilisation de cette instance et jusqu'ou une edition ulterieure se propagera.
Pourquoi le scope compte
Le scope evite que la reutilisation tourne au chaos.
Sans regles de scope, les equipes :
- dupliquent le meme bloc partout
- sur-partagent un bloc qui aurait du rester local
- perdent la trace des changements qui affectent quelles Pages
Le scope rend ces frontieres explicites.
Modele mental
Scope site
-> affecte toutes les Pages concernees sur le site
Scope layout
-> affecte les Pages qui partagent un Layout
Scope page
-> affecte une seule PageCe n'est pas une preference de contenu. C'est une regle d'impact de changement.
Exemple de mapping d'instances
Un assemblage simplifie de Page peut ressembler a ceci :
Layout: docs-shell
Scope site:
announcement-strip
Scope layout:
docs-sidebar
docs-subnav
Scope page:
release-notes-cta
migration-faqCe seul diagramme explique deux faits techniques importants :
- toutes les sections reutilisables ne sont pas partagees au meme niveau
- la revue de changement doit prendre en compte le scope avant qu'une edition soit approuvee
Exemples de scope
Scope site
A utiliser lorsqu'une section doit se comporter comme un actif a l'echelle du site.
Exemples :
- barre d'annonce globale
- bandeau de support partage dans la navigation
- bandeau de confiance utilise sur tout le site
Scope layout
A utiliser lorsqu'une section appartient a une famille de pages.
Exemples :
- sidebar docs utilisee uniquement dans les pages de documentation
- sous-navigation partagee pour une section de service
- rail de support partage pour une famille de layout
Scope page
A utiliser lorsque la section est unique a une seule Page.
Exemples :
- hero ponctuel de campagne
- bandeau CTA local
- FAQ ou bloc de preuve specifique a une page
Exemple de rayon d'impact
Le meme type de section peut etre valide a differents scopes selon l'intention :
announcement-strip au scope Site
-> le changement affecte toutes les Pages concernees
announcement-strip au scope Layout
-> le changement affecte une famille de pages
announcement-strip au scope Page
-> le changement affecte une seule PageC'est pourquoi le scope doit etre choisi selon le rayon d'impact souhaite, pas selon le confort de l'editeur.
Regle de decision
Posez une question :
Si je change cette section, quelles Pages doivent changer avec elle ?Si la reponse est :
- "toutes les Pages concernees" -> Site
- "les Pages de cette famille" -> Layout
- "seulement cette Page" -> Page
Exemple de composition
Scope site:
global-announcement
Scope layout:
docs-sidebar
Scope page:
pricing-faqCe modele garde la reutilisation intentionnelle et rend l'impact des changements previsible.
Conseils architecturaux
Utilisez le scope pour repondre a ces questions techniques :
- ou cette instance doit-elle etre decouvrable ?
- combien de Pages doivent heriter des futures editions ?
- qui doit posseder le changement ?
- quel niveau de revue est justifie avant publication ?
En pratique :
- le scope Site exige generalement la revue la plus forte car son impact est large
- le scope Layout exige une conscience de la famille de pages
- le scope Page est l'endroit le plus sur pour des experimentations locales
Impact technique
Le scope affecte :
- l'endroit ou une section reutilisable est disponible
- combien de Pages un changement peut affecter
- la maniere dont les equipes raisonnent la propriete
- la maintenance d'une structure partagee dans le temps
C'est pourquoi les decisions de scope doivent etre traitees comme des decisions d'architecture, pas comme des choix de confort editorial.
Pattern de revue
Quand une equipe propose d'elargir un scope, revoyez cela comme un changement architectural :
page -> layout
question: cette section est-elle maintenant partagee par une famille de pages durable ?
layout -> site
question: cette section appartient-elle maintenant au site dans son ensemble plutot qu'a une seule section ?Si la reponse est "pas vraiment", le scope est probablement elargi trop tot.
Checklist de revue technique
- le scope choisi correspond-il au rayon d'impact vise ?
- la section est-elle vraiment reutilisable a ce niveau ?
- un futur editeur comprendrait-il pourquoi la section est partagee ?
- la section transporte-t-elle un contenu qui aurait du rester local ?
- une section censee etre locale est-elle copiee sur de nombreuses Pages ?
Anti-patterns
Evitez :
- un scope site pour du contenu utile a une seule famille de pages
- un scope page pour du contenu copie dans de nombreuses Pages
- un scope layout pour du contenu qui appartient a la coquille globale du site
- d'elargir le scope juste pour gagner du temps a court terme
Exemple de regle en pratique
barre utilitaire de navigation principale -> scope Site
sidebar de documentation developpeur -> scope Layout
CTA final d'une landing page -> scope PageRegle de conception associee
Le scope doit etre revu avec la responsabilite de l'objet :
- si le changement affecte la coquille, revoyez le Layout
- si le changement affecte un contrat de section reutilisable, revoyez le Component
- si le changement affecte seulement une experience assemblee, revoyez la Page