Sistem de reguli

Ma intereseaza modele de scriere a unor set de reguli, ca exemplu sa pot sa scrie regulile de shipping si taxe ale unui shopping cart.

Pana acum am gasit ca si concepte:

  • rule based engine
  • constraint based programming
  • finite state machine

Cunoasteti astfel de sisteme / concepte / librarii? Nu conteaza limbajul de programare.

1 Like

finite state machine: https://github.com/aasm/aasm
rule based engine: https://github.com/ulfurinn/wongi-engine

sunt in ruby. ai nevoie de documentatie?

am folosit de fiecare data abordarea rule-based engine
din motive de optimizare, am scris “my own” in fiecare caz, fiind domenii de business diferite

Nop, ma descurc. Thanks

Interesantă întrebare, ce am găsit interesant e forward chaining.

Partea interesantă e statechart-ul și flow-ul.

var d = require('durable');

d.statechart('expense', function() {
    input: {
        to: 'denied'
        whenAll: m.subject == 'approve' && m.amount > 1000
        run: console.log('expense denied')

        to: 'pending'
        whenAll: m.subject == 'approve' && m.amount <= 1000
        run: console.log('requesting expense approval')
    }

    pending: {
        to: 'approved'
        whenAll: m.subject == 'approved'
        run: console.log('expense approved')
            
        to: 'denied'
        whenAll: m.subject == 'denied'
        run: console.log('expense denied')
    }
    
    denied: {}
    approved: {}
});

d.runAll();
1 Like