Que fait Feature Flags (Drapeaux de Fonctionnalité) ?
Règles
- Utilisez les drapeaux de fonctionnalité pour les déploiements progressifs — livrez le code derrière un drapeau, activez-le progressivement
- Types de drapeaux : booléen (activé/désactivé), pourcentage (10% des utilisateurs), ciblage utilisateur (IDs/segments spécifiques)
- LaunchDarkly pour les entreprises, Flagsmith pour l'open-source, Vercel Flags ou
@vercel/flags pour Next.js
- Évaluez les drapeaux côté serveur par défaut — transmettez uniquement les valeurs des drapeaux au client, jamais la logique d'évaluation
- Conventions de nommage des drapeaux :
enable-new-checkout, show-pricing-v2 — descriptif, en kebab-case
- Nettoyez les drapeaux après un déploiement complet — les drapeaux obsolètes sont une dette technique ; fixez des dates d'expiration
- Déploiements en pourcentage : hachez l'ID utilisateur pour un regroupement cohérent — le même utilisateur voit toujours la même variante
- Par défaut, désactivez le drapeau pour les nouvelles fonctionnalités — sécurité en cas d'indisponibilité du service de drapeaux
- Utilisez les drapeaux pour les tests A/B : définissez des variantes, suivez les événements de conversion, mesurez la signification statistique
- Stockez les surcharges de drapeaux dans les variables d'environnement pour le développement local
Patterns
import { flag } from "@vercel/flags/next";
export const showNewCheckout = flag({
key: "show-new-checkout",
decide: () => false,
});
const enabled = await showNewCheckout();
import * as ld from "@launchdarkly/node-server-sdk";
const client = ld.init(process.env.LAUNCHDARKLY_SDK_KEY!);
const showFeature = await client.variation("new-checkout", user, false);
À éviter
- Livrer des fonctionnalités sans drapeau — chaque nouvelle fonctionnalité doit pouvoir être activée/désactivée
- Dépendances imbriquées de drapeaux — gardez la logique des drapeaux plate et indépendante
- Laisser des drapeaux dans le code après un déploiement à 100% — planifiez le nettoyage dans les 2 semaines
- Évaluation côté client exposant les règles de ciblage — évaluez sur le serveur, envoyez le résultat