CacheControl / CacheControl/json-rules-engine
Declarative way for compute facts
- Ngôn ngữ chính
- JavaScript
- Star
- 3.1k
- Fork
- 507
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
Hi! I consider this repo as a very helpful design approach! I'm looking forward and have thoughts about admin interface for editing and storing rules. But i think we have a lack of ability for storing complex computed facts. For example, i have a a big legacy system underneath my app, and some facts from there have a big value because they computes from multiple fields of big json document. I need to reuse that facts everywhere in my app. What can i do right now? I can use only functions for this objectives. Like this:
```
engine.addFact('account', (params, almanac) => {
return almanac.bigDoc.path1.value + almanac.bigDoc.path2.value;
})
```
Ok, it's very flex and this approach cover all my needs, except storing.
My suggest:
We can use [jsonLogic library ](https://github.com/jwadhams/json-logic-js/) (or similar operators inside this repo) for declaring facts like this:
```
new Fact('derivedFact', [ 'bigDoc' ], { '+' : [
{ 'var' : 'bigDoc.path1.value' },
{ 'var' : 'bigDoc.path2.value' },
]}
)
```
While i was browsing docs, i saw that you considered this as a design bad smell. Why? Can you explain? Or i can suggest PR? 🙂
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Không có tệp mã nguồn hay test nào được nêu tên. Hãy bắt đầu bằng cách xem lại phần thảo luận trong tài liệu về computed facts và cách tiếp cận addFact/function hiện có, sau đó so sánh khai báo json-logic được đề xuất cho các facts dẫn xuất có thể tái sử dụng. Công việc được xem là hoàn tất khi một maintainer quyết định liệu nội dung này có thuộc engine hay không và, nếu được chấp nhận, có một thiết kế trong phạm vi giới hạn cho việc lưu trữ và đánh giá.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript, json
- Lĩnh vực
- backend
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 25/100