Une architecture logicielle ne commence jamais par des lignes de code — elle commence par une organisation. Avant même d'écrire un système, il faut définir les éléments qui composent ce système, les relations entre ces éléments et les règles qui gouvernent leur interaction.
Sans cette organisation, un projet peut fonctionner, mais il devient difficile à comprendre, à maintenir et à faire évoluer. CAKE© a été conçu pour éviter cette situation. Son architecture repose sur une idée centrale : un système logiciel doit pouvoir être observé comme une structure.
Dans l'univers CAKE©, cette structure repose sur plusieurs couches fondamentales qui correspondent aux éléments réels des systèmes modernes :
Ces trois couches forment le cœur de l'architecture.
La première couche correspond à la manière dont un système est décrit — le code source, les structures de configuration, les déclarations d'environnement. Dans cette couche, les développeurs expriment l'intention du système : les logiques applicatives, les relations entre les modules, les paramètres qui guideront l'exécution.
Cette couche est la plus proche de la pensée humaine. C'est l'endroit où les idées deviennent des structures logiques.
Entre la description d'un système et son exécution réelle, plusieurs transformations interviennent. Le code peut être compilé, interprété, généré, optimisé, assemblé avec d'autres modules. Ces transformations forment une chaîne — dans de nombreux environnements techniques, cette chaîne est difficile à suivre.
CAKE© cherche à rendre cette chaîne visible et structurée. Chaque transformation doit pouvoir être identifiée, chaque étape doit pouvoir être comprise.
La dernière couche correspond à l'environnement dans lequel le système fonctionne réellement. Les programmes interagissent avec la mémoire, le système d'exploitation, les ressources matérielles, les interfaces utilisateur. Dans l'architecture CAKE©, cette couche n'est pas un simple détail technique — elle fait partie intégrante de la structure.
Comprendre un système implique aussi de comprendre où et comment il s'exécute.
Ces trois couches ne fonctionnent pas isolément — elles sont reliées par un principe central : la continuité structurelle. Le passage d'une couche à l'autre doit rester compréhensible. Le développeur doit pouvoir suivre le chemin de la description jusqu'à la transformation, puis jusqu'à l'exécution.
Cette continuité est l'un des éléments clés de la programmation transversale.
Dans les systèmes traditionnels, cette continuité est souvent fragmentée — les outils sont séparés, les transformations dispersées, les environnements d'exécution configurés ailleurs. Le développeur doit parfois naviguer entre plusieurs systèmes pour comprendre ce qui se passe réellement.
CAKE© cherche à réduire cette fragmentation. L'architecture doit permettre de suivre le flux du système dans un seul cadre conceptuel.
Les architectures doivent pouvoir évoluer sans perdre leur cohérence. Un projet peut intégrer de nouveaux langages, introduire de nouvelles transformations, adopter de nouveaux environnements d'exécution. L'architecture CAKE© est conçue pour accueillir ces évolutions — les couches restent stables, mais les technologies qui les composent peuvent changer.
Cette stabilité structurelle permet aux systèmes de s'adapter sans devenir chaotiques.
Cette architecture n'est pas imposée de manière rigide — elle propose une discipline d'organisation. Chaque projet peut adapter cette discipline à ses besoins. Mais les principes fondamentaux restent les mêmes : lisibilité, cohérence et continuité entre les couches.
Une architecture solide repose sur des couches identifiables et sur une continuité claire entre description, transformation et exécution.
— Principe clé · T02 C01 · CAKE© Library