Herramientas de usuario

Herramientas del sitio


apuntes:refactorizacion

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
apuntes:refactorizacion [30/09/2020 19:54] – editor externo 127.0.0.1apuntes:refactorizacion [16/09/2024 19:32] (actual) – editor externo 127.0.0.1
Línea 131: Línea 131:
 ===== Bad Smells ===== ===== Bad Smells =====
 Se conoce como **Bad Smell o Code Smell** (mal olor) ((https://es.wikipedia.org/wiki/Hediondez_del_c%C3%B3digo)) a algunos indicadores o sintomas del código que posiblemente ocultan un problema más profundo.  Se conoce como **Bad Smell o Code Smell** (mal olor) ((https://es.wikipedia.org/wiki/Hediondez_del_c%C3%B3digo)) a algunos indicadores o sintomas del código que posiblemente ocultan un problema más profundo. 
-Los //bad smells// no son errores de códigobugs, ya que no impiden que el programa funcione correctamente, pero son indicadores de fallos en el diseño del código que dificultan el posterior mantenimiento del mismo y aumentan el riesgo de errores futuros.+Los //bad smells// no son errores de código (bugs), ya que no impiden que el programa funcione correctamente, pero son indicadores de fallos en el diseño del código que dificultan el posterior mantenimiento del mismo y aumentan el riesgo de errores futuros.
 Algunos de estos síntomas son: Algunos de estos síntomas son:
   * **Código duplicado** (//Duplicated code//). Si se detectan bloques de código iguales o muy parecidos en distintas partes del programa, se debe extraer creando un método para unificarlo.   * **Código duplicado** (//Duplicated code//). Si se detectan bloques de código iguales o muy parecidos en distintas partes del programa, se debe extraer creando un método para unificarlo.
Línea 139: Línea 139:
   * **Clases muy grandes** (//Large class//). Problema anterior aplicado a una clase. Una clase debe tener solo una finalidad. Si una clase se usa para distintos problemas tendremos clases con demasiados métodos, atributos e incluso instancias. Las clases deben el menor numero de responsabilidades y que esté bien delimitado.   * **Clases muy grandes** (//Large class//). Problema anterior aplicado a una clase. Una clase debe tener solo una finalidad. Si una clase se usa para distintos problemas tendremos clases con demasiados métodos, atributos e incluso instancias. Las clases deben el menor numero de responsabilidades y que esté bien delimitado.
  
-  * **Lista de parámetros extensa** (//Long parameter list//). Las funciones deben tener el mínimo número de parámetros posible, siendo 0 lo perfecto. Si un método requiere muchos parámetros puede que sea necesario crear una clase con esa cantidad de datos y pasarle un objeto de la clase como parámetro. Del mismo modo ocurre con el valor de retorno, si necesito devolver más de un dato.+  * **Lista de parámetros extensa** (//Long parameter list//). Las funciones (o métodos en Java) deben tener el mínimo número de parámetros posible, siendo 0 lo perfecto. Si un método requiere muchos parámetros puede que sea necesario crear una clase con esa cantidad de datos y pasarle un objeto de la clase como parámetro. Del mismo modo ocurre con el valor de retorno, si necesito devolver más de un dato.
  
   * **Cambio divergente** (//Divergent change//). Si una clase necesita ser modificada a menudo y por razones muy distintas, puede que la clase esté realizando demasiadas tareas. Podría ser eliminada y/o dividida.   * **Cambio divergente** (//Divergent change//). Si una clase necesita ser modificada a menudo y por razones muy distintas, puede que la clase esté realizando demasiadas tareas. Podría ser eliminada y/o dividida.
apuntes/refactorizacion.1601495667.txt.gz · Última modificación: 16/09/2024 19:32 (editor externo)