La cuestión es: no importa qué persista o transporte, no lo sobre-diseñe o terminará con un software que es más difícil de mantener por las razones equivocadas. Es mucho más fácil agregar funciones a una base de código más simple que refactorizar un diseño más complejo para acomodar tanto los requisitos reales como las conjeturas puras.
Ahora, para ser más práctico, el enfoque es básicamente doble:
- Los protocolos y el esquema siempre deben incluir números de versión, por lo que podrá verificar la necesidad de migrar datos o actualizar las aplicaciones cliente.
- Dicho esto, para cada aumento en el número de versión, se debe proporcionar un mecanismo de migración. Es decir, si la aplicación encuentra un objeto que tenga cualquier número de versiones anterior a la versión actual del protocolo, debería poder reproducir los cambios en ese objeto para cada versión más nueva.
Lo que no puede predecir es qué elementos nuevos y obligatorios podrían agregarse a su esquema en futuras versiones; confíe en mí en eso: nunca adivinará todos los cambios de requisitos futuros en el momento del diseño. Para manejar esta situación, puede decidir entre (de acuerdo con las necesidades y posibilidades de su aplicación):
A. proporcionar medios para actualizar los valores en los pares con datos reales;
- ¿Dónde puedo conseguir ropa de diseño Ikat?
- ¿Cómo puedo iniciar un sitio web de manera profesional como maestro en el que el público objetivo es otro maestro?
- ¿Alguno de ustedes diseñadores está usando Pivotal Tracker? ¿Cuál es su proceso para integrar el desarrollo y el diseño en Tracker?
- ¿Cómo suelen diseñar sus logotipos las empresas?
- ¿Cuál es tu mayor motivo favorito de diseño de hardware para PC?
B. invalidar objetos obsoletos;
C. generar valores de marcador de posición para llenar los vacíos;
D. mover datos no anulables a sus propios tipos foráneos;
E. verificar la nulidad de los campos dados en todo el código.