Можно ли применять Design-by-Contract к динамическим языкам так же легко / как и к статически типизированным?

StackOverflow https://stackoverflow.com/questions/649020

Вопрос

Название в значительной степени подводит итог сути.

Меня интересует, возможно ли включить / отключить принудительное выполнение контрактов при использовании динамического языка без серьезного риска неудачного / не диагностированного сбоя?

Если нет, то, как мне кажется, суть в том, что любые принудительные меры являются обязательной частью логики компонента, а не являются необязательными / удаляемыми в соответствии с духом удаления принудительных мер DbC.

Это было полезно?

Решение

Мало того, что это возможно, существуют реальные реализации этого, и они существуют уже много лет. Вот реализация DbC для Python, которому двенадцать лет например.

Другие советы

Я считаю, что LISP имеет хороший дизайн в рамках контракта.

http://www.cl-user.net/ осина / OkD82 / sdataQkIGW7mlSHARDQ3r-H8X8yBX8yBXnMq = / sdataQu3F $ sSHnB ==

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top