1325. Identidad de la lección
1326. Objetivo de aprendizaje
Al terminar esta lección, podrás producir una matriz de compatibilidad que relacione esquemas de origen, esquemas de destino o salida, sellos de build y operaciones con decisiones explícitas de soporte. También podrás definir un invariante de ida y vuelta y redactar un plan de diagnóstico para una combinación no compatible o desconocida.
1327. Por qué importa
Una etiqueta de versión solo sirve si el equipo puede actuar a partir de ella. El sello de esquema identifica la forma de los datos y sus reglas de interpretación; el sello de build identifica el comportamiento del ejecutable. Una matriz de compatibilidad convierte esas identidades en una política explícita de soporte.
Las migraciones y las comprobaciones de ida y vuelta requieren algo más que un esquema de origen. Una migración debe indicar el esquema de destino, mientras que una operación de ida y vuelta debe especificar su secuencia y qué debe permanecer sin cambios. Sin esos datos, una matriz puede parecer precisa y aun así ocultar supuestos importantes sobre la transformación.
1328. Conocimientos previos
Debes haber completado La identidad de versión tiene más de un significado, del módulo 3.13. Debes poder distinguir una versión de esquema de una versión de build y explicar por qué un build puede leer un registro que otro rechaza. Usa únicamente un formato de datos pequeño, ficticio o local, cuyos supuestos puedas verificar.
1329. Concepto central
La compatibilidad es una propiedad de una combinación concreta de esquema, build y operación, incluida la dirección de la operación.
Un registro de compatibilidad útil incluye:
- Sello del esquema de origen: esquema de los datos de entrada.
- Sello del esquema de destino o salida: esquema que debe producir una escritura, migración, exportación u operación de ida y vuelta; usa No aplica solo cuando no exista una salida.
- Sello de build: programa que realiza la operación.
- Operación: lectura, escritura, migración o una secuencia de ida y vuelta definida con precisión.
- Resultado: compatible, compatible con migración, no compatible o desconocido.
- Evidencia o regla: resultado de una prueba, regla de migración o motivo documentado.
- Acción de diagnóstico: señal observable y respuesta segura para los casos no compatibles o desconocidos.
La lectura directa y la migración son decisiones distintas. Un build puede leer un esquema antiguo sin modificarlo, migrarlo a uno nuevo, permitir la escritura únicamente en el esquema nuevo o rechazar un esquema de salida solicitado.
1330. Modelo mental
Usa el modelo ORIGEN × DESTINO × BUILD × OPERACIÓN → DECISIÓN:
| Esquema de origen | Esquema de destino o salida | Build | Operación | Decisión | Evidencia requerida |
|---|---|---|---|---|---|
| Forma de los datos de entrada | Forma de salida prevista o No aplica | Código que realiza el trabajo | Leer, escribir, migrar o secuencia explícita de ida y vuelta | Admitir, migrar, rechazar o investigar | Resultado de prueba o regla explícita |
Para cada fila, pregunta:
- ¿Puede este build interpretar el esquema de origen para la operación indicada?
- ¿La operación produce una salida y, en ese caso, está explícito su esquema de destino?
- Si la operación es una migración, ¿existe una migración definida entre el origen y el destino?
- Si es una operación de ida y vuelta, ¿cuál es la secuencia exacta y qué invariante debe conservarse?
- ¿Qué diagnóstico observable debe aparecer cuando la combinación no es compatible o sigue siendo desconocida?
Una operación de ida y vuelta no significa simplemente “guardar y volver a cargar”. Debes indicar su dirección. Para esta lección, una secuencia válida es leer S1 → escribir S2 → leer S2. Su invariante establece que los valores de credits e items del registro S1 original deben conservarse de forma equivalente tras la lectura final de S2. El nuevo campo heat sigue el valor predeterminado documentado de la migración y no forma parte de ese invariante de conservación.
1331. Ejemplo concreto
Supón que un registro de guardado pequeño comienza con el esquema S1 y después añade el campo heat en S2:
B1solo conoceS1.B2conoceS1yS2, y puede migrarS1aS2asignando aheatun valor predeterminado documentado.
| Esquema de origen | Esquema de destino o salida | Build | Operación | Resultado | Evidencia o regla |
|---|---|---|---|---|---|
S1 |
No aplica | B1 |
Leer directamente | Compatible | Leer el conjunto original de campos. |
S1 |
No aplica | B2 |
Leer directamente | Compatible | Leer S1 sin tratar la lectura como una migración. |
S1 |
S2 |
B2 |
Migrar | Compatible con migración | Aplicar el valor predeterminado documentado para heat. |
S2 |
S2 |
B2 |
Escribir | Compatible | Producir todos los campos y el sello de S2. |
S2 |
No aplica | B1 |
Leer directamente | No compatible | Informar que B1 no admite S2; no descartar heat. |
S1 |
S2 |
B2 |
Ida y vuelta: leer S1 → escribir S2 → leer S2 |
Compatible con migración | Verificar que se conservan credits e items y que heat recibe su valor predeterminado documentado. |
S2 |
S1 |
B2 |
Migrar o exportar | No compatible | No existe una migración inversa; no perder heat silenciosamente. |
La columna de destino o salida evita que términos como “migrar” o “escribir” oculten el esquema que se pretende producir. La secuencia explícita evita tratar como equivalentes direcciones opuestas de ida y vuelta.
1332. Errores comunes
Evita estos errores:
- Tratar la lectura directa y la migración como si fueran la misma capacidad.
- Suponer que un build más reciente admite todos los esquemas y operaciones.
- Escribir “migrar” sin indicar los esquemas de origen y destino.
- Escribir “ida y vuelta” sin definir la secuencia y el invariante de conservación.
- Marcar una celda sin probar como compatible en lugar de desconocida.
- Aceptar la pérdida silenciosa de campos como una migración inversa válida.
1333. Práctica guiada
Crea una matriz de compatibilidad y un plan de diagnóstico para este formato ficticio:
- El esquema
S1contienecreditseitems. - El esquema
S2añadeheaty registra un sello de esquema. - El build
B1puede leer y escribirS1. - El build
B2puede leerS1, migrarlo aS2, y leer y escribirS2. - No se ha definido ninguna migración de
S2aS1.
Sigue estos pasos:
- Enumera por separado los sellos de esquema y de build.
- Incluye operaciones de lectura, escritura, migración e ida y vuelta.
- En cada fila, indica el esquema de origen y el build. Si la operación produce o transforma datos, indica también el esquema de destino o salida; en caso contrario, escribe No aplica.
- Define la operación de ida y vuelta requerida como leer
S1→ escribirS2→ leerS2. - Nombra su invariante: el registro final debe conservar los valores originales de
creditseitems. Registra por separado la regla esperada paraheat. - Marca cada resultado como compatible, compatible con migración, no compatible o desconocido.
- Para cada resultado no compatible o desconocido, crea un registro de diagnóstico que capture en conjunto:
- el sello del esquema de origen;
- el sello del esquema de destino o salida pertinente;
- el sello de build;
- la operación y su dirección;
- el fallo o advertencia esperados;
- la evidencia que confirmaría el diagnóstico;
- la siguiente acción segura.
- Indica por separado qué campo registrado inspeccionarías primero durante el triaje y por qué. Esta decisión de secuencia no elimina el requisito de capturar el registro de diagnóstico completo.
- Decide si la ruta
S2→S1se admite, se rechaza o queda pendiente de evidencia. No diseñes ni implementes una migración inversa. Si la rechazas, explica por qué no es aceptable perderheatsilenciosamente.
Usa esta estructura:
| Esquema de origen | Esquema de destino o salida | Build | Operación y dirección | Resultado | Invariante, evidencia o regla | Acción de diagnóstico |
|---|---|---|---|---|---|---|
No sustituyas la evidencia que falta por una suposición. Desconocido es una decisión adecuada cuando todavía se necesita verificación.
1334. Validación / evidencia
Tu trabajo es válido cuando incluye:
- Listas separadas de sellos de esquema y de build.
- Campos para el esquema de origen y el esquema de destino o salida, con No aplica únicamente cuando no exista una salida.
- Al menos una fila de lectura, escritura, migración e ida y vuelta.
- Decisiones específicas por operación para los casos importantes
S1/B1,S1/B2,S2/B1yS2/B2. - La secuencia explícita leer
S1→ escribirS2→ leerS2. - Un invariante que exija conservar
creditseitems, además de una regla separada para el valor esperado deheat. - Al menos una combinación marcada explícitamente como no compatible.
- Evidencia o una regla documentada para cada decisión de soporte.
- Un registro de diagnóstico completo para cada resultado no compatible o desconocido.
- Una siguiente acción segura que evite la pérdida silenciosa de datos.
- Una decisión de política escrita para
S2→S1, sin implementar una migración inversa.
Entrega la matriz y el plan de diagnóstico mediante la evaluación práctica asociada. El cuestionario comprueba la comprensión conceptual; la evaluación práctica valora tu capacidad para producir y justificar el artefacto.
1335. Puntos clave
- La compatibilidad pertenece a una combinación de esquema de origen, esquema de destino, build y operación.
- Las migraciones deben indicar sus esquemas de origen y destino.
- Las operaciones de ida y vuelta deben definir su secuencia y su invariante de conservación.
- La lectura directa, la escritura, la migración y la ida y vuelta requieren decisiones separadas.
- Es preferible marcar una combinación como desconocida que respaldarla con una suposición.
- Los registros de diagnóstico deben capturar juntas todas las identidades pertinentes y conducir a una acción segura.
1336. Siguiente lección
Continúa con 3.14 — Git profesional.
1337. Comprobación
Responde estas preguntas por tu cuenta antes de leer las respuestas.
¿Qué hace explícita principalmente una matriz de compatibilidad?
Mostrar respuesta y explicación
Respuesta: Qué combinaciones de esquema de origen, esquema de destino, build y operación son compatibles y por qué
Por qué: La matriz registra decisiones de soporte específicas para cada operación, incluida su dirección y el esquema de salida cuando corresponda, junto con la evidencia que las respalda.
¿Por qué debe indicar un esquema de destino una entrada de migración?
Mostrar respuesta y explicación
Respuesta: Porque el soporte de migración depende de una transformación definida entre un origen y un destino
Por qué: La migración tiene dirección. Que se admita S1 → S2 no demuestra que también se admita S2 → S1.
¿Qué definición precisa correctamente la prueba de ida y vuelta requerida?
Mostrar respuesta y explicación
Respuesta: Leer S1, escribir S2, leer S2 y verificar que se conservan credits e items
Por qué: Una definición útil de ida y vuelta indica la secuencia, la dirección, el esquema de salida y el invariante de conservación.
¿Qué registro de diagnóstico resulta más útil para una migración no compatible?
Mostrar respuesta y explicación
Respuesta: Esquema de origen, esquema de destino, build, dirección de la operación, señal esperada, evidencia y siguiente acción segura
Por qué: Capturar juntas todas las identidades pertinentes permite relacionar la señal observada con la decisión de compatibilidad exacta y una respuesta segura.