Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

UNIVERSIDAD CATÓLICA BOLIVIANA “SAN PABLO” Facultad de Ingeniería 1

Tecnologías Web – SIS 241 Semestre I - 2022

Trabajo de Investigación # 11
Thania Maria Ibarra Veizaga
Ing. Rolando Marcelo Ticona Barroso
01/05/2022
Resumen— Dentro de la investigación realizada se recaba información acerca de términos que actualmente están
inmersos en nuestra vida dentro del área de desarrollo y para cualquier página web, Angular, NodeJs, TypeScript, el
desarrollo web se ha popularizado en el último tiempo y los conceptos han evolucionado. Estos ya son parte de nuestra
vida, desde entrar a una página web a través de un navegador, desarrollar una propia o realizar proyectos de gran escala.
En el presente documento se muestra las definiciones, características, ejemplos de cada punto mencionado, y
finalmente se incluye un manual de usuario y un manual de instalación de Angular Cli. La evolución de estos ha sido
exponencial y es así que debemos actualizar todos estos conceptos constantemente
Índice de Términos— Angular, Node Js, NPM, NVM, TypeScript

1. Objetivos versiones de Node.js y npm en un mismo


1.1. Objetivo General ambiente, dejando cada una completamente
aislada de las otras. Sí, puedes tener Node v0.4 y
Investigar el concepto y ejemplificar el concepto
v0.11 instaladas en tu equipo y ejecutar una u
de NodeJs, TypeScript y como estos conforman
otra según lo necesites.
Angular.

1.2. Objetivos Específicos


 Investigar que es un NPM y NVM
 Indagar que en los conceptos de las
herramientas de NodeJs y TypeScript
 Desarrollar un manual de usuario y de
instalación de Angular Figura 1. Logo de NVM

 Generar conclusiones a partir de toda la Fuente: Google

investigación recabada. 3. Node Js

2. NVM 3.1. ¿Qué es?

2.1. ¿Qué es? Node.js es un entorno de tiempo de ejecución de

NVM es el acrónimo de “Node Version JavaScript (de ahí su terminación en .js haciendo

Manager” o “Gestor de Versiones de Node”. alusión al lenguaje JavaScript). Este entorno de

Este tipo de utilidades se encargan de controlar tiempo de ejecución en tiempo real incluye todo

diferentes versiones de estos aplicativos en un lo que se necesita para ejecutar un programa

mismo ambiente. En el caso de NVM, que es el escrito en JavaScript. También aporta muchos

que nos interesa, permite instalar múltiples beneficios y soluciona muchísimos problemas,
UNIVERSIDAD CATÓLICA BOLIVIANA “SAN PABLO” Facultad de Ingeniería 2
Tecnologías Web – SIS 241 Semestre I - 2022

por lo que sería más que interesante realizar navegador, sino en el servidor. Node.js
nuestro curso de Node.js para obtener las bases, implementa algunas especificaciones
conceptos y habilidades necesarias que nos de CommonJS.7 Node.js incluye un
motiven a profundizar en sus opciones e iniciar entorno REPL para depuración interactiva.
la programación.
Node.js fue creado por los desarrolladores
originales de JavaScript. Lo transformaron de
algo que solo podía ejecutarse en el navegador
en algo que se podría ejecutar en los ordenadores
como si de aplicaciones independientes se
tratara. Gracias a Node.js se puede ir un paso
Figura 2. Logo de Node Js
más allá en la programación con JavaScript no
Fuente: Google
solo creando sitios web interactivos, sino
3.2. Características
teniendo la capacidad de hacer cosas que otros
lenguajes de secuencia de comandos como  Concurrencia: Node.js funciona con un

Python pueden crear. modelo de evaluación de un único hilo de

Tanto JavaScript como Node.js se ejecutan en el ejecución, usando entradas y salidas

