js
Algunas consideraciones sobre el hoisting
· ☕ 9 min · ✍️ eiximenis
Mucho se ha escrito sobre el hoisting en JavaScript. Es uno de los conceptos que al principio confunden más. Yo mismo escribí hace ya algún tiempo un post sobre hoisting en el blog de recursos de CampusMvp. Este post pretende entrar en más detalles. Doy por supuesto que ya sabes que es el hoisting en JavaScript, pero bueno no está de más comentar la definición que es más fácil que te encuentres: el hoisting es básicamente poder acceder a una variable antes de declararla, ya que realmente las declaraciones se mueven al principio del ámbito.

Listas "seguras" en JavaScript
· ☕ 2 min · ✍️ eiximenis
Que las clases en ECMASCript 2015 son algo muy diferente a las clases en otros lenguajes como C# o Java, es algo que ya deberíamos tener muy claro. El propio lenguaje funciona de forma muy distinta (dinámico, basado en prototipos, no existen las clases en runtime,…), pero podemos hacer cosas igualmente interesantes. Una necesidad que podríamos tener es la de tener una clase que nos permita solo tener objetos de una determinada clase.

¿Qué es jspm?
· ☕ 10 min · ✍️ eiximenis
Jspm es otro gestor de paquetes para JavaScript. Por lo tanto antes de nada es lícito preguntarnos… ¿necesitábamos otro gestor de paquetes? En JavaScript tenemos al menos dos de dominantes: Por un lado bower, que es (o fue) el gestor de librerías JavaScript de cliente. Es decir, te querías instalar jQuery o Angular? Pues lo instalabas desde Bower. Bower tenía en cuenta las dependencias (p. ej. que Backbone depende de Underscore) y las descargaba automáticamente.

Clases como ciudadanos de primer orden en JS
· ☕ 3 min · ✍️ eiximenis
Una de las novedades de ES2015 es el concepto de clases. Las clases en JavaScript nada tienen que ver con el concepto de “clase” de otros lenguajes como C++, Java o C#. En JavaScript las clases son una sintaxis alternativa para definir funciones constructoras. Pero, lo que seguimos teniendo por debajo es la herencia entre objetos, basada en prototipos. Un punto importante, y que se suele pasar por alto, es que dado que una clase al final termina definiendo una función, y las funciones son ciudadanos de primer orden, también deben serlo las clases.

Mixins y Traits
· ☕ 6 min · ✍️ eiximenis
En este post vamos a ver qué son y en qué consisten los mixins y los traits, dos conceptos muy parecidos entre ellos y que algunas veces se confunden. Primero comentar que no todos los lenguajes los soportan. P. ej. Java (a partir de la versión 8) permite implementarlos en parte, lo mismo que C# usando métodos de extensión. Otros lenguajes como JavaScript, Swift, C++ o Ruby (entre muchos otros) permiten una implementación más completa, ya sea de forma más o menos directa.