User Tools

Site Tools


wiki:psp_1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
wiki:psp_1 [2024/08/24 23:47] – [Principios de Diseño SOLID] adminwiki:psp_1 [2024/08/28 23:52] (current) admin
Line 265: Line 265:
 Miles de sistemas web dependían de esta función trivial, pero la dependencia ocurría de manera indirecta. Los sistemas usaban npm para descargar dinámicamente el código JavaScript de una biblioteca B1, que a su vez dependía de una biblioteca B2 cuyo código también estaba en npm, y así sucesivamente, hasta alcanzar una biblioteca Bn que dependía de left-pad. Como resultado, todos los sistemas que dependían de left-pad — de forma directa o indirecta — quedaron fuera de servicio durante algunas horas, hasta que la biblioteca se volvió a insertar en npm. En resumen, los sistemas se vieron afectados por un problema en una biblioteca trivial, y no tenían la menor idea de que estaban acoplados a ella. Miles de sistemas web dependían de esta función trivial, pero la dependencia ocurría de manera indirecta. Los sistemas usaban npm para descargar dinámicamente el código JavaScript de una biblioteca B1, que a su vez dependía de una biblioteca B2 cuyo código también estaba en npm, y así sucesivamente, hasta alcanzar una biblioteca Bn que dependía de left-pad. Como resultado, todos los sistemas que dependían de left-pad — de forma directa o indirecta — quedaron fuera de servicio durante algunas horas, hasta que la biblioteca se volvió a insertar en npm. En resumen, los sistemas se vieron afectados por un problema en una biblioteca trivial, y no tenían la menor idea de que estaban acoplados a ella.
  
-====== Principios de Diseño SOLID ======+ 
 +====== Principios de Diseño SOLID y Otros ======
    
 Los principios de diseño son recomendaciones más concretas que los desarrolladores de software deben seguir para cumplir con las propiedades de diseño. Así, las propiedades de diseño pueden verse como recomendaciones aún genéricas (o tácticas), mientras que los principios ahora están en un nivel operativo. Los principios de diseño son recomendaciones más concretas que los desarrolladores de software deben seguir para cumplir con las propiedades de diseño. Así, las propiedades de diseño pueden verse como recomendaciones aún genéricas (o tácticas), mientras que los principios ahora están en un nivel operativo.
Line 272: Line 273:
  
 ^ Principios de Diseño ^ Propiedades de Diseño ^  ^ Principios de Diseño ^ Propiedades de Diseño ^ 
-| Responsabilidad única    | Cohesión   |  +| [[wiki:pru|Responsabilidad Única]]    | Cohesión   |  
-| Segregación de Interfaces    | Cohesión  |  +| [[wiki:psi|Segregación de Interfaces]]    | Cohesión  |  
-| Inversión de Dependencias    | Acoplamiento +| [[wiki:pid|Inversión de Dependencias]]    | Acoplamiento 
-| Preferir Composición sobre Herencia    | Acoplamiento +| [[wiki:ppch|Preferir Composición sobre Herencia]]    | Acoplamiento 
-| Demeter  | Ocultamiento de la Información +| [[wiki:pd|Demeter]]  | Ocultamiento de la Información 
-| Abierto/Cerrado  | Extensibilidad +| [[wiki:pac|Abierto/Cerrado]]  | Extensibilidad 
-| Sustitución de Liskov  | Extensibilidad  |+| [[wiki:psl|Sustitución de Liskov]]  | Extensibilidad  |
  
 Cinco de los principios que vamos a estudiar son conocidos como los Principios SOLID, un acrónimo acuñado por Robert Martin y Michael Feathers [[https://dl.acm.org/doi/book/10.5555/3175742|(enlace)]]. Este acrónimo deriva de la letra inicial de cada principio en inglés: Cinco de los principios que vamos a estudiar son conocidos como los Principios SOLID, un acrónimo acuñado por Robert Martin y Michael Feathers [[https://dl.acm.org/doi/book/10.5555/3175742|(enlace)]]. Este acrónimo deriva de la letra inicial de cada principio en inglés:
Line 287: Line 288:
   * **I**nterface Segregation Principle (Principio de Segregación de Interfaces)   * **I**nterface Segregation Principle (Principio de Segregación de Interfaces)
   * **D**ependency Inversion Principle (Principio de Inversión de Dependencias)   * **D**ependency Inversion Principle (Principio de Inversión de Dependencias)
-  * +
 Los principios de diseño que vamos a estudiar tienen un punto en común: no solo buscan resolver un problema, sino también asegurar que la solución encontrada pueda mantenerse y evolucionar con éxito en el futuro. Los mayores problemas con los proyectos de software suelen ocurrir después de la implementación, cuando el sistema necesita ser mantenido. Normalmente, existe una tendencia a que este mantenimiento se vuelva gradualmente más lento, costoso y arriesgado. Por lo tanto, los principios de diseño que estudiaremos intentan reducir o posponer esta continua degradación de la calidad interna de los sistemas de software. En resumen, el objetivo no es solo entregar un diseño capaz de resolver un problema, sino también facilitar los mantenimientos futuros. Recuerda que la principal regla sobre los requisitos de software es que cambian con frecuencia. Lo mismo ocurre con las tecnologías de implementación, como bibliotecas y frameworks. Los principios de diseño que vamos a estudiar tienen un punto en común: no solo buscan resolver un problema, sino también asegurar que la solución encontrada pueda mantenerse y evolucionar con éxito en el futuro. Los mayores problemas con los proyectos de software suelen ocurrir después de la implementación, cuando el sistema necesita ser mantenido. Normalmente, existe una tendencia a que este mantenimiento se vuelva gradualmente más lento, costoso y arriesgado. Por lo tanto, los principios de diseño que estudiaremos intentan reducir o posponer esta continua degradación de la calidad interna de los sistemas de software. En resumen, el objetivo no es solo entregar un diseño capaz de resolver un problema, sino también facilitar los mantenimientos futuros. Recuerda que la principal regla sobre los requisitos de software es que cambian con frecuencia. Lo mismo ocurre con las tecnologías de implementación, como bibliotecas y frameworks.
wiki/psp_1.1724557653.txt.gz · Last modified: 2024/08/24 23:47 by admin