No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

¿Qué son los principios SOLID?

4/16
Recursos

Aportes 18

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

S. Single responsibility principle-Principio de responsabilidad única.

Debemos asignar una única responsabilidad a cada uno de los componentes.

O. Open/closed principle- Principio de abierto/cerrado.

El código debe estar abierto a extensiones y cerrado a cambios.

L. Liskov substitution principle-Principio de sustitución de Liskov.

Relación entre tipos y subtipos dentro del sistema.

I. Interface segregation principle- Principio de segregación de la interfaz

Ayuda a asignar una responsabilidad específica a cada una de las interfaces que tiene el sistema.

D. Dependency inversion principle- Principio de inversión de la dependencia.

Inyección de dependencias y el evitar el acoplamiento.

S.O.L.I.D
S = Sigle responsibility principle - Principio de responsabilidad única.
O = Open/closed principle - Principio abierto-cerrado.
L = Liskov substitution principle - Principio de sustitución de Liskov.
I = Interface segregation principle - Principio de segregación de interfaz.
D = Dependency inversion principle -Principio de inversión de dependencia.

en una entrevista una vez me preguntaron sobre los pilares de la POO

En varias de las entrevistas de trabajo que he tenido, es una pregunta muy recurrente, ya que de ella parten las bases que se tengan de buenas prácticas

Principios SOLID Explicados por Chat GPT

Los principios SOLID son un conjunto de cinco principios que se aplican a la programación orientada a objetos. Fueron propuestos por Robert C. Martin como una guía para ayudar a los desarrolladores de software a escribir código más claro, fácil de mantener y extensible.

Estos son los principios SOLID:
}

Principio de Responsabilidad Única (SRP): Este principio establece que una clase o módulo debería tener una única responsabilidad, es decir, que solo debería tener una razón para cambiar. Esto ayuda a que el código sea más fácil de entender, probar y mantener.

Principio de Abierto/Cerrado (OCP): Este principio establece que una clase o módulo debería estar abierto a la extensión pero cerrado a la modificación. Esto significa que debería ser posible agregar nuevas funcionalidades sin tener que modificar el código existente.

Principio de Sustitución de Liskov (LSP): Este principio establece que una subclase debería ser capaz de ser sustituida por su clase base sin afectar el comportamiento del programa. Esto ayuda a asegurar la coherencia en el comportamiento de las clases.

Principio de Segregación de Interfaz (ISP): Este principio establece que una interfaz debería ser específica para un cliente en particular y no debería incluir métodos que el cliente no necesita. Esto ayuda a reducir la complejidad y aumentar la cohesión de las clases.

Principio de Inversión de Dependencia (DIP): Este principio establece que los módulos de alto nivel no deberían depender de los módulos de bajo nivel, sino de abstracciones. Esto ayuda a reducir la dependencia entre los componentes del sistema y facilita el reemplazo de componentes individuales.

En resumen, los principios SOLID son una guía para escribir código orientado a objetos de alta calidad, que es fácil de entender, mantener y extender. Siguiendo estos principios, los desarrolladores pueden crear sistemas más robustos, flexibles y fáciles de adaptar a medida que cambian los requisitos del negocio.

Otra pregunta que me hicieron en una entrevista un equipo de developers rusos phperos, fue sobre los modificadores de acceso:

Características de SOLID

  • Orientado al paradigma de orientación a objetos (POO)

  • Se le atribuye a Robert C. Martin

  • Diseño y refactorización de código

  • Se debe implementar desde el inicio del proyecto cuando se crean los componentes.

SOLID Ayuda a:

  • Lograr código escalable

  • Evitar deuda técnica (Technical debt)

  • Plantear los fundamentos para el desarrollo guiado por pruebas (TDD)

  • Tener un estándar claro en cada uno de los proyectos de un portafolio

Solid y algunos ejemplos en Java:
Introduction to SOLID Design Principles for Java Developers

En lo personal si he tenido que aplicar los principios SOLID en proyectos personales, pero el que se me complica mucho de aplicar es el Interface Segregation principle. En cuanto a Dependency inversion principle lo he aplicado muchos en proyectos .NET, y me encanta por el desacoplamiento que brinda y es va genial para escribir test desde mi punto de vista.

Los patrones de diseño son el reflejo de la aplicación de buenas prácticas como solid, en particular podría mencionar que el patrón de adaptador es genial para integrar librerías de terceros, logrando extender la funcionalidad de la lógica del negocio con un bajo acoplamiento.

En lo personal, he utilizado mucho el principio de responsabilidad unica, sin saber que hacia parte de este conjunto de principios. La idea de tomar este curso es formalizar lo que vengo trabajando en mi dia a dia y aprender lo complementario para ir creciendo en mi carrera

## Principios SOLID en C#: Guía rápida Los **principios SOLID** son un conjunto de cinco principios de diseño de software que ayudan a escribir código C# más **robusto, flexible y mantenible**. Son: **1. SRP (Single Responsibility Principle):** Cada clase debe tener una única responsabilidad. **2. OCP (Open/Closed Principle):** Las clases y módulos deben estar abiertos para la extensión, pero cerrados para la modificación. **3. LSP (Liskov Substitution Principle):** Las subclases deben ser sustituibles por sus clases base sin cambiar el comportamiento del programa. **4. ISP (Interface Segregation Principle):** Las interfaces deben ser pequeñas y específicas, definiendo solo las responsabilidades que necesitan. **5. DIP (Dependency Inversion Principle):** Las dependencias deben inyectarse en lugar de ser creadas por las clases que las necesitan. **Beneficios de usar los principios SOLID:** * **Mejora la calidad del código:** Reduce la complejidad, aumenta la flexibilidad y facilita el mantenimiento. * **Facilita la refactorización:** Permite modificar el código sin afectar a otras partes del sistema. * **Mejora la testabilidad:** Permite escribir pruebas unitarias más efectivas. **Ejemplos de aplicación en C#:** * **SRP:** Usar interfaces para definir responsabilidades específicas. * **OCP:** Usar clases abstractas y métodos virtuales para permitir la extensión. * **LSP:** Asegurar que las subclases implementen correctamente el comportamiento de la clase base. * **ISP:** Dividir interfaces grandes en interfaces más pequeñas y específicas. * **DIP:** Usar inyección de dependencias para crear dependencias.

Las mejores ofertas laborales piden concimientos/experiencia en los principios SOLID.

Yo para ser honesto quiero aprender aplicarlo por los nuevos proyectos que he escuchado que eso preguntan en las entrevistas

Es cierto, Soy Java developer y en todas las entrevistas que tuve en mi búsqueda de trabajo en el 2023 me preguntaban si conocía los principios SOLID o si podía dar un ejemplo de como los aplico en mi día a día.
En un día cotidiano utilizo SOLID. En todas las entrevistas de trabajo que me han realizado he podido evidenciar la importancia de saber dominar el tema ya que es indistinto del lenguaje de programación.
Una vez me preguntaron sobre los principios SOLID en una entrevista, si bien siempre los aplico en el desarrollo, no supe explicarlos y me corcharon :p

Definicion de principios SOLID