motor de tiempo de ejecución JavaScript V8 (V8 asíncronas las cuales pueden ejecutarse

es el nombre del motor de JavaScript que concurrentemente en un número de hasta


cientos de miles sin incurrir en costos
alimenta Google Chrome. Es lo que toma
nuestro JavaScript y lo ejecuta mientras navega asociados al cambio de contexto Este

con Chrome). Este motor coge el código diseño de compartir un único hilo de

JavaScript y lo convierte en un código de ejecución entre todas las solicitudes atiende


a necesidades de aplicaciones altamente
máquina más rápido. El código de máquina es un
código de nivel más bajo que la computadora concurrentes, en el que toda operación que

puede ejecutar sin necesidad de interpretarlo realice entradas y salidas debe tener una

primero, ignorando la compilación y por lo tanto función callback.

aumentando su velocidad. Un inconveniente de este enfoque de único

Node.js es similar en su propósito hilo de ejecución es que Node.js requiere de

a Twisted o Tornado de Python, Perl Object módulos adicionales como cluster para

Environment de Perl, libevent o libev de C, Eve escalar la aplicación con el número


de núcleos de procesamiento de la máquina
ntMachine de Ruby, vibe.d de D y Java
EE de Java existe Apache en la que se ejecuta.

MINA, Netty, Akka, Vert.x, Grizzly o Xsocket.  V8: V8 es el entorno de ejecución para
Al contrario que la mayoría del JavaScript creado para Google Chrome. Es
código JavaScript, no se ejecuta en un software libre desde 2008, está escrito
UNIVERSIDAD CATÓLICA BOLIVIANA “SAN PABLO” Facultad de Ingeniería 3
Tecnologías Web – SIS 241 Semestre I - 2022

en C++ y compila el código fuente frameworks connect y express. Pese a que


JavaScript en código de máquina en lugar los módulos pueden instalarse como
de interpretarlo en tiempo real. Node.js archivos simples, normalmente se instalan
contiene libuv para manejar eventos utilizando el Node Package Manager
asíncronos. Libuv es una capa de (npm) que nos facilitará la compilación,
abstracción de funcionalidades de redes y instalación y actualización de módulos, así
sistemas de archivo en sistemas Windows y como la gestión de las dependencias.
sistemas basados en POSIX como Linux,
Además, los módulos que no se instalen en
Mac OS X y Unix.
el directorio por defecto de módulos de
El cuerpo de operaciones de base de Node necesitarán la utilización de una ruta
Node.js está escrito en JavaScript con relativa para poder encontrarlos. El wiki
métodos de soporte escritos en C++. Node.js proporciona una lista de varios de
los módulos de terceros disponibles.
 Módulos: Node.js incorpora varios
"módulos básicos" compilados en el propio  Desarrollo homogéneo entre cliente y
binario, como por ejemplo el módulo de servidor: Node.js puede ser combinado
red, que proporciona una capa para con una base de datos documental (por
programación de red asíncrona y otros ejemplo, MongoDB o CouchDB) y
módulos fundamentales, como por ejemplo JSON lo que permite desarrollar en un
Path, FileSystem, Buffer, Timers y el de entorno de desarrollo JavaScript unificado.
propósito más general Stream. Es posible Con la adaptación de los patrones para
utilizar módulos desarrollados por terceros, desarrollo del lado del servidor tales
ya sea como archivos ".node" como MVC y sus variantes MVP, MVVM,
precompilados, o como archivos en etc.
javascript plano.
Node.js facilita la reutilización de
Los módulos Javascript se implementan código del mismo modelo de interfaz entre
siguiendo la el lado del cliente y el lado del servidor.
especificación CommonJS para módulos,
 Bucle de eventos: Node.js se registra con
