Ninguno de los códigos incluidos en este repo es ejecutable, son sólo retazos de aquí y de allá para mostrar estilo y estructuras.
- El directorio pwa contiene una muestra parcial de una aplicación de tipo progressive web application. Usa vuex para manejo de estados y axios para llamadas a api.
- El directorio ms contiene una muestra parcial de una aplicación de tipo microservicio api hecha con lumen, que es un subconjunto de laravel.
-
El directorio api contiene una muestra parcial de una aplicación de tipo api hecha con node.js.
-
En general este modelo de backend es el que uso siempre para apis o workers en node.js. Lo he ido afinando a traves del tiempo. Es muy flexible y eficiente.
- Usa un modulo propio
module-koa-common
que tengo en un repo privado. En este caso lo incluyo como dependencia local.
- Usa un modulo propio
-
Se usa koa.js para usar async/await out of the box.
-
Se usa estructura CLEAN (interpretación propia suceptible de mejorar):
- application: Casos de uso:
- PoisAll: Para vista inicial sin requerimeientos de entrada.
- PoisSector: Para vistas sectorizadas dado un centro geográfico. Se requiren distancia, coordenadas del cetro y eventualmente categorias.
- infrastructure: Rutas de la api y librerias
- container: Configura clases mediante injección de dependecias usando Awilix
- httpServer: Implementación de server HTTP usando middlewares koa.js
- init.js: Inicialización de server.
- interfaces: controlador api y repositorio de db
- __tests__: bateria de tests con jest y helper para test de integración via axios para simular llamadas api.
- application: Casos de uso:
- He estado usando Google Cloud Platform y Amazon Web Services por muchos años:
- GCP: Compute engine, Cloud SQL, Cloud DNS, Cloud run, Cloud functions, Cloud storage, etc.
- AWS: EC2, Code Pipeline, RDS, VPC, S3, SNS, etc.
- Firebase: Authentication, Cloud messaging ,etc.
- Desde hace unos meses estoy aprendiendo a usar pulumi.
- Este framework permite usar lenguajes como javascript, typescript y otros para expresar la infraestructura de una aplicación utilizando un método llamado "infraestructura como código" (IaC).
- Se declara la infraestructura deseada, y pulumi automatiza todo el proceso de despliegue y actualización de la infraestructura.
- Disponible para:
- AWs
- GCP
- Microsoft Azure
- Muestras de iac con pulumi:
- Muestras de archivos de especificación de compilación:
- buildspec.yml: Para AWS Codebuild (Fully managed continuous integration service that compiles source code, runs tests, and produces software packages)
- cloudbuild.yaml: Para GCP Cloud Build (Build, test, and deploy on our serverless CI/CD platform)
Uso de diagramas UML en la etapa de análisis y diseño:
-
Diagrama de actividad para definir un microservicio para Server Sent Events (sse) corriendo sobre MIGs (GCP managed instances groups) con autoescalamiento y un HTTPS Load Balancer.
-
Diagrama de actividad para definir un proceso periódico para envío de notificaciones push corriendo sobre MIGs (GCP managed instances groups) con autoescalamiento.
-
Diagrama de clase para definir relaciones entre objetos para realizar un publicación.
-
Diagrama ER para definir relaciones entre entidades de un sistema de publicación.
-
Stackoverflow:
- Cálculo de máxima ganancia (problema hackerrank)
- Ejemplo de conección a servidor mqtt en node.js