El problema es que haces trabajo de más, dos o tres veces, no lo haces a la primera y bien. Sin embargo, puedes sacar provecho de este hábito (que debes de cambiar). Documenta tus cambios, documenta tus estrategias y técnicas para lograr un mejor desempeño en el código. Documenta para que vayas comparando tus avances y mejores tu estilo y hagas programas más eficientes.
Finalmente, el desarrollo de un sistema siempre es constante, nunca hay un punto donde digas “ya no se puede mejorar más” porque eso equivaldría a que tú mismo no puedes mejorar (¿será que alcanzaste la perfección? Pero la perfección solo pertenece a Dios). Entonces has este ejercicio e irás haciendo una pequeña biblioteca de códigos y técnicas a la que podrás recurrir más adelante.
Intenta aislar lo más posible tus componentes, pero al mismo tiempo intenta identificar los elementos en común, porque si tienes elementos que comparten (métodos, eventos, propiedades), puedes obtener clases base que te ahorrarán codificación, los elementos que diferencian te darán independencia de código. El tener una clase base y algunas clases que heredan se llama “generalización” (de clases específicas hacia clases base) o “especialización” (de clases base hacia clases específicas). Hacienodo esto te será más sencillo diseñar un plan de mejora para tus sistemas y tus habilidades.
Un ejemplo de este proceso se puede ver cuando se comienza un desarrollo, precisamente, sin idea del alcance, solo la idea de una etapa inicial, donde todo el sistema queda en un conglomerado de código, entonces al comenzar a analizar se puede ver que aplicando una arquitectura de capas puede ayudar a mejorar esa idea preliminar.
Esta es forma de trabajo (arquitectura) muy común en la actualidad, ya que cada capa tiene una serie de funciones específicas y solo interactuan con sus capas vecinas, hay una capa para BD (primera), la segunda que interactúa con la capa de BD y con la tercera, normalmente recupera los datos, pasa los parámetros adecuados y procesa los datos en donde al motor de BBDD le cueste trabajo. La siguiente capa traba entre esta segunda y una cuarta capa (normalmente la interfaz), de manera que formatea los datos provistos desde la capa inferior hacia la siguiente para que sea más sencillo de presentar a la interfaz, y lo mismo, desde la interfaz hacia la capa de interacción con la BD. Finalmente, la capa de la interfaz, recibe los datos y envía la información provista por el usuario. Esta capa puede ser dirigida hacia una aplicación web, de escritorio o móvil. El concepto es independizar el núcleo de la aplicación de la interfaz. Así, si se quieren desarrollar diferentes versiones, el mayor esfuerzo será en la interfaz y solo para presentar datos y recopilar información, y no haya un desgaste en crear versiones diferentes para cada situación.
Hemos participado en proyectos donde no se diseñó una estructura de herencia, de hecho nos ocurría en un principio. Conforme fuimos comprendiendo los beneficios de esta práctica, comenzamos a incorporarla en los proyectos. Ahora, gracias a esto, en proyectos donde participamos, cuando no tienen esta organización, logramos una reducción de código de hasta un 50% y una reducción de recursos consumidos entre un 20% y un 35%.
Existen metodologías de trabajo que combinan estos enfoques, lo importante es llevar un registro de las técnicas aplicadas, al forma en sue se hizo y aprender a utilizarlas en cada caso para lograr un mejor desarrollo de sistemas. AQUÍ puedes descargar un archvo de Excel que te ayudará al registro de tus cambios.
¿Dudas, preguntas y sugerencias? En comentarios (abajo de la publicación) o al correo admin@msg-fs.com. No te pierdas nuestros “Twits” en https://twitter.com/MSG_FS y nuestra pagina en face: https://www.facebook.com/SernaSistemas/
No hay comentarios.:
Publicar un comentario