Analítica web
Reflexiones desde el mercado español de Analítica Web

Analítica web como patrón de diseño

Se lee en 2 minutos

La historia antigua

Hace ya algún tiempo, un arquitecto tuvo la idea de compilar una lista de soluciones template a problemas habituales a los que se enfrentaba. Y como toda actividad que trata de optimizar el esfuerzo intelectual, la ingeniería terminó por adueñarse del concepto. En concreto, este tipo de técnicas son muy utilizadas en la ingeniería informática. La enorme cantidad de lenguajes y contextos vuelve poco factible concretar a nivel de código. En su lugar, los patrones de diseño dan directivas para solucionar estos módulos.

El evento

Todo esto viene a la sazón de algo que llevaba rondándome la cabeza ya tiempo y que un compañero de profesión, con bastante criterio, comentó como obvio, «En el futuro las páginas y aplicaciones se etiquetarán solas».

Justo a continuación se dejaron escuchar la lista habitual de buzzwords que debe incluir cualquier proceso digno de ser considerado magia. A saber: inteligencia artificial, big data, y Elon Musk (siendo este último quien, habitualmente, obra la magia en las conjeturas).

Pero bajando a la tierra, nos encontramos con el mundo real:

This is our world now… the world of the electron and the switch, the
beauty of the baud.

— The Hacker Manifesto.

Aún en nuestro mundo de alta tecnología, una actividad tan crítica como es esta, la de enlazar el código con medición, es necesaria y difícilmente atribuible a las máquinas. Igual que son personas las que desarrollan, son personas también las que definen cómo se mide el contenido.

El prototipo

Don’t call us, we call you. En primer lugar, puede parecer interesante la inyección de dependencias. Emplear un patrón proxy entre todas las partes móviles de su arquitectura como se muestra en la Figura 1. En caso de no estar presente una implementación, contar con un dummy fallback que, simplemente, propague los datos.

patron proxy
Figura 1: diagrama conceptual del patrón proxy.

Sin embargo, hay que pensar en implementar esto en javascript. Si queremos la mayor compatibilidad, además tendríamos que implementarlo en ES5… Podemos seguir sumando, pero la conclusión va a ser la misma. Para implementar un patrón de diseño de manera limpia, sería conveniente algo más robusto. Hay que matar al dinosaurio.

El candidato perfecto es TypeScript. Tipado fuerte, orientado a objetos, herencia, polimorfismo y elevalunas eléctrico. Paradójicamente desarrollado en un principio e impulsado por Microsoft (que mantiene a su vez navegadores jurásicos que impiden el avance de su lenguaje y de la analítica en general).

1) Implementar una interfaz analizable con una función que unificase el acceso a los datos del objeto:

 

interface Analyzable {
   getData(): {[key: string]:string};
}
class Form implements Analyzable {
   questions = {
       age: age$,
       education: education$,
       …
  }
   getData() {return this.questions}
}

 

2) Decorar con la configuración los objetos deseados: de esta forma se podrían customizar las variables que enviar a la analítica sobre la propia clase. Similar a la técnica de los ORM con anotaciones, que permiten especificar qué campos son qué claves de una base de datos.

 

@analyzable()
class FormButton {
   @event(12) button: Button;
}

 

3) Utilizar funciones proxy para nuestros controladores como las que se mencionan arriba. De esta forma, tenemos acceso al flujo de información. No tenemos que acceder a ella sino que la información accede a nuestros recursos.

 

…
show(user_age);
...

 

 show function (user_age){
   proxied.show(user_age);
   analytics(user_age);
}

El fin

En el tiempo en que estas palabras fueron escritas, algunos Tag Managers publicaron actualizaciones para la integración de servicios ignotos. Herramientas de analítica web actualizaron sus interfaces REST para admitir un nuevo parámetro que se podrá enviar desde su librería.

El algoritmo para ordenar una lista de números más eficiente que conocemos tiene poco más de 50 años. El método para intercambiar claves de una manera imposible de espiar se publicó en el IEEE en el ‘76. Ahora tenemos máquinas que entrenamos como mascotas. No podemos ni imaginar las tecnologías de que dispongamos mañana.

Escribe tu comentario

19 + diecisiete =

Navegar