Blog
All articles. All pillars. All authors.
Types union étiquetés et types de données algébriques
Comment nous avons apporté les types de données algébriques à FLIN -- les enums génériques avec données associées, Option<T>, Result<T, E>, et l'implémentation Rust des unions étiquetées.
La déstructuration partout
Comment nous avons implémenté la déstructuration dans FLIN -- déstructuration de tableaux, d'entités et imbriquée avec motifs rest, valeurs par défaut, et l'approche stub-first qui a gardé le compilateur sain.
Tuples, enums et structs
Comment nous avons conçu les trois structures de données fondamentales de FLIN -- les tuples pour le regroupement anonyme, les enums pour les alternatives nommées et les structs d'entités pour les enregistrements persistants.
Gardes de type et rétrécissement de type à l'exécution
Comment l'opérateur is de FLIN permet la vérification de type à l'exécution avec le rétrécissement de type au moment de la compilation -- le pont entre les valeurs dynamiques et la sécurité statique.
Accès aux métadonnées de version
Comment nous avons exposé les métadonnées de version des entités -- id, version_number, created_at, updated_at, deleted_at -- comme propriétés de première classe dans FLIN, permettant des pistes d'audit sans configuration.
Arithmétique temporelle : ajouter des jours, comparer des dates
Comment nous avons implémenté les littéraux de durée et l'arithmétique temporelle dans FLIN -- de l'élégante syntaxe N.days au constant folding à la compilation, offrant des abstractions à coût zéro pour les opérations de dates.
Précision du suivi et validation
Comment la session 079 a révélé que le modèle temporel de FLIN était plus avancé que documenté -- et les leçons tirées sur la précision du suivi, la validation et le danger de la documentation obsolète.
Historique des versions et requêtes de voyage dans le temps
Plongée approfondie dans l'opérateur @ de FLIN pour les requêtes de voyage dans le temps, la propriété .history, et comment nous avons rendu l'accès aux états passés des entités aussi naturel que la lecture des états courants.
Intégration temporelle : des bugs à 100 % de couverture de tests
Le récit honnête de huit sessions de débogage, d'audit et de corrections qui ont porté le modèle temporel de FLIN d'un stub cassé à 100 % de couverture de tests.
Destroy et Restore : la suppression douce bien faite
Comment FLIN implémente trois niveaux de suppression de données -- suppression douce, suppression dure (destroy) et restauration -- avec la conformité RGPD intégrée au langage.
Filtrage et tri temporels
Comment nous avons ajouté le filtrage et le tri aux requêtes d'historique temporel de FLIN -- de la décision de conception d'éviter les lambdas à l'implémentation VM de ListFilterField et ListOrderBy.
Fonctions de comparaison temporelle
Comment nous avons construit six fonctions natives de comparaison temporelle dans FLIN -- field_changed, calculate_delta, percent_change, changed_from, value_changed et field_history.