web-dev-qa-db-fra.com

Dois-je utiliser include_recipe ou ajouter la recette à run_list?

Essayer de trouver la meilleure approche pour un grand projet. Quand est-il approprié d'ajouter des recettes dans une recette en utilisant include_recipe plutôt que d'ajouter la recette au run_list? Y a-t-il une bonne règle d'or?

66
Micah

Selon moi, toute recette devrait pouvoir s'exécuter seule sur une machine vide. Donc, si une recette A dépend de la recette B exécutée avant elle, j'utilise toujours include_recipe.

Par exemple: 2 livres de cuisine, Tomcat et Java. Tomcat nécessite Java.

  1. Lorsqu'un utilisateur souhaite installer Tomcat, il peut ne pas savoir qu'il a réellement besoin d'un autre livre de recettes pour l'installer. Il exécute la recette Tomcat et soit elle échoue avec un message d'erreur complètement inutile comme "No Java found" ou pire encore - cela réussit, mais bien sûr, l'utilisateur ne peut pas démarrer Tomcat, car il le fait pas Java installé.

  2. Mais quand il y a include_recipe 'Java' ligne dans le livre de recettes Tomcat, qui nécessite également un depends 'Java' ligne dans les métadonnées, l'utilisateur lors de la tentative d'installation de Tomcat verra le message d'erreur compréhensible: "le livre de recettes Java introuvable". De cette façon, l'utilisateur peut télécharger les dépendances par lui-même (ou même avec un outil automatique) sans exécuter réellement de recettes, mais en lisant des métadonnées.

78
Draco Ater

Toute la logique doit être contrôlée avec des listes d'exécution. Les livres de cuisine, essayez comme ils pourraient, ne sont pas aussi réutilisables que les gens voudraient penser. Tout include_recipe ne fait qu'ajouter un autre endroit où les utilisateurs doivent chercher à comprendre ce que la liste des exécutions va faire.

3
davidk01