SOLID y ORMs Flashcards
Explicar que es SOLID
S ingle responsibility principle
O pen/Closed principle
L iskov substitution principle
I nterface segregation principle
D ependency inversion principle
A que se refiere con Single responsability?
Cada clase debe tener una finalidad concreta y única, de modo que no podamos añadir métodos que no correspondan con la clase creada.
Esto ayuda a mantener un código ordenado.
A que se refiere con Open/Closed principle?
El principio indica que las entidades que creamos deben estar abiertas para su extension y cerradas para su modificacion. Necesito clases que se puedan extender sin necesidad de modificar el codigo fuente (encapsulamiento).
- Para que el sistema crezca por la herencia > usamos interfaces
Explicar el principio de Liskov substitution.
El principio indica que los objetos que provienen de una clase padre pueden sustituir al padre sin que esto altere el funcionamiento del sistema.
Que es la interfaz segregation?
Cuando se definen interfaces deben tener una finalidad concreta, es mejor tener varias interfaces con pocos métodos que solo una interface con muchos. Parecido al Single Responsability pero con interfaces.
Explicar dependency inversion principle
El objetivo de este principio es conseguir desacoplar las clases por medio de abstracciones para conseguir que una clase interactúe con otras clases sin que las conozca directamente. Patrones como inyeccion de dependencias o service locator permiten invertir el control.
Que son los ORMs
Herramienta de mapeo de objetos para trabajar con base de datos en los programas orientados a objetos.
Hibernate (java), Eloquent (de arabel), typeORM (javaScript), etc
Al momento de crear una clase, utilizando ciertas definiciones, se determina la persistencia y generar automaticamente la tabla en la base (en vez de hacer queries)
No funciona muy bien con queries complejas.
Ventajas
Facilidad y velocidad de uso
Abstracción de la base de datos usada.
Seguridad de la capa de acceso a datos contra ataques.
Desventajas
En entornos con gran carga poner una capa más en el proceso puede disminuir el rendimiento.
Aprender el nuevo lenguaje del ORM (no esta tan complejo este aspecto).