Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Código Limpio
Código Limpio
Regla de tres.
METODO LARGO
En la mayoría de los casos, es más difícil crear un nuevo método que agregar uno
existente. Solemos decirnos :
"Pero son solo dos líneas, no sirve de nada crear un método completo solo para eso..."
Y lo único que estamos logrando con eso, es hacer que nuestro código sea menos
legible.
Solución
Como regla general, si comentas algo dentro de un método, debe tomar este código y
ponerlo en un nuevo método. Incluso una sola línea puede y debe dividirse en un
método separado, en el caso de que requiera explicaciones. Y si el método tiene un
nombre descriptivo, nadie necesitará mirar el código para ver qué hace.
EXTRAER EL MÉTODO
Problema Solución
Tenes un fragmento de código que se puede agrupar en un método.
UTILIZAR OBJETOS COMO
PARAMETROS
Problema Solución
El método contiene demasiados parámetros de entrada.
REEMPLAZAR MÉTODO
Problema Solución
Problema Solución
Tenes un condicional "if" o "switch" complejo y es poco legible.
CLASES LARGAS
Las clases generalmente comienzan pequeñas. Pero con el tiempo, crecen a medida que
vas trabajando en el programa.
Como también es el caso con los métodos largos, los programadores generalmente
encuentran mentalmente menos agotador colocar una nueva función en una clase
existente que crear una nueva clase para la función.
Solución
Problema Solución
Tenes una clase con muchas funcionalidades.
EXTRAER SUBCLASE
Problema Solución
Tenes una clase con muchas funcionalidades.
EXTRAER INTERFACE
Problema Solución
Tenes una clase con muchas funcionalidades.
CLASES IDENTICAS
Dos clases realizan funciones idénticas pero tienen diferentes nombres de métodos.
Solución
Renombrar los métodos.
Agregar parámetros a los métodos.
Mover los métodos a la clase correspondiente.
Combinar los métodos de las clases en uno solo y agregar los parámetros si es necesario.
MALA JERARQUÍA
Si una subclase usa solo algunos de los métodos y propiedades heredados de sus padres,
la jerarquía está fuera de lugar. Los métodos innecesarios pueden simplemente no usarse
o redefinirse y generar excepciones.
Solución
Si la herencia no tiene sentido y la subclase realmente no tiene nada en común con la
superclase, haya que eliminar la herencia.
Problema Solución
MAL USO DEL CONDICIONAL SWITCH
El uso de los operadores "switch" y "case" es uno de los sellos distintivos del código
orientado a objetos. A menudo, el código para un solo "switch" puede estar disperso en
diferentes lugares del programa. Cuando se agrega una nueva condición, debe encontrar
todo el código del "switch" y modificarlo.
Como regla general, cuando vea un cambio, debe pensar en polimorfismo.
Solución
Problema Solución
PROBLEMAS CON LAS VARIABLES
Los campos temporales se crean para su uso en un algoritmo que requiere una gran
cantidad de entradas. Entonces, en lugar de crear una gran cantidad de parámetros en
el método, el programador decide crear campos para estos datos en la clase. Estas
campos se usan solo en el algoritmo y no se usan el resto del tiempo.
Este tipo de código es difícil de entender. Espera ver datos en campos de objetos pero,
por alguna razón, casi siempre están vacíos.
Solución
Los campos temporales y todo el código que opera en ellos se pueden colocar en una
clase separada a través de Extraer clase
Utilizar el patrón Null object e intégrelo en lugar del código condicional que se usó para
verificar la existencia de los valores de las variables temporales.
NULL OBJECT
Problema Solución
CONCLUSIÓN