[MUSIC]
Antes de comenzar a examinar Angular con más detalle, hagamos
la pregunta fundamental, ¿por qué necesitamos estos marcos de JavaScript?
¿Qué son exactamente, y qué nos ayudan
a lograr que no podemos hacer usando JavaScript estándar?
Examinemos algunas de estas preguntas con un poco de detalle en esta conferencia.
Primero, ¿por qué los marcos de JavaScript?
Obviamente, a partir de su experiencia previa con JavaScript y
también tal vez experiencia con marcos basados en la interfaz de usuario web como Bootstrap y
el uso de jQuery, más o menos pensó que puede
obtener la mayoría de las cosas que desea hacer en un sitio web logrado,
usando todas estas herramientas y técnicas que ya tienes a mano.
De hecho, muchos sitios web exitosos pueden ser implementados usando
estas sencillas técnicas y herramientas.
Pero a medida que crece la complejidad de su aplicación,
la cantidad de manipulación DOM que debe hacerse y la cantidad de actualizaciones de datos
que deben manejarse manualmente se complica significativamente.
Los enfoques simples como usar la biblioteca jQuery pueden
no abordar suficientemente las necesidades que tiene a mano.
Aquí es donde la disponibilidad de marcos bien estructurados
como Angular que se basan en estándares,
paradigmas de ingeniería de software o patrones de ingeniería de software como el controlador de vista de modelo
o el modelo de vista de modelo o la vista de modelo lo que sea, nos ayuda a
implementar estos web de manera eficaz y escalable.
Ahora en este contexto, vamos a hablar de esto con un poco más de detalle
a medida que avanzamos en este curso.
También hablaremos de cómo vinculamos el modelo a una vista y
el uso de controladores y modelos de vista para lograr estas cosas.
Se discutirá con un poco más de detalle mientras examinamos Angular en este curso.
Permítanme recordarles rápidamente lo que es una biblioteca de software,
una biblioteca de software es una colección de implementaciones de comportamientos
que usted usa repetidamente dentro de sus aplicaciones.
Por lo tanto, estos comportamientos se pueden implementar mediante el uso de funciones con interfaces
bien definidas para
que hacer uso de ellos en la implementación de su aplicación sea sencillo.
Si ha hecho la programación en cualquier idioma, a menudo
verá que muchas de las funcionalidades estándar que se admiten
en estos idiomas se implementan a través de bibliotecas que hace uso de.
Por ejemplo, las bibliotecas de salida de entrada y tal vez incluso
las bibliotecas de GUI que muchos lenguajes de programación estándar admiten.
Aquí es donde el concepto de reutilización del comportamiento es muy,
muy efectivo porque somos capaces de implementarlo una vez en una biblioteca y
luego reutilizar ese comportamiento donde necesitemos dentro de nuestra aplicación de software.
Esto también aporta modularidad a la forma en que se implementa nuestra aplicación.
Un buen ejemplo de una biblioteca de software que se utiliza en el mundo web es jQuery.
Si hubieras tomado el curso Bootstrap anterior,
habrías visto algunos elementos de jQuery en ese curso.
En este contexto,
permítanme también diferenciar una biblioteca de software de un marco de software.
Un marco de software es una abstracción
en la que el software proporciona dicha funcionalidad genérica y
luego le proporciona la capacidad de personalizar esa funcionalidad para
implementar las soluciones para su aplicación específica.
Así que aumentará el marco de software con su propio código
para lograr lo que esté tratando de lograr.
Así que esta es una forma diferente de pensar acerca de cómo
intenta resolver el problema en lugar de usar una biblioteca de software.
Ahora, este marco de software proporciona un entorno universal y reutilizable
con cierta funcionalidad que forma parte de una plataforma de software más grande.
Veremos Angular como un ejemplo de cómo esto se logra con más detalle.
Hay varios otros marcos de software que se utilizan en el mundo web
incluyendo Ember, Backbone y muchos otros.
Ahora aquí, obviamente podrías pensar en la pregunta.
¿Cómo se distingue una biblioteca de un marco?
¿Cuáles son las características sobresalientes de cada uno y
por qué clasificaría una como biblioteca y otra como marco?
¿Dónde dibujas la distinción entre los dos?
Ahora esto debería decir,
hay una línea fina que separa una biblioteca de un marco.
Dependiendo de cómo aborde esto, puede ver una o
la otra como una biblioteca, o un marco, y
dependiendo de quién pregunte, algunas personas pueden clasificar un determinado
como un enfoque de biblioteca en lugar de un enfoque de marco.
Una vez más, no vamos a dividir nuestros pelos sobre tratar de exactamente
clasificar las cosas en una biblioteca o un marco.
Desde nuestra perspectiva, si algo nos ayuda a cumplir nuestra tarea,
entonces estamos satisfechos con ese enfoque.
Una vez más, habiendo dicho eso, vamos a distinguir entre una biblioteca y
un marco con un poco más de detalle.
Con el fin de entender cómo te acercas a
toda esa forma de escribir tu solicitud.
Cuando se utiliza una biblioteca en lugar de utilizar un marco.
Entonces, en este contexto, la siguiente definición que he tomado prestada
de la documentación de AngularJS, siento que
da una distinción un poco más clara entre una biblioteca y un marco.
Entonces, esta definición dice que una biblioteca es una colección de funciones
que son útiles para escribir aplicaciones web, siendo jQuery un ejemplo.
Así que este es un conjunto de funciones que están disponibles para usted.
Usted hace uso de estas funciones cuando implementa su solución
de software a su problema.
Cuando usa este enfoque, es usted el programador el que siempre tiene el control
de cómo aprovecha las funciones que proporciona
la biblioteca para lograr lo que esté tratando de hacer.
Un marco por otro lado es una implementación específica o
implementación particular de una aplicación web,
donde el marco en sí da una amplia estructura genérica para
su aplicación y luego se le pide que rellene los detalles.
Los detalles que son necesarios para personalizar esa aplicación
para resolver el problema específico que está tratando de resolver.
Así que aquí, el marco toma el control completo sobre cómo se ejecutan estas aplicaciones y
luego llamará al código proporcionado por el usuario que lo ayuda a realizar el trabajo.
El código específico de la aplicación es algo que escribirá y
lo proporcionará y que se convertirá en parte de toda la aplicación,
junto con el marco, y ayuda a cumplir su tarea.
Una vez más, esto puede no completamente, claramente le permita
entender la distinción entre un marco y una biblioteca.
Vamos de nuevo, como he dicho,
no vamos a esparcir nuestros pelos tratando de averiguar todos estos detalles.
Lo que necesitamos entender es Angular es un ejemplo de un framework y
cuando escribe aplicaciones en Angular, el framework toma el control y
básicamente suministra las piezas faltantes del código que se requieren
para personalizar el framework para implementar su aplicación web específica.
Examinando el marco de la palabra con un poco más de detalle.
Cuando hablamos de un marco, uno de los aspectos importantes sobre cómo funciona un marco
se resume con este término llamado Principio de Hollywood.
¿Qué quiero decir exactamente con el Principio de Hollywood?
Ahora, si sabes cómo funciona un agente de Hollywood, cuando un actor o
una actriz quiere encontrar trabajo en Hollywood,
ellos se acercarían a un agente y el agente generalmente te lo dirá,
te llamaremos cuando tengamos trabajo para ti.
No nos llames, te devolveremos la llamada.
Entonces, esencialmente un marco refleja el mismo tipo de principio.
El framework dice, usted suministra todo lo que puede hacer y
el framework llamará a su código suministrado siempre que necesite hacer algo.
Esa es la razón por la que usamos este término Principio de Hollywood en el mundo del software.
Esto también se puede resumir usando esta otra expresión
llamada Inversión de Control.
Cuando usas una biblioteca, tú, el programador está en control, y
dictas cómo funciona el código y cómo se ejecuta el código.
Cuando usa un marco,
esencialmente está entregando su privilegio al marco y
permite que ese marco se haga cargo y luego dicte cómo se ejecuta la aplicación.
Ahora bien, aunque usted puede parecer que esto es como renunciar a su independencia,
ciertamente ese no es el caso, si framework tiene una cierta razón para asumir
la responsabilidad de lograr lo que tenga que hacer en su nombre.
Así que este es un lugar donde podríamos hacer una distinción entre
dos enfoques para escribir programas.
Uno llamó como la forma imperativa de escribir programas, y
el segundo llamó como una forma declarativa de escribir programas.
Si has hecho algún curso de lenguajes de programación,
habrás visto que los lenguajes de programación suelen usar uno o
el otro enfoque que este soporte en la escritura de programas.
En la programación imperativa,
vas a especificar las funciones del programa paso a paso.
Así que usted es completamente y el control y
entonces estás diciendo esencialmente, así es como tienes que cumplir la tarea y
entonces escribirás paso a paso la manera de lograr la tarea.
Así que usted como programador está completamente en control al especificar los pasos exactos
para resolver el problema.
En programación declarativa, por otro lado,
que es efectivamente utilizado por frameworks como Angular.
Básicamente estás diciendo que esto es lo que quiero lograr, y
así es como personalizé lo que específicamente quiero lograr.
Cómo se hace no es de mi incumbencia.
Pero entregaré esa responsabilidad al marco.
Entonces, esencialmente, estás suministrando tu código de suministro de usuario al marco y
diciendo, ahora esto es lo que quiero que hagas, te haces cargo y haces que esto suceda.
Así que de esa manera en la programación declarativa, solo estás declarando cuál es tu intención
y deja que el marco decida cómo se va a lograr eso.
Dos formas diferentes de pensar acerca de cómo te acercas a resolver tu problema.
Esto es algo que tienes que tener la cabeza cuando aprendes
Angular porque si vienes del mundo de la programación imperativa,
tu tendencia general sería controlar todo y
dictar paso a paso cómo quieres lograr.
Así que toma algún tiempo para envolver su cabeza alrededor de este concepto que
no necesariamente controla cada paso.
En su lugar, le dices al marco en lo que quieres llegar a ser, para ser logrado.
Y dar la responsabilidad al marco para lograr
la tarea en su nombre.
De nuevo, no te preocupes demasiado por ello, y no leas demasiado en estas definiciones.
Estos son de interés académico, estos son la base de identificar diferentes patrones
de comportamientos desde la perspectiva de un desarrollador de aplicaciones web.
Todo lo que te importa es cómo haces tu trabajo
usando Angular como marco de aplicación web.
Al llegar al mundo de los marcos de JavaScript,
escuchará muchos términos que se usan con marcos de JavaScript.
A menudo oirás a la gente hablar de algo llamado aplicación PPage
única o un término aliado llamado aplicación rica de Internet.
Una vez más, vamos a examinar lo que esto significa en una de las lecciones
posteriores en este curso en el contexto de Angular.
Del mismo modo, también escuchará a la gente hablando de Model-View-Controller,
Model-View-ViewModel, Model-View-Whatever, y así sucesivamente.
Una vez más, esto es como dije, un paradigma de arquitectura de software
que usamos para desarrollar aplicaciones de software.
Hablaremos un poco más de detalle sobre esto en el contexto de Angular,
en una de las lecciones posteriores.
Y en este contexto, oiría en Angular, cosas como enlace de datos, enrutamiento
, enlace de datos de una y dos vías, y así sucesivamente.
Una vez más, no te dejes caer por todos estos términos.
Los comprenderemos a medida que avanzamos en este curso.
Del mismo modo, a menudo escuchará hablar de código JavaScript escalable,
reutilizable y mantenible, etc.
Estos son conceptos maravillosos o
maravillosos atributos que queremos lograr con nuestra aplicación.
Veremos cómo Angular nos ayuda a hacer esto en este curso en particular.
Y otro término del que a menudo escucharás hablar a la gente es el desarrollo impulsado por pruebas
.
Angular admite el desarrollo impulsado por pruebas, por lo que incluso antes de desarrollar
su aplicación escribirá la prueba para asegurarse de que el código
que implementa realmente logre lo que está tratando de lograr.
Examinaremos un poco de desarrollo impulsado por pruebas hacia la parte posterior
de este curso.
Aunque, si desea adoptar este enfoque de desarrollo impulsado por pruebas para
implementar aplicaciones, ese es un enfoque maravilloso.
Pero antes de ir a ese punto, es mejor para
nosotros entender lo que el propio marco nos ayuda a lograr.
Así que, en este curso, trataré brevemente con el desarrollo impulsado por pruebas.
Pero si estuviera implementando una aplicación Angular real, adoptaría
un enfoque de desarrollo basado en pruebas para desarrollar aplicaciones Angular.
Hay muchos, muchos marcos de JavaScript que están disponibles en el mundo real.
Angular siendo un comienzo.
Angular en su encarnación anterior
como AngularJS ha sido uno de los frameworks JavaScript más populares.
Vamos a ver Angular con más detalle a medida que avanzamos.
Del mismo modo, si nos fijamos en el mundo de los marcos de JavaScript,
escucharemos a la gente hablar de Ember, Backbone, React.
Aunque, algunas personas clasifican React como una biblioteca en lugar de como un marco.
De nuevo, dependiendo de quién pregunten,
algunas personas pueden decir que es un marco y algunas personas pueden decir que es solo una biblioteca.
Una vez más, no nos preocupemos demasiado por lo que es, pero está disponible para
nosotros como un enfoque para implementar aplicaciones web complejas.
Del mismo modo, otros marcos más pequeños como Aurelia, Meteor, Polymer,
Polymer, que es un marco próximo, Knockout, Vue y muchos otros.
Y hay más y más que se agregan a esto cada día.
¿Cuál es el sabor del marco de JavaScript de hoy?
Angular.
Acaba de salir de la fase de desarrollo y salir al mundo real.
Y la gente está luchando para desarrollar aplicaciones usando Angular.
Así que es por eso que estamos interesados en Angular en este curso en particular.
Ahora, una vez que aprendas uno de ellos,
comenzarías a entender el enfoque suave que usan estos marcos.
Tal vez puedas recoger otros marcos de manera similar usando
los conceptos generales que aprendes en este curso en particular.
[MÚSICA]