Контрактное программирование - PullRequest
4 голосов
/ 24 декабря 2008

Может ли кто-нибудь объяснить концепции, которые Spec # может переходить в C # 4.0, в отношении контрактов кода?

  • Что такое кодовые контракты (похоже, шаблон проверки времени компиляции)
  • я должен быть взволнован об этом?
  • Правильно ли я предполагаю, что мы переместим то, что будет проверкой во время выполнения для компиляции?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 24 декабря 2008

Я лично большой поклонник парня по имени Бертран Мейер, который написал эту книгу под названием Object-Oriented Software Contruction и создал язык под названием Eiffel, который одобряет программирование на основе проектирования или контракта.

  1. Код контракта - это своего рода соглашение между двумя программными организациями, которые могут взаимодействовать или не взаимодействовать. Более или менее похожи на интерфейсы, но точнее.
  2. Я не уверен, что все должны или будут рады этому.
  3. Ваше предположение несколько верно.

Возможно, вы захотите посмотреть эту серию видео ссылка

2 голосов
/ 24 декабря 2008

Вот хорошее описание контрактов кода прямо с Microsoft Research . Похоже, основные преимущества:

  • Улучшена тестируемость
  • Статическая проверка
  • Документация по API (в коде)
...