> For the complete documentation index, see [llms.txt](https://weekly-essay.mikey.wang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://weekly-essay.mikey.wang/es/2020/w28-definitions-and-interface-dependencies.md).

# W28-Definiciones y dependencias entre interfaces

### La importancia de las definiciones <a href="#id-ding-yi-de-zhong-yao-xing" id="id-ding-yi-de-zhong-yao-xing"></a>

En el trabajo cotidiano, muchas situaciones que se prestan a confusión o tienen responsabilidades mal delimitadas nacen de problemas con la definición de ciertos conceptos. A veces la definición no es clara. Otras veces sí lo es, pero no existe un acuerdo compartido sobre ella. Por ejemplo, cuando QA asigna un bug a alguien en ones, en algunos casos complejos no sabe a quién corresponde asignarlo. La raíz del problema es que el concepto de «persona asignada» no está bien definido o no hay consenso sobre su significado. Sin una definición explícita, solemos entenderlo como un concepto compuesto: la persona que causó el problema, la que lo resuelve y la que responde por él. En cuanto el problema se complica un poco, aparece naturalmente la ambigüedad de una palabra con varios sentidos. Una definición sencilla y clara suele resolver la dificultad. Por ejemplo, la regla más simple es asignar el problema a quien vaya a corregirlo. La persona asignada es quien lo resuelve. Eso no tiene que ver con repartir responsabilidades. Encontrar la causa raíz y a la persona responsable corresponde a la revisión COE.

### **Cómo afectan las dependencias entre interfaces a la compatibilidad con versiones anteriores** <a href="#id-jie-kou-jian-yi-lai-dui-xiang-xia-jian-rong-de-ying-xiang" id="id-jie-kou-jian-yi-lai-dui-xiang-xia-jian-rong-de-ying-xiang"></a>

En una arquitectura con frontend y backend separados, hay que cuidar la compatibilidad con versiones anteriores al modificar e iterar las interfaces. En general, en las interfaces del backend se añaden campos, pero no se cambian los existentes. Si no se garantiza esa compatibilidad, ni cambiar el orden de publicación del frontend y el backend ni añadir un interruptor para alternar entre la interfaz antigua y la nueva evitará los picos de errores en el momento del despliegue. Conviene prestar especial atención al caso de las dependencias entre interfaces. Puede que, en lugar de modificar la interfaz antigua, se cree una versión nueva. Si esta depende de una interfaz previa —por ejemplo, porque la primera devuelve la dirección a la que se enviará la solicitud de la siguiente—, incluso añadir una interfaz exige comprobar con especial cuidado que la interfaz previa de la que depende contemple la compatibilidad de versiones con la nueva interfaz posterior.
