18
dic 11

Patrón Promise: Implementación (I)

Lo prometido es deuda (bien lo saben las funciones) y he encontrado un momento para empezar a explicar la forma en la que he implementado el patrón Promise en mi caso, no tiene porqué ser la mejor, pero cumple con su cometido.

NOTA: Me gustaría implementarla en Test Driven Development, pero ya es bastante para quien lee y para el que escribe seguir la implementación como para encima añadir TDD, pero no quisiera dejar de recomendarlo.

Primero: Funcionalidad básica

Lo que necesitamos de un objeto Promise es:

  • Crear instancias totalmente independientes
  • Añadirle callbacks que serán llamados cuando se cumpla la promesa
  • Notificarle cuando se ha cumplido la promesa

Seguir leyendo →


09
dic 11

El patrón Promise

PROBLEMA

Recientemente he tenido que implementar un sistema MVC en Javascript para simplificar el desarrollo sobre una plataforma y me he encontrado con el problema de que las llamadas asíncronas a servidor rompían la simpleza del código, tras un análisis identifiqué cuatro problemas:

1 – Ensuciar la API

Todas las llamadas reciben un último argumento que es el callback:

var dir = new Directory('file:///home/user/Desktop');
dir.browse(function(dir, items) {
  // ...
});

Con ésto la API resulta confusa desde el punto de vista de la simpleza y de la semántica. Semánticamente una función recibe la información mínima indispensable para devolver un dato relacionado a lo que se le ha solicitado, como vemos no es el caso en métodos asíncronos:

void Directory.browse(Function callback);
void File.getContent(String encoding, Function callback);
void File.getPermission(Function callback);

Seguir leyendo →


07
dic 11

Let’s get it started!

Bueno, ha llegado la hora de dar el siguiente paso como programador: comenzar un blog para que todos puedan criticarme por poner las llaves { a la derecha :D

Y ESTE DE DONDE SALE?

Primero lo primero. Mi nombre es Adrián Matías Quezada pero lo de Adrián está de adorno, tengo 22 años hasta la fecha de los cuales los últimos 5 los he pasado trabajando de programador, a nivel aficionado he estado metido en informática desde que tengo memoria para desgracia de mis padres y para beneficio del la tienda de informática local a la cual acudían cada mes para que arreglara mis desastres con la computadora. Por aquellos tiempos Flash era la última tecnología y gracias al código ActionScript embebido en los frames descubrí que podía controlar el flujo de una película .swf. Desde entonces he me ha ido interesando cada vez más la programación hasta que finalmente aprendí superficialmente C++. Pasaron los años y empecé a trabajar por lo que pude empezar en aplicaciones serias con C#.NET, Java, Python, etc… Finalmente me hice freelance y conseguí un puesto en una RIA bastante compleja gracias a la cual descubrí Javascript y sus good parts con el cual llevo dos años trabajando y disfrutando de sus secretos.

DE QUE TRATA ÉSTE BLOG?

El tema de éste blog me costó bastante definirlo, básicamente es lugar donde pueda compartir mis experiencias profesionales y aficionadas sobre programación, administración de sistemas e informática en general. Principalmente hablaré de Javascript ya que trabajando con él cada día me surgen incesantemente preguntas y soluciones y sobre programación… llamémosle semántica, conceptos aplicables a cualquier lenguaje. Para empezar hay varios temas que me gustaría tratar que los listaré aquí para no olvidarlos y porque soy demasiado vago para hacer una lista de ToDo:

  • Buenas Prácticas
  • El patrón Promise
  • Programming Style & Mind (Douglas Crockford)
  • Javascript: Conceptos básicos
  • GNU/Linux: Comandos útiles

Espero poder tenerlos todos antes de que acabe el mes, mi habilidad para gestionar el tiempo es próxima a cero.   Por el momento eso es todo, espero contribuír a muchos autodidactas como me ayudaron a mi las páginas de mi época.


07
dic 11

Hello World!

int main(char** args) {
  print("Hello World!");
  return 0;
}

Y así es como un blog de programación debe empezar.