Las listas de nodos y los Arrays en Javascript

Introducción

Como resulta frecuente en los lenguajes de tipado dinámico, en ocasiones, no es sencillo determinar el tipo de datos de una variable concreta. Ya hemos visto en artículos anteriores como existen algunos objetos que se parecen arrays, se comportan como tales, pero que no lo son. Era el caso por ejemplo del objeto arguments y del que ahora nos sirve de estudio: las listas de nodos (o NodeLists).

Las listas de nodos son uno de los elementos tipo array más utilizados cuando realizamos aplicaciones que implican un trabajo con el DOM y son el resultado de métodos como:

var myNodeLists = document.getElementByTagName('a');

Con el código anterior, estaríamos seleccionando todos los elementos de la página que se correspondan con una etiqueta ‘a‘, es decir, los anchors o enlaces. Es un escenario muy común pero, ¿alguna vez nos hemos parado a estudiar el tipo de datos que nos son devueltos? Es una lista si, pero ¿qué tipo de lista?

Veámos en este artículo qué son exactamente las listas de nodos y cómo podemos manejarlas de una forma cómoda y sin equívocos. Seguir Leyendo…

Dentro de Javascript, jQuery | Etiquetas: , , , , | 2 Comentarios

Primera Jornada del Grupo de Estudio Javascript Madrid

Introducción

Casi de forma expontánea, con tan solo unos días de antelación, se ha organizado esta semana en Madrid un interesante Grupo de Estudio sobre Javascript. Como no podía ser de otro modo, y viendo a tantos buenos profesionales allí reunidos, la cita no defraudó a nadie.

Para todos aquellos que no han podido asistir (agosto es un mes duro en Madrid), o que quieran tener una idea de cómo se desarrollan este tipo de eventos, escribiré un artículo tras cada clase resumiendo los puntos más interesantes, aportando bibliografía y aquellos recursos adicionales que puedan ayudar a quienes deseen profundizar más.

Veamos sin más qué dio de si la primera jornada. Seguir Leyendo…

Dentro de Javascript | Etiquetas: , , , , , , | 9 Comentarios

Tests Unitarios. Cuándo usarlos y pistas para conseguir un sistema robusto

Introducción

En este artículo, quiero retomar el tema de la programación Javascript, o cualquiera otro lenguaje, mediante la metodología TDD.

Como desarrollador con más de 10 años años de experiencia en el mundo del software, tengo que reconocer que esta metodología funciona: aunque no he realizado ninguna medición estricta, la combinación de tests unitarios y un buen uso de la técnica Pomodoro ha incrementado mi productividad en un factor que debe rondar entre el x7 y x10. Además de esto, mis códigos son mucho más limpios, manejables y, sobre todo, presentan menos bugs.

En el último post, Tú no sabes programar, algunos de los comentarios que más llamaron mi atención fueron aquellos que descalificaban la afirmación de que el TDD es algo que un programador serio debe practicar. Estas críticas tienen que estar basadas, casi sin duda alguna, en el desconocimiento real y/o práctico de lo que supone esta metodología. Y esto viene de lo quizá antiintuivo del método: Seguir Leyendo…

Dentro de TDD | Etiquetas: , , , , | 6 Comentarios

Tú no sabes programar!

Introducción

Uno de los posts más visitados de este blog es el que dediqué a analizar los conocimientos mínimos que un desarrollador Javascript debería tener antes de considerarse experto. La motivación del artículo era el denunciar cómo frecuentemente los candidatos que optan a un puesto laboral engordan su currículum añadiendo altos niveles de conocimientos en lenguajes de programación sobre los que realmente no tienen la experiencia necesaria.

Los comentarios a dicho artículo han sido numerosos, tanto desde el lado de los desarrolladores como desde el de los responsables de contratación de diversas empresas. Y, por lo general, todos coincidían en que la idea general se repite una y otra vez en el mundo laboral actual.

Ha pasado ya un tiempo desde aquel borrador y he reflexionando mucho sobre el tema; finalmente, he llegado a la conclusión de que quizá me equivoqué identificando el origen del problema. En principio, nada ha cambiado: he continuado realizando entrevistas para diferentes empresas con diferentes perfiles a muchos candidatos cuyos méritos sobre el papel prometían una productividad y rendimiento extraordinario. Sin embargo, como tantas veces me ha ocurrido en el pasado, el resultado ha sido por lo general decepcionante.

¿Que por qué me equivoqué entonces? Pues porque el problema no es el desconocimiento de un lenguaje concreto; realmente no importa si un desarrollador no recuerda el orden de los parámetros en una función concreta; o si no es capaz de explicar correctamente en qué consiste la herencia prototípica. El problema es mucho más serio; es un problema de base: no es que no sepas Javascript, es que no sabes programar… Seguir Leyendo…

Dentro de Programación | Etiquetas: , , , , , , , , , , , , , , | 47 Comentarios

Complejidad Ciclomática en Javascript. Concepto, ejemplos y herramientas de medición

Introducción

En el artículo Introducción al diseño de algoritmos en Javascript habíamos repasado algunos de los conceptos fundamentales a la hora de programar funciones eficientes en Javascript. En concreto, habíamos estudiado cómo la complejidad de un algoritmo determina su calidad mediante el sistema de notación Big-O. Sin embargo, tal y como advertimos, medir la complejidad de un código no siempre es una tarea sencilla; necesitamos tener claros cuáles son los criterios que determinan esa característica.

Para ayudarnos en la evaluación, tenemos que necesariamente recurrir a métricas: una serie de reglas establecidas por convención que vienen a determinar diferentes índices presentes en una determinada porción de software.

En esta ocasión, vamos a revisar una de las más extendidas y más sencillas de comprender: la métrica de complejidad ciclomática. Seguir Leyendo…

Dentro de Javascript, jQuery | Etiquetas: , , , , | 3 Comentarios
Página 10 de 34Primera...89101112...2030...Última
Licencia Creative Commons 3.0

®Copyright 2016. Cotenido web bajo licencia Creative Commons 3.0

Códigos bajo licencias MIT y GPL. Ver página de licencias para más información