1
Lindp OP 我贴了部分,这种表达式维护完后端如何解析呢?这是不是种开发语言啊?
|
2
renmu 2022-10-08 22:30:39 +08:00 via Android
这不就是中文编程
|
4
lmshl 2022-10-08 22:36:59 +08:00
|
5
learningman 2022-10-08 23:04:58 +08:00 via Android
这看着不就是个中文变量吗。。。
|
6
renmu 2022-10-08 23:19:45 +08:00 via Android
看着像 JS ,三目运算,箭头函数。但是没有 match{}语法
|
7
westoy 2022-10-08 23:33:57 +08:00
有点像魔改过的 prolog
自己造的吧 |
8
qeqv 2022-10-08 23:56:58 +08:00
其实你用支持中文变量的语言也可以做到这种效果。不过话说回来,中文变量+英文符号,可不那么好受
|
9
buliugu 2022-10-09 01:40:54 +08:00
安利一下 AviatorScript
|
10
yinzhili 2022-10-09 09:05:14 +08:00
有点像规则引擎实现的
|
11
lower 2022-10-09 09:09:02 +08:00
DSL
|
12
lower 2022-10-09 09:25:43 +08:00
@lmshl 搞这种噱头的一般都是吹嘘自己系统,可以让非开发人员来写业务脚本、吹易用性作为卖点;跟所谓低代码开发差不多……不过事实上,这种业务逻辑一旦复杂了咋弄都不好使
|
13
tool2d 2022-10-09 09:36:18 +08:00
支持 json 的 sql 表达式,也能实现这个效果。
楼上说不要自己发明 DSL ,但问题是大部分情况下,往往并没有现成的 runtime compile 语言给你用,只能自己硬着头皮写。现在有了 llvm 可能会好不少。 |
15
7911364440 2022-10-09 10:21:43 +08:00
自己写的一个表达式解析器,可以看下:
https://github.com/rainy-zhang/expression |
17
Maxwe11 2022-10-09 14:48:29 +08:00 1
这个和用哪种方法实现无关,一般有点儿技术背景的且和金融相关的产品,为了降低沟通成本,大多都用这种表述方法,当然具体的表述可能根据自己的技术背景有所差异;
主要是省事儿,因为很多时候稍微复杂一点点,用日常用语做业务交互,费时费力还不准确,时间长了换谁都烦,尤其是不太有技术抽象思维的业务之类部门再掺进来,东一句西一句,企业沟通就是这样,一来和技术打交道,费了半天话不如给个公式,那些没什么抽象思维的就知道 blablabla 的,看见一个公式出现,都会说话开始慎重; 实现时候就两种,要么就是技术看完在原有技术栈的系统里做一次实现,要么就是写系统的时候把这些做成一个标准计算和运算符的实现,产品或业务人员简单学习后自己按照“标准语法”扔进去套就行了,省嘴皮子。 |
19
shellus 2022-10-09 16:17:34 +08:00
<?php
eval(preg_replace_callback('查找中文','替换成 $中文')); |