【发布时间】:2023-03-16 22:21:01
【问题描述】:
标题几乎概括了要点。
我感兴趣的是,在使用动态语言时是否可以启用/禁用合同执行,而不会有严重的失败/未诊断失败风险?
如果不是,关键似乎(在我看来)是任何强制执行都是组件逻辑的必需部分,而不是根据 DbC 强制执行的可移除性精神可选/可移除。
【问题讨论】:
标签: dynamic-languages design-by-contract
标题几乎概括了要点。
我感兴趣的是,在使用动态语言时是否可以启用/禁用合同执行,而不会有严重的失败/未诊断失败风险?
如果不是,关键似乎(在我看来)是任何强制执行都是组件逻辑的必需部分,而不是根据 DbC 强制执行的可移除性精神可选/可移除。
【问题讨论】:
标签: dynamic-languages design-by-contract
这不仅是可能的,而且在现实世界中也有实现,并且已经存在多年。例如,下面是一个DbC implementation,表示 Python 已有 12 年历史。
【讨论】:
我相信 lisp 具有良好的契约框架设计。
http://www.cl-user.net/asp/OkD82/sdataQkIGW7mlSHARDQ3r-H8X8yBX8yBXnMq=/sdataQu3F$sSHnB==
【讨论】: