Как известно, дьявол обитает в мелочах, а главная мелочь повседневной жизни разработчика это реализация решений в коде. В рамках нашей встречи мы обсудим, какого рода формальности при написании классов позволяют ощутить всю мощь ООП. Узнаем, как перестать защищаться от своего же кода и уменьшить время на решение задач. Снова SOLID, DRY, KISS или может TDD? Нет! Мы будем говорить о Design by Contract или программировании с использованием контрактов. Коротко коснёмся истории этого подхода и принципов его применения. Рассмотрим примеры решения реальных задач, в которых помогает определение контрактов. Обозначим границы применимости и связи с другими концепциями обеспечения качества. А главное, вынесем с собой несколько полезных подходов, которые позволят засыпать с уверенностью в качестве кода и которые можно начать применять прямо сейчас.
31. Как применить?
Контракты есть для вашего языка
Если нет – вы всё равно можете их
использовать
Если боитесь – выберите ту часть, которая
вам кажется безопасной
33. Итог
Корректность не существует без
спецификации
Контракт – исполняемая спецификация в
коде
Уровни контрактов:
Реализация - утверждения (Assert)
Интерфейс - контракты метода
34. Ссылки
Бертран Мейер, Основы ООП
Hunt & Thomas, Pragmatic Programmer
Тепляков Сергей, «Проектирование по
контракту»