Светский разговор об управляемой тестами выпечке… данный подход очень хорошо (по крайней мере, лучше всех известных мне мейнстримовых альтернатив) сочетается с использованием среды Smalltalk
У Smalltalk один из самых простых синтаксисов в мире, кроме шуток (проще разве что лисп какой-нибудь). Непривычный, конечно, но простой.
Несложно потратить 5 минут на то, чтобы его освоить.
Заодно может заинтересуетесь самим языком, который в себе очень много таит.
1. Вы когда готовите, тоже передаете своей печке рецепт, или все-таки исполняете его, используя некоторые ограниченные возможности печки? Я, конечно, понимаю, что по коду так делать можно, но у вас вышла какая-то слишком интеллектуальная печка.
2. То есть, кирпич у нас теперь — is a kind of Bread? Ну-ну! сами ешьте ваши кирпичи! (не забываем, что наш класс Bread вполне может использовать другой программист, о котором вам ничего не известно, который делает логистику батонов и кирпичей, отправляя их на завод или в булочную, в зависимости от типа)
Как только будут предъявлены конкретные функциональные требования по процессу выпекания, и можно будет создать соответствующий(ие) тест(ы), вопрос будет решен.
Соображения «похожести на реальность» я стараюсь не привлекать при принятии проектных решений, так как сама необходимость принятия решения по таком критерию — это, скорее, признак недостатка информации и начала «фантазий». Да и не всегда «реальность» достаточно однозначна.
Чаще я использую сравнение с реальностью для валидации получающегося дизайна: если он получается похожим на реальные вещи, значит, скорее всего, все хорошо. Если нет — есть повод задуматься: не упущено ли что либо. В данном случае, конечно, что-то не так… Но я на это уже несколько раз пенял.
…А вот что я всегда слушаю, так это код. Каким-то волшебным способом он лучше знает, кто за что должен отвечать. Так что в данном случае ответственность за выполнение рецепта, в зависимости от того, куда выведут тесты и код, может быть возложена и на печку (так пока было проще написать, «код так захотел»), и на сам рецепт (это наиболее вероятный вариант на ближайшие несколько итераций)… другие варианты пока кажутся маловероятными, но кто знает, что там в голове у заказчика…
Ни у хлеба, ни у кирпича до сих пор нет функциональности. Так что сводить их в единую иерархию нет ни необходимости, ни желания. Smalltalk, к счастью, не заставляет это делать — динамика, однако!
Светский разговор об управляемой тестами выпечке