Slide 27
Slide 27 text
条件を expression tree(式木)として持つ
条件を if 文ではなく JSON データで持ち、評価する仕組みを 1 つだけ書く
EC 事業者A 注文金額が 5,000 円以上なら出す
EC事業者 B 10,000 円以上 かつ 「予約」タグが無い
{"version": 1,
"params": ["amount"],
"body": {"if": {
"cond": {"apply": {"function": "ge",
"args": [{"var": {"name": "amount"}},
{"const": {"value": 5000}}]}},
"then": {"const": {"value": true}},
"else": {"const": {"value": false}}}}}
{"version": 1,
"params": ["amount", "tags"],
"body": {"if": {
"cond": {"apply": {"function": "and", "args": [
{"apply": {"function": "ge",
"args": [{"var": {"name": "amount"}},
{"const": {"value": 10000}}]}},
{"apply": {"function": "not_has_tag",
"args": [{"var": {"name": "tags"}},
{"const": {"value": "予約"}}]}}]}},
"then": {"const": {"value": true}},
"else": {"const": {"value": false}}}}}
EC 事業者が増えても変わるのは式木データ(JSON)だけ