utilizando una variable de exportación para
el sistema operativo y cada vez que un
dar a estos scripts acceso a funciones y
cliente establece una conexión se ejecuta un
variables implementadas por los módulos.
callback. Dentro del entorno de ejecución
Los módulos de terceros pueden extender
de Node.js, cada conexión recibe una
node.js o añadir un nivel de abstracción,
pequeña asignación de espacio de memoria
implementando varias utilidades
dinámico, sin tener que crear un hilo de
middleware para utilizar en aplicaciones
ejecución. A diferencia de otros servidores
web, como por ejemplo los
dirigidos por eventos, el bucle de gestión de
UNIVERSIDAD CATÓLICA BOLIVIANA “SAN PABLO” Facultad de Ingeniería 4
Tecnologías Web – SIS 241 Semestre I - 2022

eventos de Node.js no es llamado cantidad de conexiones simultáneas con un alto


explícitamente, sino que se activa al final de nivel de rendimiento, lo que equivale a una alta
cada ejecución de una función callback. escalabilidad.
3.4. ¿Cómo funciona?
El bucle de gestión de eventos se termina
El funcionamiento interno del entorno de
cuando ya no quedan eventos por atender.
ejecución para JavaScript, Node.js, es bastante
interesante. En comparación con las técnicas
tradicionales de servicio web donde cada
conexión (que crea una solicitud) genera un
nuevo subproceso, ocupando la RAM del
sistema y regularmente maximizando la cantidad
Figura 3. Características de NodeJs de RAM disponible, Node.js opera en un solo
Fuente: Google subproceso, utilizando el modelo entrada y
3.3. ¿Para qué sirve entrada sin bloqueo de la salida, lo que le permite
Node.js utiliza un modelo de entrada y salida sin soportar decenas de miles de conexiones al
bloqueo controlado por eventos que lo hace mismo tiempo mantenidas en el bucle de
ligero y eficiente (con entrada nos referimos a eventos.
solicitudes y con salida a respuestas). Puede El nodo está completamente controlado por
referirse a cualquier operación, desde leer o eventos. Resumiendo, podemos decir que el
escribir archivos de cualquier tipo hasta hacer servidor consta de un subproceso que procesa un
una solicitud HTTP. evento tras otro.
La idea principal de Node.js es usar el modelo de Cuando hay una nueva solicitud se genera un
entrada y salida sin bloqueo y controlado por tipo de evento. El servidor empieza a procesarlo
eventos para seguir siendo liviano y eficiente y, cuando hay una operación de bloqueo de
frente a las aplicaciones en tiempo real de uso de entrada y salida, no espera hasta que se complete
datos que se ejecutan en los dispositivos. Es una y en su lugar crea una función de devolución de
plataforma que no dominará el mundo del llamada. El servidor comienza en el acto a
desarrollo web pero si que satisface las procesar otro evento (tal vez otra solicitud) y
necesidades de una gran mayoría de cuando finaliza la operación de entrada y salida,
programadores. continuará trabajando en la solicitud ejecutando
La finalidad de Node.js no tiene su objetivo en la devolución de llamada tan pronto como tenga
operaciones intensivas del procesador, de hecho, tiempo.
usarlo para programación de más peso eliminará Por lo tanto, el servidor nunca necesita crear más
casi todas sus ventajas. Donde Node.js realmente subprocesos o cambiar entre subprocesos, lo que
brilla es en la creación de aplicaciones de red significa que tiene muy poca sobrecarga.
rápidas, ya que es capaz de manejar una gran
UNIVERSIDAD CATÓLICA BOLIVIANA “SAN PABLO” Facultad de Ingeniería 5
Tecnologías Web – SIS 241 Semestre I - 2022

Hay que mencionar que en el nivel más bajo de  Con la implementación de plataformas de
codificación (código C++), encontramos varios desarrollo de software como GitHub
subprocesos en Node.js: hay un grupo de eventos Inc., la comunidad Node.js ha crecido de
de entrada y salida cuyo trabajo es recibir las forma exponencial y activa.
interrupciones de los propios eventos de entrada  Como es un modelo de programación de un
y salida y poner los eventos correspondientes en solo subproceso, Node.js ofrece
la cola para ser procesados por el hilo principal abundantes características y opciones. Para
evitando así la posible interrupción del mismo. tener una buena retención de los eventos de
salida en tiempo de ejecución, como las
devoluciones de llamada, se implementa
Node.js
 Node.js es la plataforma de software más
utilizada en este momento estando por
encima en entornos de ejecución y

Figura 4. Funcionamiento de NodeJs lenguajes de programación como PHP y C

Fuente: Google a la vez que tiene un tiempo de ejecución

3.5. Ventajas (tiempo real) muy superior.

 En primer lugar y como gran ventaja, es  No es un código muy complejo pero

tener Javascript incorporado en la requiere muchas más líneas de codificación

plataforma Node.js, siendo un lenguaje y mayor comprensión que el lenguaje PHP.

fácil de aprender y que puede ser manejado  El envío de archivos de gran peso también

por programadores de Java. se puede realizar mediante el uso de la

 Node.js se desarrolla en un entorno de tecnología Node.js.

tiempo de ejecución de fuente libre que  Node.js es una de las tecnologías más

ayudará en el almacenamiento de creación usadas hoy en día, y se ha convertido en

de proyectos únicos. una de las plataformas más populares

 El modelo de entrada y salida impulsado utilizadas para el desarrollo de aplicaciones

por eventos ayuda mucho en el manejo web, aplicaciones de escritorio y servicios.

simultáneo de peticiones. Espero que después de leer este artículo se


logre tener una base de conocimientos
 El administrador y el usuario incorporan
básicos que animen a comenzar a escribir
estrategias de codificación similares que
sus propias aplicaciones Node.js.
desembocan en la creación de abundantes
aplicaciones de internet de gran
competencia.
UNIVERSIDAD CATÓLICA BOLIVIANA “SAN PABLO” Facultad de Ingeniería 6
Tecnologías Web – SIS 241 Semestre I - 2022

cualquiera puede publicar y compartir


herramientas escritas en JavaScript.
 Como una herramienta de línea de
comandos que ayuda a interactuar con
plataformas en línea, como navegadores y
servidores. Esta utilidad ayuda a instalar y
desinstalar paquetes, gestión de versiones y

Figura 5. Ventajas o de NodeJs gestión de dependencias necesarias para

Fuente: Google ejecutar un proyecto.

4. NPM Para usarlo, debes instalar node.js, ya que

4.1. ¿Qué es? están desarrollados de forma agrupada.

NPM es el Node Package Manager que viene La utilidad de línea de comando del

incluido y ayuda a cada desarrollo asociado a administrador de paquetes Node permite

Node. Durante años, Node ha sido ampliamente que node.js funcione correctamente.

utilizado por los desarrolladores Para usar paquetes, tu proyecto debe contener

de JavaScript para compartir herramientas, un archivo llamado package.json. Dentro de

instalar varios módulos y administrar sus ese paquete, encontrarás metadatos

dependencias. Ahora que sabes qué es npm específicos para los proyectos.

puedes entender la importancia de que las Los metadatos muestran algunos aspectos del

personas que trabajan con Node.js entiendan proyecto en el siguiente orden:

este concepto. A continuación, te explicaremos  El nombre del proyecto

más sobre cómo funciona y cómo instalar npm.  La versión inicial


 Descripción
 El punto de entrada
 Comandos de prueba
 El repositorio git
 Palabras clave
Figura 6. NPM
 Licencia
Fuente: Google
 Dependencias
4.2. ¿Cómo funciona?
 Dependencias de desarrollo
Esta herramienta funciona de dos formas:
Los metadatos ayudan a identificar el proyecto
 Como un repositorio ampliamente
y actúan como una línea de base para que los
utilizado para la publicación de proyectos
usuarios obtengan información al respecto.
Node.js de código abierto. Lo que significa
que es una plataforma en línea donde
UNIVERSIDAD CATÓLICA BOLIVIANA “SAN PABLO” Facultad de Ingeniería 7
Tecnologías Web – SIS 241 Semestre I - 2022

