Engineering
Le fil conducteur de mon travail n'est pas un langage. C'est une préférence pour les systèmes explicites: comportement local, pannes bornées, stockage récupérable et architecture qui indique où vit chaque responsabilité.
Principes
Local-first est une promesse opérationnelle
Local-first ne signifie pas "on synchronisera plus tard" comme ajout. IDs, locks, chemins de stockage, update checks et workflows doivent rester raisonnables sans réseau.
La sécurité doit échouer fermée
Les secrets doivent être des références. Les chemins doivent être canonicalisés. Les bypass de développement ne doivent pas être disponibles en production. Les logs doivent masquer les valeurs sensibles.
L'architecture est une frontière de compatibilité
AppCore sépare application manifest, deployment manifest et runtime manifest car l'ownership compte. Dans Traiteur, l'intention du frontend n'est pas l'autorité de sécurité filesystem.
Performance avant abstraction
Il ne s'agit pas d'éviter l'abstraction, mais de comprendre les écritures, locks, coûts de démarrage, volumes IO, chemins de récupération et le vrai workflow opérateur avant de masquer les détails.
Les trade-offs doivent être nommés
AppCore ne fournit pas RAFT, OAuth, un moteur de base de données générique ou un workflow engine. Traiteur garde une référence courte pour l'humain, mais jamais comme identité technique.
Les tests protègent les contrats
Les tests utiles protègent les frontières: manifests, sécurité des chemins, totaux de devis, ownership de lock, signatures d'update, packages de stockage et consommation du SDK public.
Comment cela apparaît dans le code
- Définir d'abord la frontière d'ownership.
- Séparer infrastructure et vocabulaire métier.
- Versionner les formats de fichiers et rejeter les entrées non supportées.
- Utiliser des écritures atomiques pour le stockage critique.
- Préférer des IDs déterministes aux compteurs globaux quand l'offline compte.
- Construire les outils opérationnels: doctor commands, gates de release, diagnostics, récupération et documentation exploitable.
Carte simple
Application code
-> public facade / commands / queries
-> runtime contracts
-> storage, security, sync, scheduler, ops
-> providers and host composition
L'essentiel est la direction de la connaissance: le métier peut demander de l'infrastructure, mais l'infrastructure ne devrait pas apprendre le vocabulaire d'un client.
Lire ensuite
- AppCore Runtime montre ce principe à l'échelle runtime.
- Primland Devis Traiteur le montre dans un workflow desktop réel.
- Hardware explique pourquoi les contraintes physiques reviennent souvent.