Должен ли я использовать включить рецепт или добавить рецепт для запуска списка?


пытаясь выяснить лучший подход для большого проекта. Когда это целесообразно, чтобы добавить рецепты в рецепте с помощью include_recipe в отличие от добавления рецепта run_list? Есть хорошее правило?

2 64

2 ответа:

Как я вижу, любой рецепт должен быть в состоянии работать на пустой машине самостоятельно. Поэтому, если какой-то рецепт A зависит от рецепта B, Я всегда использую include_recipe.

например: 2 поваренные книги, tomcat и java. Tomcat требует java.

  1. когда какой-то пользователь хочет установить tomcat, он может понятия не иметь, что он на самом деле требует какой-то другой поваренной книги, чтобы установить его. Он запускает рецепт tomcat, и либо он терпит неудачу с какой-то совершенно бесполезной ошибкой сообщение типа "нет java найдено" или еще хуже - это удается, но тогда, конечно, пользователь не может запустить tomcat, потому что у него нет установленной java.

  2. но когда есть include_recipe 'java' строка в поваренной книге tomcat, которая также требует depends 'java' строка в метаданных, пользователь при попытке установить tomcat, увидит понятное сообщение об ошибке:"поваренная книга java не найдена". Таким образом, фактически пользователь может загружать зависимости самостоятельно (или даже с помощью какого-либо автоматического инструмента) без фактического запуска рецептов, но чтение метаданных.

вся логика должна управляться с помощью списков выполнения. Поваренные книги, как бы они ни старались, не так многоразовы, как люди хотели бы думать. Все include_recipe does-это добавить еще одно место, где пользователи должны искать, чтобы выяснить, что список запуска будет делать, чтобы сделать его явным и поместить его в список запуска.