tus habilidades tanto en Node.JS como en su


gestor de paquetes NPM a través del siguiente
link: https://openwebinars.net/cursos/nodejs/ de
igual forma podras complementarlo con el curso
de NPM y YARN que te permitirá adquirir las
competencias necesarias para gestionar de forma
Figura 6. Funcionamiento NPM profesional las dependencias en tus proyectos
Fuente: Google JavaScript.

4.3. ¿Para qué sirve? 5. TypeScript


De sus siglas NPM (Node Package 5.1. ¿Qué es?
Manager) es un gestor de paquetes desarrollado TypeScript es un superconjunto de JavaScript
en su totalidad bajo el lenguaje JavaScript por con tipo que se compila para JavaScript puro.
Isaac Schlueter, a través del cual podemos Sigue el patrón javascript y también es un
obtener cualquier librería con tan solo una lenguaje multiparadigma, sin embargo, agrega
sencilla línea de código, lo cual nos permitirá funcionalidad y sintaxis orientada a objetos,
agregar dependencias de forma simple, distribuir clases y escritura vistos en lenguajes como C- y
paquetes y administrar eficazmente tanto los Java.
módulos como el proyecto a desarrollar en Fue considerado por el público como el 4o
general. idioma más querido, según una encuesta
Así mismo, es de gran importancia mencionar realizada por el desbordamiento de la pila en
que Node.JS desde su versión 0.6.3 se instala 2018, y se encuentra entre los 15 idiomas más
automáticamente desde el entorno NPM, populares, según una encuesta realizada
permitiendo a los desarrolladores instalar por RedMonk.
aplicaciones Node que se encuentren en el El código TypeScript se guarda en un archivo
repositorio. En este mismo orden de ideas, cabe con la extensión .ts y se compila en JavaScript
destacar que al instalar paquetes nuevos estos mediante su compilador.
serán almacenados localmente en la carpeta que
lleva por nombre “node_modules” dentro de
nuestro proyecto (esto se lleva a cabo por
defecto) sin embargo el desarrollador puede
indicarle a NPM que instale dicho paquete de
forma global, según lo considere necesario.
Si quieres aprender mucho más sobre Node
Package Manager, te recomendamos realices el Figura 7. Typescript

curso que ofrecemos OpenWebinars el cual es Fuente: Google

muy completo y te ayudará a desarrollar todas


UNIVERSIDAD CATÓLICA BOLIVIANA “SAN PABLO” Facultad de Ingeniería 8
Tecnologías Web – SIS 241 Semestre I - 2022

Además de los tipos String y Number admite los


5.2. ¿Por qué Usarlo? siguientes tipos básicos:
TypeScript mejora la experiencia y la  Boolean: tipo de dato lógico que
productividad de los desarrolladores. representa verdadero o falso.
Nos permite utilizar técnicas como el tipado  Array: tipo de dato estructurado que
estático opcional y/o la encapsulación para permite almacenar una colección de
generar un código mucho más mantenible y elementos.
escalable que con JavaScript tradicional.  Tuple: similar al array, pero con un
número fijo de elementos escritos.
 Enum: representa al tipo enumeración.
 Any: indica que la variable puede ser de
cualquier tipo. Es muy útil a la hora de
trabajar con librerías externas.
 Void: indica que una función no devolverá
