Una Historia
Dos acorazados asignados a la escuadra de entrenamiento habían estado de maniobras en el mar con tempestad durante varios días. Yo servía en el buque insignia y estaba de guardia en el puente cuando caía la noche.
La visibilidad era pobre; había niebla, de modo que el capitán permanecía sobre el puente supervisando todas las actividades. Poco después de que oscureciera, el vigía que estaba en el extremo del puente informó: “Luz a estribor” ”¿Rumbo directo o se desvía hacia popa?, gritó el capitán. El vigía respondió “Directo capitán”, lo que significaba que nuestro propio curso nos estaba conduciendo a una colisión con aquel buque.
El capitán llamó al encargado de emitir señales. “Envía este mensaje: Estamos a punto de chocar; aconsejamos cambiar 20 grados su rumbo”.
Llegó otra señal de respuesta: “Aconsejamos que ustedes cambien 20 grados su rumbo”.
El capitán dijo:”Contéstele: Soy capitán; cambie su rumbo 20 grados”.
“Soy marinero de segunda clase -nos respondieron-. Mejor cambie su rumbo 20 grados.
El capitán ya estaba hecho una furia. Espetó: ”Conteste: Soy un acorazado. Cambie su rumbo 20 grados”.
La linterna del interlocutor envió su último mensaje: “Yo soy un faro”.
Cambiamos nuestro rumbo.
Texto extraído del libro “los siete hábitos de la gente altamente efectiva”, escrito por Stephen R. Covey.
¿Qué es un Prinicipio?

Basandonos en la historia anterior un principio es como el Faro, el cual simplemente está allí, es verdadero e intemporal y es decisión nuestra si vamos en contra de él como obstinadamente lo estaba haciendo el barco insignia o dejamos que su "Luz" nos guíe.
Los patrones y practicas(PyP).
Los PyP son el resultado de años de ingeniería, de ensayo y error, pero siempre detrás de ellos están los principios, es decir, en última instancia si no encontramos un Patrón o Práctica que nos ayude lo que debemos hacer es apoyarnos en los prinicipios entendiendo las consecuencias de alineranos con ellos o no, el siguiente texto fue extraido y traducido del libro Implementing Lean Software Development.
"Copiar o adoptar una práctica sin entender los principios subyacentes tiene una larga historia de resultados mediocres. Pero cuando los principios subyacentes son entendidos, es útil copiar las prácticas que ya han funcionado para otros, entonces modificarlas y ajustarlas a nuestras necesidades".
Lo que debemos aprender es que si entendemos y comprendemos los Prinicipios le sacaremos mayor provecho a los PyP que utilicemos, porque entedemos verdaderamente las implicaciones de su utilización y podremos ajustarlo a nuestras necesidades.

¿Tú código quieres mejorar? Los principios S.O.L.I.D. debes aplicar.
Al igual que toda rama del conocimiento el desarrollo de software y sobre todo en lo que respecta al diseño y desarollo de software orientado a objetos se han identificado unos principios que lo rige y que Robert C. Martin(mas conocido com Uncle Bob) los ha agrupado en el acrónimo S.O.L.I.D. principles, a continuación el enunciado de cada uno de los Prinicipios.
Single Responsibility Priniciple: THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE.
Open Closed Principle: SOFTWARE ENTITIES (CLASSES, MODULES, FUNCTIONS, ETC.) SHOULD BE OPEN FOR EXTENSION, BUT CLOSED FOR MODIFICATION.
Liskov Substitution Principle: FUNCTIONS THAT USE POINTERS OR REFERENCES TO BASE CLASSES MUST BE ABLE TO USE OBJECTS OF DERIVED CLASSES WITHOUT KNOWING IT.
Interface Segregation Principle: CLIENTS SHOULD NOT BE FORCED TO DEPEND UPON INTERFACES THAT THEY DO NOT USE.
Dependency Inversion Principle:
A. HIGH LEVEL MODULES SHOULD NOT DEPEND UPON LOWLEVEL MODULES. BOTH SHOULD DEPEND UPON ABSTRACTIONS.
B. ABSTRACTIONS SHOULD NOT DEPEND UPON DETAILS. DETAILS SHOULD DEPEND UPON ABSTRACTIONS.
Por cada uno de estos Principios realizaré un Post, serán 5 Post donde explicaré las implicaciones de alinearse o no con cada Principio.
Fuentes:
http://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
Implementing Lean Software Development
Clean Code: A Handbook of Agile Software Craftsmanship
Agile Software Development, Principles, Patterns, and Practices
Los 7 habitos de la gente altamente efectiva
Happy Coding
The Clean Coder, Because small things matter.