DONNÉES TYPÉES
Un champ a un type, et le type tient.
Seize types, une structure déclarée une seule fois, et la même vérité du schéma jusqu'à l'écran.
Seize types, et pas dix-sept
La liste est fermée, et c'est ce qui la rend exploitable : chaque type a son rendu, son filtre, sa validation et sa façon d'être compris par un agent. Dans un tableur, une date est un texte qui ressemble à une date, jusqu'au jour où quelqu'un tape « fin mars ». Ici, le type décide de ce qu'on peut saisir, et le reste en découle.
Texte
Ligne simple, ou texte riche avec sa mise en forme.
Nombre
Nombre, ou montant avec sa devise.
Choix
Statut, choix unique, choix multiple, case à cocher.
Temps et lieu
Date, adresse.
Contact
Téléphone, membre de l'espace.
Pièces
Document rattaché à la fiche.
Liens
Relation vers une autre fiche, simple ou multiple.
Calculs
Formule sur la fiche, agrégation sur les fiches reliées.
Le type se propage jusqu'au composant
Le constructeur de schéma accumule les types au fil des champs déclarés, si bien que l'enregistrement se déduit tout seul de sa définition. Rendre un champ obligatoire le fait basculer d'optionnel à requis dans le type inféré, et ce qui ne suit plus casse à la compilation. Personne ne réécrit à la main une interface qui redirait ce que le schéma dit déjà, et qui finirait par en diverger.
La validation sort du schéma
Chaque type porte son validateur et l'objet compose les siens. Vous ne réécrivez pas les règles de saisie une deuxième fois pour le formulaire, une troisième pour l'API. Le validateur est exposé au format Standard Schema, la spécification commune aux bibliothèques de validation : vos formulaires le consomment tel quel, sans adaptateur maison.
Ce qui se déduit ne se saisit pas
Une formule tire sa valeur des autres champs de la fiche. Une agrégation la tire des fiches reliées : le total des factures d'un client vient de ses factures, pas d'un chiffre recopié. Ces champs n'ont pas de case à remplir. Un calcul qu'on peut corriger à la main devient un champ ordinaire qui ressemble à un calcul, et plus personne ne sait s'il faut lui faire confiance.
Comment ça marche
Un montant de prime, saisi une fois, lu partout.
Le type se choisit. Un montant avec sa devise, à la création du champ.
La saisie est bornée. Le validateur du type refuse ce qui n'est pas un montant.
L'affichage suit. La devise est rendue par le composant du type, pas recomposée à la main.
Le calcul devient possible. Une agrégation somme ces montants. Une chaîne de caractères, non.
Les autres briques de ce chapitre