trekhleb /
javascript-algorithms
📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings
98/100 healthLoading repository data…
CodeSystem2022 / repository
No description provided.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
:godmode:Balbuena, Fernando Nicolas
:godmode:Espinola, Renzo Oscar
:godmode:Giménez Ríos, Tatiana T.
:godmode:Gutiérrez, Juana Natalia
:godmode:Gutiérrez, Alejo Hernán
:godmode:Gutiérrez, Juan Carlos
:godmode:Gutiérrez, René Agustín
:godmode:Iván, Matías
:godmode:Rossi, Ludmila
:godmode:Valdez, Carlos Federico
:godmode:Valladares, Juan Ignacio
Este repositorio contiene una infraestructura de microservicios desarrollada con Spring Boot 3 y Java 17, que se divide en dos dominios principales: Infraestructura y Negocio. Aquí encontrarás información sobre cada uno de estos componentes y cómo se relacionan entre sí.
La infraestructura de microservicios se encarga de proporcionar las herramientas necesarias para que los microservicios de negocio funcionen de manera eficiente y escalable. En este repositorio, hemos implementado los siguientes componentes de infraestructura:
Spring Admin es una herramienta que proporciona un panel de administración para monitorear y gestionar los microservicios de manera centralizada. Puedes acceder al panel de administración de Spring Admin a través de la URL http://localhost:8762 una vez que los microservicios estén en ejecución.
a.Accede al panel de administración de Spring Admin para monitorear y gestionar los microservicios.
Eureka Discovery es un servicio de registro y descubrimiento que permite que los microservicios se registren automáticamente y se descubran entre sí. Esto facilita la comunicación entre los microservicios sin necesidad de conocer las ubicaciones exactas de los demás. Se accede través de la URL http://localhost:8761
Spring Config es un sistema de gestión de configuración que centraliza la configuración de todos los microservicios. Utilizamos un repositorio remoto para almacenar la configuración de los microservicios y garantizar la coherencia y la fácil administración de la configuración. Se accede través de la URL http://localhost:8888 User: admin Password: qwerty Development: Nos muestra las configuraciones para un ambiente de desarrollo
URL: Development
Production: Nos muestra las configuraciones para un ambiente de de produccion
URL: Production
El dominio de Negocio se compone de varios microservicios que gestionan diferentes aspectos de la aplicación. Aquí, se describen los principales microservicios de Negocio:
Utilizaremos la interfaz SWAGGER para visibilizar y realizar las pruebas sobre los endpoints
El microservicio CUSTOMER se encarga de la gestión de clientes y ofrece las siguientes funcionalidades:
El microservicio PRODUCT se encarga de la gestión de productos y ofrece las siguientes funcionalidades:
El microservicio TRANSACTIONS se encarga de gestionar las transacciones de compra de productos y vincular datos de clientes (CUSTOMER) con los productos comprados (PRODUCT). Sus funcionalidades incluyen:
Mediante la configuracion seteada previamente en el docker-compose.yml podemos optar en dos modos de persistencia de datos dependiendo de la rigurosidad de las pruebas:
H2 es una base de datos relacional ligera, rápida y versátil, adecuada para una variedad de aplicaciones:
Portabilidad: H2 puede funcionar en diferentes plataformas y sistemas operativos, lo que facilita su implementación en una variedad de entornos.
Rendimiento: Es conocida por su rendimiento rápido y eficiente, lo que la convierte en una opción popular para aplicaciones que requieren consultas rápidas y procesamiento de datos.
Modo Embebido: Puede integrarse fácilmente en aplicaciones Java como una biblioteca, lo que significa que puede ejecutarse en el mismo proceso que la aplicación, sin necesidad de un servidor de base de datos separado.
Compatibilidad con Estándares SQL: H2 es compatible con los estándares SQL ANSI, lo que facilita la migración de otras bases de datos relacionales a H2.
Características Avanzadas: A pesar de su tamaño compacto, H2 ofrece muchas características avanzadas como compatibilidad con procedimientos almacenados, disparadores, encriptación y replicación.
Consola Web: H2 incluye una consola web fácil de usar que permite administrar y visualizar datos de manera gráfica.
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
</dependencies>
MySQL es un sistema de gestión de bases de datos relacional (RDBMS por sus siglas en inglés) de código abierto y gratuito. Es uno de los sistemas de bases de datos más populares en el mundo y es ampliamente utilizado en aplicaciones web y empresariales.
Base de Datos Relacional: MySQL es un sistema de base de datos relacional, lo que significa que organiza los datos en tablas relacionadas entre sí. Cada tabla consta de filas y columnas, y se pueden establecer relaciones entre diferentes tablas utilizando claves primarias y foráneas.
Lenguaje SQL: MySQL utiliza Structured Query Language (SQL) para gestionar y manipular datos. SQL es un lenguaje estándar utilizado para crear, leer, actualizar y eliminar datos en bases de datos relacionales.
Multiusuario y Multihilo: MySQL es capaz de manejar múltiples usuarios concurrentes y múltiples conexiones al mismo tiempo. También es multihilo, lo que significa que puede realizar múltiples operaciones en paralelo para mejorar el rendimiento.
Escalabilidad: MySQL es altamente escalable, lo que significa que puede manejar grandes volúmenes de datos y un alto número de usuarios simultáneos. Es adecuado tanto para aplicaciones pequeñas como para grandes sistemas empresariales.
Portabilidad: MySQL es compatible con varias plataformas, incluyendo Windows, Linux, macOS y otras. Esto significa que una base de datos MySQL creada en un sistema operativo se puede transferir y utilizar en otro sistema operativo sin problemas.
Almacenamiento de Datos Seguro: MySQL proporciona funciones de seguridad robustas para proteger los datos, incluyendo la autenticación de usuarios, la autorización basada en roles y la encriptación de datos para mantener la confidencialidad.
Comunidad Activa: MySQL tiene una comunidad de usuarios y desarrolladores muy activa. Esto significa que hay una gran cantidad de recursos, documentación y soporte disponibles en línea.
Motor de Almacenamiento: MySQL permite utilizar diferentes motores de almacenamiento para sus tablas, como InnoDB (el motor de almacenamiento por defecto con soporte de transacciones ACID) y MyISAM (un motor de almacenamiento más antiguo, pero rápido para aplicaciones que no requieren transacciones complejas).
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
Al inicializarse los microservicios se generara automaticamente la BD (Springboot) y las tablas correspondientes para cada microservicio de negocio
Tambien se cuenta con la posibildad de ingresar al aplicativo de MySQL Workbench mediante la siguiente URL: https://localhost:3001 (NOTA: prestar atencion al https posee la s al final)
Ingresar a la url https://localhost:3001
a. En caso de advertencia de seguridad realizar los siguientes pasos:
Clickear en Configuracion avanzada
Acceder a locahost
Si accedemos por primera vez al entorno de MySQL Workbench, debemos realizar la configuracion de la conexion con la BD a. Clickeamos en el + MySQL Connections y configuramos de la siguiente manera:
Para utilizar esta infraestructura de microservicios, sigue estos pasos:
Es requerido tener previamente instaldo DOCKER y JAVA 17
V
Selected from shared topics, language and repository description—not editorial ratings.
trekhleb /
📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings
98/100 healthCyC2018 /
:books: 技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计
90/100 healthSnailclimb /
Java 面试 & 后端通用面试指南,覆盖计算机基础、数据库、分布式、高并发、系统设计与 AI 应用开发
airbnb /
JavaScript Style Guide
98/100 healthkrahets /
《Hello 算法》:动画图解、一键运行的数据结构与算法教程。支持简中、繁中、English、日本語,提供 Python, Java, C++, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 等代码实现
90/100 healthryanmcdermott /
Clean Code concepts adapted for JavaScript
98/100 health