Figura 8. Características de Typescript ningún valor.
Fuente: Google  Never: este tipo representa el tipo de
Y otro punto importante cuando vamos a valores que nunca se producen.
empezar a aprender un nuevo lenguaje de
programación, es la comunidad, y que tan
conocido es, y desde su publicación la
popularidad de Typescript no ha parado de
crecer, además estos dos últimos años
TypeScript se ha disparado y se perfila como uno
de los lenguajes de programación con más
futuro.
5.3. Tipos
Figura 9. Tipos de Typescript
El sistema de tipos de Typescript realiza una
Fuente: Google
formalización de los tipos de Javascript,
5.4. Beneficios
mediante una representación estática de sus tipos
Cualquier persona que ha tratado de desarrollar
dinámicos. Esto permite a los desarrolladores
y estructurar una aplicación grande en JavaScript
definir variables y funciones tipadas sin perder
puede haber tenido algunos dolores de cabeza
la esencia de Javascript. Poder definir los tipos
con el tiempo. El uso de TypeScript ha sido muy
durante el tiempo de diseño nos ayuda a evitar
soportado por hacer el desarrollo más conciso,
errores en tiempo de ejecución, como podría ser
robusto, y sin perder la agilidad y las ventajas
pasar el tipo de variable incorrecto a una función.
que javascript tiene.
UNIVERSIDAD CATÓLICA BOLIVIANA “SAN PABLO” Facultad de Ingeniería 9
Tecnologías Web – SIS 241 Semestre I - 2022

Dado que es un lenguaje con tipo, las un nodeJs, Typescript y algunos elementos que los
características importantes como autocompletar componene, estos están inmersos en nuestro día a día,
en el IDE han estado disponibles, coherencia de los conocemos desde sus inicios hasta como lo vemos
código y predicción de errores inesperada actualmente. Es así que se dan por cumplidos todos
también. Además, podemos enumerar algunas los objetivos que fueron planteado al iniciar este
otras ventajas tangentes: proceso de investigación, concluyendo en la
 Es similar a JavaScript y utiliza la misma importancia del mundo de la tecnología y el hecho de
sintaxis y semántica. estar actualizándose con la información
 Al igual que otros lenguajes con tipo, como constantemente.
C- y Java, ayuda a los desarrolladores de 7. Referencia Bibliográfica
back-end a migrar a NodeJs más [1] Open Webinars (4 de septiembre de 2019) Qué es
fácilmente e incluso escribir código front- NodeJS y para qué sirve Recuperado el 18 de mayo de
end. 2021 de https://openwebinars.net/blog/que-es-nodejs/
 Puede llamar al código de tipo de texto [2] TypeScript (18 de Marzo de 2021) Qué es TypeScript
desde un código JavaScript Recuperado el 18 de mayo de 2021 de
existente. Además, funciona con código https://www.typescriptlang.org/
JavaScript puro y bibliotecas sin [3] Blog Rockseat (7 de diciembre de 2019) Mitos
problemas. Conocidos de Typescript Recuperado el 18 de mayo de
 El archivo definition, con extensión 2021 de https://blog.rocketseat.com.br/typescript-

.d.ts, proporciona compatibilidad con vantagens-mitos-conceitos/


bibliotecas JavaScript existentes como [4] Marques Fernandes (4 de septiembre de 2019) What

Jquery, D3.js, etc. Por lo tanto, el código is and Typescript Recuperado el 18 de mayo de 2021 de
TypeScript puede agregar bibliotecas de https://marquesfernandes.com/es/tecnologia-es/what-
JavaScript mediante definiciones de tipos and-typescript-and-for-that-serves/
para aprovechar las ventajas de la [5] Open Webinars (4 de septiembre de 2019) Qué es NPM

comprobación de tipos, la autocompletar y para qué sirve Recuperado el 18 de mayo de 2021 de

de código y la documentación en https://openwebinars.net/blog/que-es-node-package-

bibliotecas JavaScript de tipo dinámico manager/

existentes. [6] Hostinger (4 de septiembre de 2019) Qué es NPM

 Incluye características ES6 y ES7 que se Recuperado el 18 de mayo de 2021 de

pueden ejecutar en motores JavaScript ES5 https://www.hostinger.es/tutoriales/que-es-npm

como Node.js. [7] Linux Console (4 de septiembre de 2019) NVP


Recuperado el 18 de mayo de 2021 de https://es.linux-

6. Conclusiones console.net/?p=2

Durante toda la investigación realizada se pudo


observar el gran avance y características de lo que es

También podría gustarte