Можно ли применять Design-by-Contract к динамическим языкам так же легко / как и к статически типизированным?
-
19-08-2019 - |
Вопрос
Название в значительной степени подводит итог сути.
Меня интересует, возможно ли включить / отключить принудительное выполнение контрактов при использовании динамического языка без серьезного риска неудачного / не диагностированного сбоя?
Если нет, то, как мне кажется, суть в том, что любые принудительные меры являются обязательной частью логики компонента, а не являются необязательными / удаляемыми в соответствии с духом удаления принудительных мер DbC.
Решение
Мало того, что это возможно, существуют реальные реализации этого, и они существуют уже много лет. Вот реализация DbC для Python, которому двенадцать лет например.
Другие советы
Я считаю, что LISP имеет хороший дизайн в рамках контракта.
http://www.cl-user.net/ осина / OkD82 / sdataQkIGW7mlSHARDQ3r-H8X8yBX8yBXnMq = / sdataQu3F $ sSHnB ==