Conceptos Básicos
1.- ¿Por qué aprender JS (Javascript) y jQuery?
jQuery es una librería de Javascript. Creció Javascript considerablemente gracias al npm 'node package manager / manejador de paquetes por defecto' y NodeJs. Crearon gestores de paquetes tanto para el Front-End como para el Back-End.
2.- ¿Qué significa DOM?
DOM 'Document Object Model / Modelo de Objetos del Documento'. Es el árbol de jerarquía de todos los documentos HTML que dibuja un navegador. jQuery permite trabajar en ese árbol con mucha facilidad.
3.- ¿Qué se necesita para el curso?
Se realizará una aplicación web y será solo en Front-End, se utilizará una API TVmaze para acceder a shows de TV. Se debe tener instalado un editor de textos (Sublime Text, Notepad++, Atom, Visual Studio Code, etc) y npm sólo para instalar algunas cosas, no para trabajar con NodeJs propiamente. Se puede implementar jQuery de dos maneras. La primera es descargando nuestra librería y colocandola en nuestro servidor; la segunda es apuntar a un CDN 'Content Delivery Network / Red de entrega de contenidos' (colocando la url de la librería) esto con facilitar el rendimiento por ejemplo si el servidor se encuentra en un país diferente a donde se está accediendo la aplicación aunque se corre con el riesgo de que se caiga el servidor donde esté el archivo js. En existen dos versiones, la uncompressed y la minified. Una es para entorno de desarrollo y la otra es para producción. Es lo mismo, sólo que una pesa menos tamaño.
4.- ¿Por qué usas jQuery?
Por temas laborales y su enfoque web. El proyecto DemocracyOS (que se encuentra en Y Combinator) se enfoca en la política y la participación ciudadana, proyectos de ley, etc.
5.- ¿Por qué no se usa sólo JavaScript y por qué la necesidad de aprender jQuery?
jQuery facilita nuestra vida en un montón de tareas. Facilita la reutilización de código y a su vez maneja la compatibilidad de los browsers (navegadores) a partir de la versión 9 de IE (Internet Explorer). Interactuar con el comportamiento del DOM tanto en apariencia como en eventos. Manejo de errores.
6.- ¿Que opinas de los frameworks como AngularJS?
AngularJS permite manejar rutas, se interactua más con el DOM y facilita la construcción de una aplicación Front-End. Otras alternativas que se encuentran de utilizar una librería diferente a jQuery son Lodash o Underscore.js. El 60% de las aplicaciones web trabajan con jQuery. jQuery es una mejora a Prototype (Es preferible usar alguna de los dos, no ambas para no generar conflictos). Hay funcionalidades que jQuery no alcanza a cubrir como las rutas pero existen otras librerías para eso.
7.- ¿Qué es NPM y cómo instalarlo?
npm 'node package manage' es un gestor de paquetes y módulos. La idea es reutilizar el código que otras personas hacen en un único repositorio (snippets - pequeñas partes reusables de código). Se descarga en
8.- ¿En que momento JavaScript tomo tanta fuerza?
A partir de NodeJS, cada vez fueron aparecieron nuevos módulos y gestor de paquetes como npm. La comunidad fue creciendo bastante, creando un mayor control para el Front-End, por ejemplo el cambio importante de pasar de xml a json. Manipular la página de una manera más eficiente según el DOM.
9.- ¿jQuery es amigable para sitios móviles?
Bastante amigable. La librería no pesa mucho realmente. En móviles, la primera vez si es necesario ejecutar una serie de scripts. Si son muy exigentes con el performance podrían utilizar otras opciones, pero jQuery permite muchas cosas para móviles.
10.- ¿Qué tan buena práctica o qué conflictos genera mezclar Vanilla JS con jQuery?
Al final nosotros resultaremos escribiendo VanillaJS en algún momento (JavaScript puro) en vez de jQuery, por ejemplo creando una variable, recorriendo un array, definiendo una función, etc. Pero para obtener un elemento del DOM, realizar una petición de Ajax, agregar una función a un evento es mucho más sencillo hacerlo con jQuery.
11.- ¿Qué librerías se van a usar en este curso, aparte de jQuery?
jQuery y un poco de npm. Los assets (js, css, img) son recursos que se cargan externamente con el fin de manejar eficientemente los request (peticiones). El bundle 'empaquetado de aplicaciones' compuesto por librerías, imágenes, ficheros, etc, permite a través de paquetes manejar las bibliotecas que depende un programa para su funcionamiento de una manera organizada al momento de instalar o desinstalar un software.
12.- ¿Que es ECMAScript?
Este define fundamentos, evolución y versionamiento de JavaScript. Especifica mejor este lenguaje e implementa un estandar. Permite definir funciones, clases y objetos. Tiene una mejor sintaxis. Existen actualmente las vesiones ES6 y ES7.
13.- ¿jQuery y ReactJS comparten casos de uso? Si sí, cuál es mejor y por qué.
ReactJS es una librería para las vistas. Hay muchos plugins de jQuery que uno desea seguir utilizando como por ejemplo un calendario. Al momento de que la vista ya está en el DOM, se le dice a jQuery que dispare ese plugin.
14.- jQuery UI: ¿Veremos algo al respecto?
jQuery UI (User Interface) es una librería parecida a Boostrap, se utilizará un poco en el curso. XAMPP sirve para montar un servidor independiente totalmente rápido para desarrollar, compuesto con Apache, MySQL, Php y Perl. Jamás se debe montar para un ambiente de producción (No se utilizará XAMPP en el curso).
15.- ¿Cómo se puede escribir jQuery con la nueva sintaxis ES6? ¿Funciona con babel.js?
Babel.js se utiliza para pasar el código de ES6 a ES5. Esto se hace porque ES6 no es soportado en todos los navegadores.
16.- ¿Usaremos gulp o grunt?
Ninguna de las dos. No son necesarias. Estas sirven para definir tareas a ejecutar, por lo cual no será necesario. Dentro del npm, archivo package.json en el atributo scripts definimos los scripts que necesitamos. Aunque, el grunt resulta bastante útil en conjunto con un servidor local liveReload, que permite hacer un refresh automático por cada cambio de código.
17.- jQuery Mobile está en desuso ¿Qué lo reemplaza?
Puede ser reemplazado por frameworks de front-end con boostrap o fundation, material design, Angular Material, etc.