【问题标题】:Can Design-by-Contract be applied to dynamic languages as easily/well as to statically-typed ones?Design-by-Contract 能否像应用于静态类型语言一样容易/以及应用于动态语言?
【发布时间】:2023-03-16 22:21:01
【问题描述】:

标题几乎概括了要点。

我感兴趣的是,在使用动态语言时是否可以启用/禁用合同执行,而不会有严重的失败/未诊断失败风险?

如果不是,关键似乎(在我看来)是任何强制执行都是组件逻辑的必需部分,而不是根据 DbC 强制执行的可移除性精神可选/可移除。

【问题讨论】:

    标签: dynamic-languages design-by-contract


    【解决方案1】:

    这不仅是可能的,而且在现实世界中也有实现,并且已经存在多年。例如,下面是一个DbC implementation,表示 Python 已有 12 年历史。

    【讨论】:

    • 从摘要看来,它似乎不支持完整的 DbC。大概它不支持“旧”值?
    【解决方案2】:

    我相信 lisp 具有良好的契约框架设计。

    http://www.cl-user.net/asp/OkD82/sdataQkIGW7mlSHARDQ3r-H8X8yBX8yBXnMq=/sdataQu3F$sSHnB==

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 2016-09-26
      • 1970-01-01
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多