Ir al contenido principal

Programación Full Stack con MEAN

Buena semana, en el post de hoy tenemos a la primera invitada del año la MC Fabiola Rodriguez, ella tiene 16 años de experiencia en el área de Sistemas: 7 años en Helpdesk y 9 años de experiencia Desarrollo de Software principalmente con la plataforma de Microsoft, tiene una Maestría en tecnologías WEB y Dispositivos móviles, además de contar con varios diplomados y cursos de . He tenido la oportunidad de trabajar con ella  en la misma empresa  y ver varios de sus desarrollos los cuales cuentan con mucha calidad, estabilidad,buen Front End y son intuitivos, además de ofrecer un muy buena atención a sus usuarios. 

Ella nos va a platicar acerca de un nueva tecnología llamada MEAN  

Programación Full Stack con MEAN


Este tema para mí que egrese de la carrera de sistemas en el año 2004 fue totalmente y me pareció un reto, ahora casi 15 años cuando tuve oportunidad de conocerlo en la maestría en desarrollo web que curse en el 2019.
Considero necesario explicar primero que es un programador “Full Stack”, si desglosamos el término “Full” es completo y “Stack” se refiere a tecnología, por lo que diríamos que es aquel que maneja un conjunto completo de tecnologías.
Si tú sabes HTML, JavaScript, CSS y PHP eres un desarrollador Full Stack en esas tecnologías de código abierto, lo mismo si dominas C#, Javascript, Bootstrap y CSS.
En ambos ejemplos dominas tanto el backend de una aplicación como el frontend.
MEAN también es otro conjunto de tecnologías que te permitirían dominar ambos entornos. Ya que se refiere al acrónimo de MONGO, EXPRESS, ANGUNAR Y NODE JS.
Tecnologia MEAN
Angular, Typescript

Este conjunto de tecnologías está tomando mucha relevancia últimamente ya que permite realizar aplicaciones en tiempo real, y compañías como Netflix, Wal-Mart o la Nasa las utilizan.
Yo considero que la ventaja que tiene MEAN con respecto a otras tecnologías Full Stack es que en sus cuatro plataformas utiliza un solo lenguaje, “Javascript”. Incluso en MongoDB, ya que utiliza JSON que también es en esencia un estándar de texto plano para intercambio de información, basado en “Javascript”.
Esto es una ventaja contra un desarrollo en el que tenías que saber PHP y Javascript, Oracle o Sintaxis de SQL o bien C# y todas las anteriores.
De hecho, ya utilizar JSON para el intercambio de información hace que la velocidad de respuesta mejore de manera notable, basta con analizar una comparativa de cómo se intercambia la información en ambas tecnologías. Algunos analices sugieren que el intercambio de información de XML respecto a JSON puede reducirse hasta en un 50% en ancho de banda del canal.  
A continuación, te presento la misma información, en JSON vs XML, basta con apreciar que el número de líneas es mayor.

Ahora vamos a ver a que se refiere cada una de las tecnologías.

NodeJS


Es un lenguaje de backend, pero del lado de servidor, basado en Javascript que tiene acceso a los sistemas de archivo del equipo, la información del sistema operativo y los procesos del equipo, esto lo convierte en un sistema muy versátil especialmente para los sistemas que requieren monitoreo en tiempo real.
NodeJS en conjunto con Express como servidor, representan una gran ventaja respecto a una aplicación montada en IIS o Apache, ya que generan un solo hilo de comunicación que se mantiene a través de una sola sesión a diferencia de los dos anteriores que generan multisesiones. Y logra esto a través de hacer todas sus peticiones de manera asíncrona, por lo que al iniciarte en esta programación manejaras conceptos muy actuales como callbacks y las promesas.
Esto es tal vez lo que puede representar un reto o un paradigma más difícil para los programadores que venimos de otro tipo de tecnologías.
Tal vez esto puede sonar como una desventaja, pero se compensa cuando te das cuenta que el requerimiento de hardware para aplicaciones de gran concurrencia va a ser mínimo, es por eso que empresas como Netflix con alta concurrencia, han optado por este tipo de tecnologías.
NodeJS no necesariamente va casado con una base de datos no relacional como MongoDB, también puede utilizarse con SQL Server o MySQL y se pueden crear servicios de REST de una manera bastante amigable.
La popularidad de este lenguaje ha ido en incremento y a través de sus paquetes NPM, algo similar a los paquetes NUGET de Visual Studio, se tiene acceso a más de 470 mil librerías.
Si conoces Javascript, ya conoces la mayor parte de NodeJS.


