Mit mehr als 3200 Kochbüchern im Chef-Supermarkt gibt es oft bereits ein Kochbuch, das den Bedarf abdeckt, den ich lösen muss.
Fast jedes Mal, wenn eine Vorlage, eine Variable oder eine Ressource in einem vorhandenen Kochbuch geändert werden muss.
Was sind die Schritte, um vorhandene Kochbücher zu überschreiben und / oder zu verbessern? Ohne den Code zu forken und die Möglichkeit zu behalten, in Zukunft Versionsaktualisierungen zu erhalten.
Antworten:
Es gibt viele Besonderheiten, aber das von uns verwendete Gesamtmuster lautet "Wrap and Extend". Die allgemeine Idee ist, ein Kochbuch zu erstellen, das vom Community-Kochbuch abhängt, das normalerweise benannt wird
mycompany_originalthing
, und dann Rezepte in dem zu erstellen, dasinclude_recipe 'originalthing::whatever'
aufruft, aber entweder vor / nach dem Hinzufügen weiterer Dinge oder mit Aufrufen zu Dingen wieedit_resource
dem Ändern von Ressourcen. Vermeiden Sie es,edit_resource
wenn es möglich ist, da es zu sprödem Code führt, aber es ist da, wenn Sie es brauchen. Sie können auch Wrapper-Kochbücher verwenden, um Attribute festzulegen, benutzerdefinierte Ressourcen zu unterordnen oder zu verpacken usw.Für den speziellen Fall "Ich muss eine Vorlage in einem Community-Rezept optimieren" würde dies folgendermaßen aussehen:
Weitere Details
edit_resource
und Freunde finden Sie unter https://coderanger.net/rewind/Bei Kochbüchern, die auf benutzerdefinierten Ressourcen anstelle von Rezepten basieren, können die Dinge komplexer werden, aber die Einzelheiten hängen stark davon ab, wie genau das von Ihnen erweiterte Kochbuch geschrieben ist.
quelle