Ver Mensaje Individual
  #3  
Antiguo 09-06-2020
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.917
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Quedarse obsoleto no tiene sentido.

Llevo +20 años programando y he hecho migraciones que otros considerarían "brutales". De FoxPro DOS a windows, de FoxPro windows a .NET Web, otra de python a c#, luego a python de nuevo.

Pero mi proyecto principal le gana a todas:

De VB.NET/Pocket PC a Objective-c/iPhone a Swift a F#/Xamarin y ahora a Rust/Web y de esa luego le agrego otra vez Swit/iOS y luego Kotlin/Android.

Digo esto para que vean que no hay que tenerle miedo a haces reescrituras.

---

Con todo, hay que ponerle algo de cabeza a esto. Lo mas importante es tener un objetivo claro, así sea simple. De ahi:
  • Usa control de versiones, es la columna de todo esto
  • Luego, usa una herramienta para organizar las tareas (como trello o pivotal)
  • Haz mini-experimentos en la nueva herramienta/plataforma, migrando un unico componente a ver que tal

Esto es lo basico, ademas
  • Ten una buena db de respaldo (como postgresql o firebird) ya que necesitas tener un "apoyo" solido. Si refactorizas las consultas/tablas te ahorraras un MONTON de esfuerzo al hacer migraciones
  • Saca un listado de lo mas "dificil" de hacer y de los controles/librerias de terceros indispensables. Asegurate que los puedes resolver en la otra plataforma/nueva version. Pero recuerda que hemos avanzado mas de 1 decada desde delphi 7 y cosas que antes eran indispensables ahora son obsoletas.

Una gracia de delphi es que a pesar de todo, no ha cambiando tanto. Llevo sin programar Delphi unos años... y de pronto tuve que hacer algo en freepascal. Me tomo nada retomar el ritmo.

Así que si sigues en el lenguaje, el cambio es MUCHO mas fácil (mientras por los laditos haces lo de arriba):

Empieza a limpiar, pulir y aclarar el código, quizás aplicando un auto-formater.

Empieza a separar lógica de negocios de la parte UI. Casi todo eso va a pasar limpio a versiones mas modernas de delphi/freepascal. Si lo haces bien, deberías quedar con MENOS código que antes.

De igual manera, refactoriza tu db para simplificar tu lógica de datos.

En el caso que tengas una dependencia fuerte con un componente obsoleto (como BDE) cambia esos primero. Tu db debe estar solida y al ultimo pelo.

Y cómo manejas ambos proyectos a la vez? Si refactorizas lo que tienes, puedes hacerlo todo en un rama del control de codigo fuente!

Una vez hecho los preparativos, el paso es solo tiempo, pero es relativamente facil. Te digo que si uno tiene la logica de negocios clara, incluso pasar de lenguajes no es tan dificil.

Es posible que todo esto parezca "mucho" trabajo, pero realmente es PURA re/organizacion.
__________________
El malabarista.
Responder Con Cita