Xalg / Fix / Apprendre Fix — 4. Les modules
Navigation
Apprendre
Recettes
Référence
Comprendre
Bonnes pratiques
En pratique
Explications

Apprendre Fix — 4. Les modules

Quatrième étape. Ton modèle grossit. Pour qu'il reste lisible, tu organises : tu isoles un morceau derrière une frontière, et tu ne laisses sortir que ce qui doit l'être. Compte 15 minutes.


Isoler derrière une frontière

Le modèle grossit — isole l'infrastructure derrière une frontière :

module(infra, [impacte/2]).

    depend(web, api).
    depend(api, db).
    impacte(S, T) :- depend(S, T).
    impacte(S, T) :- impacte(S, U), impacte(U, T).

end_module.

use_module(infra).

alerte(S) :- infra::impacte(S, db).
?- alerte(X).
X = web
X = api

?- infra::depend(web, X).
prédicat non exporté : infra::depend/2
    → :help modules

Seuls les prédicats exportés ([impacte/2]) existent de l'extérieur — depend est invisible, et Fix le fait respecter, pas seulement par convention. L'appel qualifié infra::impacte s'utilise dans les corps de règles comme en requête directe ; après use_module, la forme non qualifiée marche aussi.


Ce qui reste au bord

Deux gardes que Fix pose pour toi :

Le reste (hiérarchies, doctrine minimaliste — pas de type classes, pas de foncteurs) : Les modules.


Ce que tu sais faire

Découper un modèle en modules à frontière étanche (seul l'exporté sort), appeler en qualifié ou non, et t'appuyer sur les gardes (pas d'imbrication, pas d'ambiguïté).

5. La syntaxe : donner à ton modèle sa propre notation, lue et écrite dans les deux sens.