Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Clean Code, Capítulo 10:
Clases.
Esteban Vallejo Morales
Agenda
• Organización de clases
• Encapsulación
• Las clases deben ser de tamaño reducido
• El principio de responsabilida...
Organización de clases
Según la convención estándar de Java, una clase:
• Comienza con una lista de variables.
• Primero, ...
Encapsulamiento
• Si una regla del mismo paquete tiene que invocar una función o acceder a
una variable , hacemos que teng...
Las clases deben ser de tamaño reducido
• Con las funciones medimos el tamaño contando líneas físicas. Con las clases
usam...
Tamaño de la clase
Mal Bien
Pero…
• No solo hay que cuidar que no tenga muchos métodos, sino cuidar
especialmente que la clase no tenga muchas respons...
Principio de responsabilidad única
• Las clases solo deben tener una responsabilidad y por ende, solo un motivo
para cambi...
Principio de responsabilidad única
• En conclusión: “Los sistemas deben estar formados por muchas clases
reducidas, no por...
Cohesión
• Las clases deben tener un número reducido de variables de instancia.
• Los métodos de una clase deben manipular...
Ejemplo de cohesión
Mantener resultados consistentes en clases de
tamaño reducido
• La división de grandes funciones en otras más pequeña aume...
Organizar los cambios
• En muchos sistemas el cambio es continuo. Cada cambio supone un riesgo
de que el resto del sistema...
MUCHAS GRACIAS
Próxima SlideShare
Cargando en…5
×

Clean code capítulo 10

500 visualizaciones

Publicado el

Presentación acerca de buenas prácticas de programación en lo que se refiere a las clases.

Publicado en: Ingeniería
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Clean code capítulo 10

  1. 1. Clean Code, Capítulo 10: Clases. Esteban Vallejo Morales
  2. 2. Agenda • Organización de clases • Encapsulación • Las clases deben ser de tamaño reducido • El principio de responsabilidad única • Cohesión • Mantener resultados consistentes • Organizar los cambios
  3. 3. Organización de clases Según la convención estándar de Java, una clase: • Comienza con una lista de variables. • Primero, constantes estáticas públicas. • Segundo, variables estáticas privadas. • Tercero, variables de instancia privadas. • Las funciones públicas deben seguir a la lista de variables.
  4. 4. Encapsulamiento • Si una regla del mismo paquete tiene que invocar una función o acceder a una variable , hacemos que tenga ámbito protected o de paquete
  5. 5. Las clases deben ser de tamaño reducido • Con las funciones medimos el tamaño contando líneas físicas. Con las clases usamos otra medida distinta: las responsabilidades.
  6. 6. Tamaño de la clase Mal Bien
  7. 7. Pero… • No solo hay que cuidar que no tenga muchos métodos, sino cuidar especialmente que la clase no tenga muchas responsabilidades. • Una clave para identificar las responsabilidades es asociar a las mismas con el nombre de la clase. • Cuanto mas ambiguo sea el nombre de una clase más probabilidades hay de que tenga demasiadas responsabilidades. • Otra clave es que a la hora de describir la clase no nos encontremos con palabras como “y”, “o”, “si”, “pero”.
  8. 8. Principio de responsabilidad única • Las clases solo deben tener una responsabilidad y por ende, solo un motivo para cambiar. • Podemos extraer los tres métodos de SuperDashBoard relacionados con la información de versiones en una clase independiente como Version. La clase Version es una construcción que se puede reutilizar en otras aplicaciones.
  9. 9. Principio de responsabilidad única • En conclusión: “Los sistemas deben estar formados por muchas clases reducidas, no por algunas de gran tamaño. Cada clase reducida encapsula una única responsabilidad, tiene solo un motivo para cambiar y colabora con algunas otras para obtener los comportamientos deseados del sistema”
  10. 10. Cohesión • Las clases deben tener un número reducido de variables de instancia. • Los métodos de una clase deben manipular una o varias de dichas variables. • Cuantas más variables manipule un método, más cohesión tendrá con su clase. • Una clase en la que cada variable se usa en cada método tiene una cohesión máxima. • La idea es crear una dependencia lógica entre métodos y variables.
  11. 11. Ejemplo de cohesión
  12. 12. Mantener resultados consistentes en clases de tamaño reducido • La división de grandes funciones en otras más pequeña aumenta la proliferación de clases. • Si necesito que dentro de una función 1 se llame a una función 2, en lugar de mandarle a ésta las variables declaradas en la función 1, estas variables hacerse de instancia o globales en la clase pero esto implica que se pierda cohesión ya que acumularían más y más variables globales que solo existen para que otras funciones las compartan. • Cuando esto sucede es conveniente crear otra clase.
  13. 13. Organizar los cambios • En muchos sistemas el cambio es continuo. Cada cambio supone un riesgo de que el resto del sistema no funcione de la forma esperada. En un sistema limpio organizamos las clases para reducir riesgos en los cambios. • En un sistema ideal, incorporamos nuevas funciones ampliándolo, no modificando el código existente. Esto nos lleva a crear subclases que eviten que dos funcionen se relacionen tanto que el cambio en una afecte a la otra. Esta decisión facilita además la realización de pruebas.
  14. 14. MUCHAS GRACIAS

×