Express


Es un módulo adicional que nos permite poder ejecutar un servidor web con NodeJS.



Angular



Es un framework de desarrollo para el lado de Frontend, tal vez una de sus ventajas contra su similares como React y VujeJS, es que en algún momento y por una restructuración del lenguaje, se dividió en dos hilos de desarrollo, el original “Angular JS” y el “Angular 2”, este último actualmente se encuentra en su versión “Angular 8”.  Lo cual requiere un esfuerzo adicional para adaptarse a cambios tan vertiginosos.
Sin embargo, su ventaja principal es que su entorno de desarrollo es muy parecido a .Net o Java Enterprise, pero del lado del cliente.
“Angular 8”, ya se programa con TypeScript, un framework tan estable que la labor de desarrollo se vuelve más intuitiva.
Yo personalmente me quedo con la versión Angular 7, que ya se encuentra en su versión más estable.

MongoDB

Es una base de datos multiplataforma, open source y NO SQL. Cuando me refiero a NO SQL no me estoy refiriendo a que va “en contra” o “totalmente contrario a SQL”.
Yo diría que más bien Mongo DB es una base, no solo SQL. El hecho de que su estructura sea más flexible ya que la información está basada en estructuras de JSON y no en un sistema de tablas, le permite procesar grandes cantidades de datos que se generan demasiado rápido y que van cambiando constantemente.
Pero eso no impide que sea utilizado en aplicaciones convencionales. Su base de programación es C++.
Para iniciar en la programación MEAN, te sugiero que empieces instalando Mongo DB, ya que lo primero que deberíamos de hacer sería crear servicios REST que nos permitan consumir datos.
A continuación, explicara cómo instalar Mongo DB en un sistema de Windows, aunque los pasos serían los mismos si lo haces en sistema operativo de Mac o Linux.
Instalación de Mongo DB
1.-Ingresemos a la página de Mongo DB y ve a la opción de Mongo DB Server que es la opción gratuita. Y busca el paquete que corresponde a tu sistema operativo.
*Al ingresar se te va a sugerir que te suscribas a su newsletter.

2.-Una vez ejecutado el instalador seguir dando clic en el botón de siguiente.


Después de aceptar los términos de la licencia, se nos preguntara si queremos una instalación completa o personalizada, debemos elegir la completa.


También nos preguntara si queremos instalar MongoDB como un servicio es decir iniciarlo junto con el arranque de nuestro sistema operativo.
Yo recomendó optar por la versión del servicio. Continuar en siguiente hasta que la instalación sea completada.
Después de esto se puede continuar con la instalación hasta que el sistema nos indica que ha quedado instalado.
3.-Para comprobar que la instalación se llevó a cabo puedes abrir una consola de Windows, “como administrador.  
Y debemos dirigirnos a la ruta donde se ha instalado MongoDB.


En mi caso se encuentra instalado en:
C:\Program Files\MongoDB\Server\3.6\bin
Y voy a esa ruta en mi pantalla de consola. Para verificar la versión solo tengo que escribir “mongod –versión”.



4.-Ahora debemos configurar la ruta donde MongoDB genera los archivos de la base de datos, esta ruta es independiente a la instalación del programa.
C:\data\db.
5.-Para ejecutar MongoDB debemos regresar a la consola y escribir el comando “mongo”, en la pantalla de comandos debe de aparecer la leyenda.


 De esta manera ya tendríamos el primer componente para la programación MEAN. La configuración puede parecer un poco complicada al principio, pero ten en cuenta que este proceso solo se realizaría una vez por cada equipo y las instrucciones no varían mucho de un sistema operativo a otro.
Sin embargo, el objetivo de esta publicación era darte una introducción de esta tecnología con sus ventajas y desventajas.

El tema es extenso, pero si alguna vez manejaste Javascript o c#, la programación te será muy transparente.

En YouTube puedes encontrar infinidad de cursos sobre cómo crear tu primera API en MEAN y como consumirla.
Yo te recomiendo el canal de “Fazt”, que tiene una lista de reproducción llamada “MEAN-APLIACION CRUD ANGULAR”.


