"IF THERE IS DISSATISFACTION WITH THE STATUS QUO, GOOD. IF THERE IS FERMENT, SO MUCH THE BETTER. IF THERE IS RESTLESSNESS, I AM PLEASED. THEN LET THERE BE IDEAS, AND HARD THOUGHT, AND HARD WORK. IF MAN FEELS SMALL, LET MAN MAKE HIMSELF BIGGER." - HUBERT H HUMPHREY.
Con esta frase es con la inicia el capitulo 1. Después de ésto, Karl Seguin comienza hablándonos acerca de como sus habilidades para programar empiezan a mejorar exponencialmente al momento en que recibe un fuerte asesoramiento y en el que empieza a entender que sabia muy poco y que tenia mucho por aprender.
Luego nos habla de dos grandes fuerzas: .NET de Microsoft y ALT.NET de JAVA.
Objetivos:
Objetivos:
Mantenibilidad es la piedra angular del desarrollo empresarial.Ya que los sistemas gastan un tiempo considerable alrededor del 50% en mantenimientos: realizando cambios, arreglos o soporte. Ademas, la creciente adopción de desarrollo iterativo significa cambios y nuevas características que son constantemente pedidos por los clientes.
Por eso, una solución con mantenibilidad no solo reduce los costos, sino que incrementa el numero de características de calidad que podemos entregar.
Crear código mantenible no es una tarea fácil, ya que necesitamos ser mas diligentes y empezar a ver esto de forma mas natural.
Simplicidad:
Por eso, una solución con mantenibilidad no solo reduce los costos, sino que incrementa el numero de características de calidad que podemos entregar.
Crear código mantenible no es una tarea fácil, ya que necesitamos ser mas diligentes y empezar a ver esto de forma mas natural.
Simplicidad:
La ultima herramienta para hacer un código mantenible es mantenerlo tan simple como sea posible. De tal manera que sea fácil de leer el código y que otro desarrollador lo pueda entender también y que pueda realizar cambios facilmente.
YAGNI (You Aren’t Going to Need It):
Es una creencia de programación extrema que dice que tu no deberías construir algo ya, creyendo que lo vas a necesitar en el futuro. Ya que según la experiencia, muchas veces se gasta mucho tiempo implementando algo, y luego el cliente nos dice que el solo necesitaba lo que nos pidió y nada de lo que hemos realizado.
Último Momento:
La idea es que aplazamos el desarrollo de algo hasta que sea absolutamente necesario. Algunas veces el ultimo momento ocurre normalmente en fases tempranas del desarrollo. Este concepto esta relacionado con YAGNI. Ya que es mejor que el cliente defina lo que realmente quiere, para de esta manera reducir el numero de cambios que tenemos que hacer en el desarrollo.
DRY (Don't Repeat YourSelf):
La duplicación de código puede causar muchos dolores de cabeza a los desarrolladores. Ya que no solo hace que sea mas difícil realizar cambios, sino que hace que sea posible que los nuevos miembros del equipo ingresen errores en el desarrollo. Si aplicamos DRY, haremos que código sea mas mantenible y mas claro. El encapsulamiento y el código de gran cohesión puede ayudar a reducir la duplicación de código.
Claridad y Cohesión:
Esto suena sencillo, pero es importante estar seguro que el código realmente haga lo que tiene que hacer. Esto significa que los nombres de las variables y las funciones deberían ser llamadas apropiadamente y usando un estándar, ademas de tener una documentación adecuada. Ya que si usamos Clases responsables de múltiples o distintos componentes se pueden convertir rápidamente en inmanejables.
Acoplamiento:
Ocurre cuando dos clases dependen cada una de la otra. Se debe reducir el acoplamiento para reducir el impacto causado por los cambios. Reducir o eliminar el acoplamiento es mas fácil de lo que se cree. Existen estrategias y herramientas que pueden ayudar.El truco es ser capaz de identificar acoplamiento indeseable.
Pruebas Unitarias y de Integración Continua (CI):
Ambos son puntos importantes para alcanzar un código sostenible. Las pruebas unitarias permiten a los desarrolladores tener una increíble confianza. La cantidad de cambios de refactorización y de características que tenemos que ser capaces de hacer, cuando existen cientos y miles de pruebas automáticas que validan que no hemos dañado algo. Ademas, si tu no estas dispuesto a adoptar o al menos intentar, pruebas unitarias, tu estas perdiendo el tiempo leyendo esto.
YAGNI (You Aren’t Going to Need It):
Es una creencia de programación extrema que dice que tu no deberías construir algo ya, creyendo que lo vas a necesitar en el futuro. Ya que según la experiencia, muchas veces se gasta mucho tiempo implementando algo, y luego el cliente nos dice que el solo necesitaba lo que nos pidió y nada de lo que hemos realizado.
Último Momento:
La idea es que aplazamos el desarrollo de algo hasta que sea absolutamente necesario. Algunas veces el ultimo momento ocurre normalmente en fases tempranas del desarrollo. Este concepto esta relacionado con YAGNI. Ya que es mejor que el cliente defina lo que realmente quiere, para de esta manera reducir el numero de cambios que tenemos que hacer en el desarrollo.
DRY (Don't Repeat YourSelf):
La duplicación de código puede causar muchos dolores de cabeza a los desarrolladores. Ya que no solo hace que sea mas difícil realizar cambios, sino que hace que sea posible que los nuevos miembros del equipo ingresen errores en el desarrollo. Si aplicamos DRY, haremos que código sea mas mantenible y mas claro. El encapsulamiento y el código de gran cohesión puede ayudar a reducir la duplicación de código.
Claridad y Cohesión:
Esto suena sencillo, pero es importante estar seguro que el código realmente haga lo que tiene que hacer. Esto significa que los nombres de las variables y las funciones deberían ser llamadas apropiadamente y usando un estándar, ademas de tener una documentación adecuada. Ya que si usamos Clases responsables de múltiples o distintos componentes se pueden convertir rápidamente en inmanejables.
Acoplamiento:
Ocurre cuando dos clases dependen cada una de la otra. Se debe reducir el acoplamiento para reducir el impacto causado por los cambios. Reducir o eliminar el acoplamiento es mas fácil de lo que se cree. Existen estrategias y herramientas que pueden ayudar.El truco es ser capaz de identificar acoplamiento indeseable.
Pruebas Unitarias y de Integración Continua (CI):
Ambos son puntos importantes para alcanzar un código sostenible. Las pruebas unitarias permiten a los desarrolladores tener una increíble confianza. La cantidad de cambios de refactorización y de características que tenemos que ser capaces de hacer, cuando existen cientos y miles de pruebas automáticas que validan que no hemos dañado algo. Ademas, si tu no estas dispuesto a adoptar o al menos intentar, pruebas unitarias, tu estas perdiendo el tiempo leyendo esto.