hero

Distributed reactive state management - door Wouter

Al meer dan een jaar ben ik voor Open Web gedetacheerd bij de Nationale Politie. We werken aan een platform voor alle operationele processen bij de politie. En we hebben gemerkt dat -net als veel teams die aan complexe applicaties werken- het beheren van de applicatiestatus moeilijk is. Maar we hebben een oplossing!

Door Wouter Spaak
Geschreven op 2017-11-20

Een functionele bibliotheek voor voorspelbare toestand, geschreven in TypeScript.

Er zijn een paar gemeenschappelijk manieren afgesproken om de status te beheren in een JavaScript-toepassing, maar geen enkele voldoet aan onze behoeften. De meest populaire is 'Redux', populair vanwege Facebook, maar de gecentraliseerde 'Store' is voor ons onbruikbaar. Dit komt vooral omdat een 'Redux Store' zijn vorm tijdens het ontwerp moet hebben gedefinieerd, maar we moeten in een runtime een nieuwe statusherkomst kunnen creëren.

Een andere populaire bibliotheek voor overheidsmanagement is 'MobX'. 'MobX' overschrijft Object 'getters' en 'setters', wat het voor ons nutteloos maakt: we gebruiken ook de ES6 'Proxy' API om objectgedrag aan te pakken.

Bij AngularConnect, Europa's grootste conferentie in Angular, heb ik me aangemeld voor een 'lightning talk' om een ​​bibliotheek voor statusbeheer te introduceren waar we aan gewerkt hebben, genaamd Sherlock. Het is gecentreerd rond het sleutelconcept van een *Derivable*.

Derivables

Het basisconcept van 'Sherlock' is een object genaamd 'Derivable'. De applicatiestatus is afgeleid van vele 'ground truth' en 'Derivables' en 'derivations' kunnen worden gecombineerd om de uiteindelijke applicatiestatus af te leiden. Er zijn drie soorten 'Derivables': 'Atoms', 'Constants' en 'Derivables'. Ze worden gedemonstreerd in dit triviale voorbeeld:

<script src = "https://gist.github.com/WouterSpaak/c0738cd495e84d80c205dc98ad96705c.js"></ script>

Raadpleeg de Github Repo for Sherlock, installeer het in je projecten met '$ npm i @ politie / sherlock' en begin er vandaag mee te experimenteren!

Opgemaakte PDF's op basis van online content.

Beschik altijd over actuele PDF-bestanden en spaar designkosten uit. Exclusief voor Bloomreach/Hippo CMS-gebruikers.

banner-image