Me dedico a eso de la programación! Me destaco trabajando en soporte técnico y en aplicaciones/paginas web. Tengo experiencia en lenguajes como PHP, Python y Javascript entre muchos otros. También soy hábil estructurando y consultando bases de datos.
Me gusta que el código sea ordenado, semántico y mantenible. Si tienes una idea loca o algún proyecto interesante, contáctame y lo hacemos realidad! Cada proyecto se convierte en una oportunidad para aprender nuevas habilidades y demostrar mis conocimientos.
Yo uso Slackware, mi codigo está en Github, me puedes encontrar en Google+ y aveces participo en StackOverflow.
Hoy voy a escribir acerca del Patrón Observador (Observer en inglés), quizás uno de mis favoritos. También se le conoce como el patrón de Publicación - Inscripción.
El patrón observador, es flexible y sencillo. Se utiliza cuando uno quiere notificar a otros objetos de un evento. En principio, lo que sucede es que un Objeto (llamemoslo Observador) se inscribe a otro Objeto (llamemoslo Sujeto) y este le avisa cuando un evento es disparado (o cuando el estado del Sujeto ha cambiado).
Se pueden inscribir varios Observadores, en ese caso (generalmente) la notificación del cambio de estado va de acuerdo al orden en como se suscribieron los Observadores.
Este patrón de diseño nos permite modificar, retirar o agregar responsabilidades a un objeto dinámicamente. Cuando digo dinámicamente, me refiero a que las funcionalidades se modifican/agregan/retiran durante la ejecución del script o aplicación.
La gran ventaja es que nos permite extender objetos incluso en situaciones cuando la extensión vía herencia no es viable o no es necesaria. Adicionalmente nos ayuda a conservar el principio de Abierto/Cerrado, en donde se dicta que cada entidad debe estar abierta a extensión pero cerrada a modificación.
Otra ventaja es que las decoraciones nos evitan la labor de crear clases complejas con mucho código, que en la mayoría de los casos no será evaluado. Nosotros podemos usar distintas combinaciones (o secuencias) de decoraciones para generar distintos comportamientos o resultados.
En inglés es conocido como Dependency Injection o DI. Para empezar a hablar de DI, lo primero que debemos hacer, es definir que constituye una dependencia.
Una dependencia es otro objeto necesario para que una clase funcione. Por ejemplo, tenemos una Clase llamada Usuario, que necesita el objeto Logger para guardar información sobre las acciones del usuario. Bajo esta definición, el objeto Logger es una dependencia de la clase Usuario.