
Que JavaScript es un lenguaje con una curva de aprendizaje un tanto abrupta, es algo que nadie desconoce. Es más, personalmente no soy un gran amigo del mismo.
Pero hay que reconocer que tiene un empuje y una “magia” que atrae a un número, cada vez, mayor de desarrolladores. Tanto en su forma pura como en los frameworks grandes y pequeños que pululan por la Red, para facilitar su entendimiento y su uso.
Como todo lenguaje que se precie, tiene una apabullante cantidad de material audiovisual publicado en la Red. Pero hoy quiero compartir contigo uno de esos trabajos que imponen respeto. Tanto por su profundidad, como por ser el esfuerzo de una sola persona.
Aunque está escrito en inglés, estamos ante un muy buen manual para principiantes en javascript, en donde el autor,Addy Osmani, introduce al lector a los fundamentos de los patrones de software. Llevándole de la mano, ganando en complejidad y profundidad. Y con profusión de ejemplos prácticos de código, que facilitan mucho el estudio y entendimiento de los complejos conceptos tratados.
Me gusta el concepto de empezar con una introducción a cada uno de los principales patrones. Pasando a continuación, en los siguientes capítulos, a un estudio detallado de cada uno. Finalizando con la implementación de los mismos en jQuery. Y como bono, añade los principales patrones que se utilizan en la librería.
En resumen, un manual muy recomendable.
Web | Essential JavaScript Design Patterns For Beginners
En GenbetaDev | QuoJS, micro librería de JavaScript para móviles, Gerbil, un framework TDD para JavaScript en 249 líneas
Comentarios
En la parte de orientación a objetos me quedé un poco pillado, y solo aprendí la parte 'básica' para saber moverme, usarlo, etc. Veamos que nos presenta el manual.
Gracias por la info :)
"Essential..." es bastante completo porque repasa un buen número de patterns (de los que yo, en general, soy muy poco amigo de aplicar "a piñón"), sin embargo y como dice jask hace una ¿rápida? introducción a OOP con javascript.
He aquí uno que creo satisfará a quien quiere aclarar sus dudas sobre OOP en js.
Muchas gracias por el enlace. Me lo apunto para un artículo en el futuro.
Muchas gracias, allá que voy :) !!
Aviso:
en dicho artículo se expone la forma de realizar "templating" usando el plugin jquery-tmpl, pero jQuery dice que lo abandonan en favor de JsViews.
Lo digo por quien lea el tutorial, no eche mucha carne en jquery-tmpl.
-- editado por última vez a las 10:17
Es dificil Javascript?? a mi, personalmente, no me lo parece, aunque claro está, vengo de ActionScript y de ahi que no me resulte tan cuesta arriba. Aun asi, me gustaría saber en que se dificulta para estar preparado como un ninja.
Empecé hace nada un libro realmente bueno, estoy sorprendido de lo bien que se explica el autor. Se llama "Javascript - la guia definitiva" con nada menos que 1100 pag (ya sabeis que me niego a aprender un framework sin saber casi al completo TODO JS, es mas, mi intencion con este lenguaje es 0 framework, aunque quien sabe en un futuro...), donde voy por el capitulo 4 y explica hasta lo más mínimo del nucleo Javascript, la verdad, lo estoy llevando ligero, tambien es eso, que cuento con conocimientos del ECMAScript y puede ser por eso que esté familiarizado.
Es que Javascript es otra implementación de http://es.wikipedia.org/wiki/ECMAScript
El "problema" de JS es que es un lenguaje OO bastante diferente de las implementaciones más conocidas de ese paradigma: normalmente se usan clases, y no prototipos.
-- editado por última vez a las 22:07
Ok, gracias por la aclaracion :). Lo del ECMAScript lo supe ayer mismo xD pensaba que era cosa solo de ActionScript...
Y que diferencias hay entre clases y prototipos?? He leido esta última palabra en varios sitios rodeado de un contexto no muy positivo, que digamos...
Se sabe si en proximas versiones de JS se implementará las clases?? o es cosa imposible??
-- editado por última vez a las 22:29
A grandes rasgos, una clase es una "plantilla" a partir de la cual creas objetos. Todos los objetos instanciados a partir de esa clase tienen los datos y funcionalidad que esa clase defina.
Con un prototipo lo que haces es instanciar un objeto que sirve de base, definiendo su funcionalidad y estado. Para crear otros objetos que tengan la misma funcionalida y estado lo que haces es clonar el objeto base (prototipo)
Quizá la diferencia más importante es que *normalmente* una clase no cambia en runtime, mientras que si cambias el objeto prototipo, ese cambio se propaga a los objetos clonados.
http://en.wikipedia.org/wiki/Prototype-based_programming
Escribir un comentario
Para hacer un comentario es necesario que te identifiques: ENTRA o conéctate con FacebookConnect