只有简单的模式才有生命力
要解决复杂的问题,应当基于简单的结构。真理应该是可以瞬间被理解的,我们可以从其他领域进行迁移学习。
FuncDict如果是一个工具,我要用来做什么?
目前我计划使用前端编辑器替代本地编辑器,其中很重要的一部分就是调试。当开发者在前端觉得新的编辑完成时会提交后台进行测试,有时候会成功,但更多时候会失败/出错。
如果做一个比喻,一个个的函数相当于是一颗颗「沙子」,我们在调试的时候不知道是不是做好了,所以调试一次就会“扔”一次,而FuncDict就是这个扔的载体。
从一个机器的角度看,FuncDict总是Load New Bullet, 然后试着发射 Fire, 然后输出打靶的结果 Result。 如果B制作有问题,直接就是哑弹(D)。
所以模式可以总结为:
在Load的时候,比较安全的做法是保存一个文件,然后尝试载入。分为模块载入和函数载入,函数名是唯一主键
调用测试,有可能函数本身语法错,或者是运行时的逻辑错;如果都没有问题才能返回正常结果。
错误的话是返回D
特殊的复杂函数 CB , Compound B, 采用BFS寻找前序部分。前序部分会先在可选函数列表中搜索,形成一个模块(py),在导入本模块之前导入这个模块。
完成验证后,通过另一个接口,将函数发布。
结果
命名
import hashlib
def md5_trans(x):
md5 = hashlib.md5()
if isinstance(x, str):
x1 = x.strip()
md5.update(x1.encode("utf8"))
else:
md5.update(x)
return md5.hexdigest()
def get_file_name_before_prefix(x):
last_dot = x.rfind('.')
if last_dot