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