Aunque por una inversión que no va más allá de los 15 USD e incluso menos cuando existen rebajas, puedes ingresar a los siguientes cursos de UDEMY que son bastante útiles por la destreza para explicar y los conocimientos solidos de los instructores, que contestan en cuestión de horas sobre alguna duda que vayas teniendo sobre el curso.
Aprende a programar con javascript desde cero y crea APIs RESTful con NodeJS, Typescript, Angular, Express y MongoDB

Aprende a programar desde cero y desarrollo web con JavaScript, jQuery, JSON, TypeScript, Angular, Node, MEAN, +30 horas
Teniendo en cuanta que esta sería la única inversión que tendrías que hacer ya que la licencia de MongoDB, NodeJS, Express JS y Angular son gratuitas.
Espero con esto haberte dado un panorama de lo que la programación MEAN significa y crearte al menos la curiosidad de darte una oportunidad y empezar poco a poco o de lleno a romper tus paradigmas e intentar hacer algún desarrollo con estas tecnologías.

No olvide compartirnos y seguirnos en este blog, en Facebook.

Comentarios

Entradas más populares de este blog

Graficar funciones en Python con dataframes

Bienvenidos a un nuevo post, en esta semana, en esta ocasión les quiero platicar acerca de una librería en Python que se llama  matplotlib  que nos sirve para gráfica funciones de  matemáticas. Habitualmente en Python existen muchas librerías, lo que hay que hacer es primero investigar si ya existe alguna que nos ayude y entenderla antes de inventar el hilo negro, en mi caso encontré la librería  Matplotlib Para instalar deben utilizar el comando PIP en 2.7 Instalando en Python 3.7 Si tienen Python 2.7 deben realizar la ejecución de estos 2 comandos desde consola python -m pip install -U pip python -m pip install -U matplotlib Aunque lo más recomendable es utilizar la versión 3.7 o superior de Python. Programa para graficar en Python import matplotlib.pyplot as plt import numpy as np import math as mt def move_spines():     """Esta funcion divide pone al eje y en el valor      0 de x para dividir claramente los valores positivos y     negativos.&quo

Ejemplo Macro en Word

Hola: ¿Sabían que no solo en Excel pueden hacer Macros?  ¡¡¡También en Outlook, Word, Power Point,Access  es posible hacer Macros!!!  ☺️ Ya que Word, Excel, Power Point,Access son de familia Microsoft y Visual Basic también es que podemos programar nuestras macros en esta paquetería. Como hemos visto antes, para poder programar nuestras macros, necesitamos primero configurar la Barra de tareas de Developer o Desarrollador Seleccionan el Menu File>Options>Customize Ribbon o en Español Archivo>Opciones>barra de tareas Despues la parte de seguridad de las macros Menu File>Options>Trus Center o Archivo>Opciones>Centro de Seguridad y marcamos como se ve en la imagen, la cuarta opción y el combo Ejemplo Vamos hacer un ejemplo donde, tengamos que generar varios diplomas de fin de curso, pero con una lista de Nombres , entonces vamos a crear un nuevo archivo en Word y le vamos a guardar como tipo Macro  Tenemos una plantill

Ejemplo Python para leer imagen y transformarla en una matriz

Como hemos visto en otros post, Python nos permite hacer programas de manera más rápida, en esta ocasión quiero compartirles un ejemplo para leer un archivo de imagen y como convertirlo en una matriz o un arreglo. Aplicaciones Poder hacer ingeniería de datos, es decir poder convertir una misma imagen en diferentes todos y utilizarlos para machine learning para reconocimiento de gatos, para ello hay que mostrar muchas imágenes a nuestro modelo es decir entrenarlo, para ello hay que colocarle imágenes claras y imagenes que no sean tan claras por ejemplo, se pone la imagen original y se agrega "ruido" para que se vea en rojos, grises, verdes. Se pudo utilizar para un mapa , para poder ver datos a detalle Se puede aplicar para manipular imágenes, por ejemplo agregar efectos  Seguramente a ustedes se les pueden ocurrir más aplicaciones Les comparto el ejemplo de como hacerlo en Jupiter y para hacer el ejemplo voy a utilizar el logo del blog es una imagen de 500x500 pixeles Los Pas