Sí…justo como lo dice el título, hay consideraciones en la construcción de sistemas utilizando el paradigma orientado a objeto. Seguirlos o no formarán características de impacto en los productos y proyectos, mucho de ello tiene que ver con la tendencia de desarrollo SOLID. Pero para descubrirlos:

mandamientos

  1. Seguir el Principio de Responsabilidad Única: Cada clase debe tener un único eje de cambio. Ello implica que la clase ó incluso también una función deben tener un alcance único. Ello permite que el código sea mantenible y legible. Si llegase aumentar el alcance, entonces se considera una función o clause auxiliar que tenga el procesamiento restante.
  2. Seguir el Principio de Abierto/Cerrado: A medida que cambia el funcionamiento de un sistema por la adición de nuevas funcionalidades, es necesario tener en cuenta cómo hacer que el código se adapte. ¿Cómo hacer crecer el código sin afectar el existente pero que éste se pueda extender?.
  3. Composición sobre herencia: Si se debe utilizar operaciones sencillas existentes en varias clases lo cómun sería utilizar el mecanismo de composición para evitar una herencia frágil. Si realmente conlleva a una herencia entonces tener en cuenta el principio Liskov.
  4. Encapsula datos y comportamiento: Es importante encapsular los datos, pero también es importante encapsular el código sobre todo si varía de contexto. Así como se encapsula los datos privados, el comportamiento sobre ellos, también es un factor a considerar.
  5. Seguir el bajo acoplamiento: Esto tiene que está relacionado con el encapsulamiento. Lograr el bajo acoplamiento de las clases se puede obtener delegando principalmente en abstracciones y no en implemetaciones.
  6. Seguir la cohesión en las clases: Las clases no debería evitar detalles sobre su implementación en otras clases. Ello se encuentra relacionado también con evitar el acoplamiento entre ellas. De igual manera, se puede evitar con paradigmas como Command Query Responsibility Segregation lo cual permite separar comportamientos, utilizado comúmente en sistemas distribuidos.
  7. Interfaces sobre implementación: Una buena manera de incentivar el bajo acoplamiento. De igual manera permite modificar implementaciones sin afectar las clases que le utilicen.
  8. Mantén DRY: Otro principio SOLID que plantea no repetir el código por todos tus archivos. Un algoritmo, funcionalidad, sólo debe estar escrito una vez. Lo contrario se denomina WET(Escribe siempre doble).
  9. Principio del mínimo conocimiento: Esto establece que los objetos no debe conocer el estado de sus colaboradores. También conocido como habla con amigos, pero no con los amigos de tus amigos. Una clase solo debe poder invocar las funcionalidades públicas de otra.
  10. Principio de Hollywood: Permite flexibilixar las ejecuciones de código fijando eventos. Ello puede realizarce con rellamadas, promesas o utilizando inyecciones de interfaces. Ejemplo son las implementaciones de Inversión de Control o Inyección de Dependencias.

Fuentes:

https://dzone.com/articles/ten-commandments-of-object-oriented-design?edition=216188&utm_source=Daily%20Digest&utm_medium=email&utm_campaign=dd%202016-09-27

https://www.adictosaltrabajo.com/tutoriales/solid-3/

 

Anuncios