7 nov 2012

Solución 10 - Principios SOLID

Los principios SOLID son, tal y como lo entiendo yo, una serie de reglas que si se cumplen, el diseño de una aplicación queda blindada, siendo mínimos los costes de crear nuevas funcionalidades y se asegura que el mantenimiento sea mínimo. 
Se trata de dedicar cierto tiempo extra en crear cimientos "sólidos" en el diseño, para facilitar el mantenimiento y/o evolución a posterior de la aplicación. 

Definición Wikipedia: http://es.wikipedia.org/wiki/SOLID_(object-oriented_design)


Significaco de las SIGLAS:

  • S: Single Responsibility Principle (SRP) - Principio de Responsabilidad Única
  • O: Open-Closed Principle (OCP) – Principio de Abierto-Cerrado
  • L: Liskov Substitution Principle (LSP) – Principio de Substitución de Liskov
  • I: Interface Segregation Principle (ISP) – Principio de Segregación de Interface
  • D: Dependency Inversion Principle (DIP) – Principio de Inversión de Dependencia
Resumen:
El Principio de Responsabilidad Única (SRP) nos dice que una clase sólo debe tener una única razón para cambiar. Este principio nos ayuda a dirigir la cohesión y controlar el acoplamiento.
El Principio de Abierto-Cerrado (OCP) nos indica cómo diseñar clases de manera que estas se puedan extender sin tener que modificar su funcionalidad principal. Aplicando este principio conseguimos sistemas bien encapsulados y altamente cohesivos.
El Principio de Substitución de Liskov (LSP) se centra en los conceptos de encapsulación y cohesión. Y dice que una clase que implemente una interfaz o herede de una clase base no debe violar la intención o la semántica de la abstracción heredada.
El Principio de Segregación de la Interfaz (ISP) nos habla de como las clases no deben exponer interfaces que las aplicaciones que las usan no necesitan. Aplicando este principio se obtiene una mejora en la encapsulación y cohesión de sistemas.
El Principio de Inversión de Dependencias (DIP) está enfocado en hacernos entender de como los detalles de implementación debe depender de la funcionalidad de alto nivel que requiere el sistema y no al revés. Y de como conseguir invertir esta relación de manera satisfactoria.

Fuente principal:
Otras fuentes: 

18 oct 2012

Solución 9 - Buscar tabla de una columna en SQL Server

¿Cuantas veces sabías el nombre de la columna pero no en que tabla estaba?
Si el numero de tablas es pequeño la tarea de búsqueda no es difícil.
Pero si el número de tablas es de un tamaño importante como 1000 tablas?
Vaya locura no?

Esta solución encuentra la tabla a partir del nombre de la columna en una BBDD SQL Server.

SELECT name FROM sysobjects WHERE id IN SELECT id FROM syscolumns WHEREname 'THE_COLUMN_NAME' )

Fuente: http://www.dzone.com/snippets/find-table-column-sql-server