Con más de 3200 libros de cocina disponibles en el supermercado Chef, a menudo ya hay un libro de cocina que cubre la necesidad que necesito resolver.
Casi cada vez que se requiere algún cambio en una plantilla, o una variable, o un recurso en un libro de cocina existente.
¿Cuáles son los pasos para anular y / o mejorar los libros de cocina existentes? Sin bifurcar su código, y conservando la capacidad de obtener actualizaciones de versiones en el futuro.
Respuestas:
Hay muchos detalles, pero el patrón general que usamos es "envolver y extender". La idea general es hacer un libro de cocina que dependa del libro de cocina de la comunidad, usualmente nombrado
mycompany_originalthing
, y luego hacer recetas en lo que llameinclude_recipe 'originalthing::whatever'
pero con más cosas agregadas antes / después o con llamadas a cosas comoedit_resource
cambiar recursos. Eviteedit_resource
cuando sea posible, ya que conduce a un código quebradizo, pero está allí si lo necesita. También puede usar libros de cocina de envoltura para establecer atributos, subclase o envolver recursos personalizados, etc.Para el caso específico de "Necesito ajustar una plantilla en una receta comunitaria", se vería así:
Puede encontrar más detalles
edit_resource
y amigos en https://coderanger.net/rewind/Con libros de cocina basados en recursos personalizados en lugar de recetas, las cosas pueden volverse más complejas, pero los detalles dependen mucho de cómo está escrito exactamente el libro de cocina que está extendiendo.
fuente