From a7c436fe4c7dd20f7da050559dbd69ca3631aff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20P=C3=A9rez?= Date: Wed, 8 Oct 2025 23:17:23 +0200 Subject: [PATCH] initial commit --- .gitignore | 1 + Makefile | 28 +++++++++++++++++ README.md | 36 ++++++++++++++++++++++ app/main.go | 19 ++++++++++++ assets/nats-demo-1.png | Bin 0 -> 48602 bytes go.mod | 3 ++ go.sum | 0 internal/app/app.go | 11 +++++++ internal/app/logger.go | 67 +++++++++++++++++++++++++++++++++++++++++ 9 files changed, 165 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 README.md create mode 100644 app/main.go create mode 100644 assets/nats-demo-1.png create mode 100644 go.mod create mode 100644 go.sum create mode 100644 internal/app/app.go create mode 100644 internal/app/logger.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5292519 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +logs/ \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8765f88 --- /dev/null +++ b/Makefile @@ -0,0 +1,28 @@ +GO ?= go +PG_VERSION := 17.6-alpine3.22 +MOD_NAME := nats-app +DB_NAME := nats-db +NATS_NAME := nats-sv +NATS_VERSION := 2.12.0-alpine3.22 + +.PHONY: dockerize-db +# Remove and create a development database. +dockerize-db: + docker rm -f $(DB_NAME) + docker run --name $(DB_NAME) -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=developer -e POSTGRES_DB=$(DB_NAME) -p 5432:5432 -d postgres:$(PG_VERSION) + +.PHONY: dockerize-nats +# Remove and create a NATS server. +dockerize-nats: + docker rm -f $(NATS_NAME) + docker run --name $(NATS_NAME) -p 4222:4222 -d nats:$(NATS_VERSION) + +.PHONY: run +# Start app in development environment +run: + go run ./app/. + +.PHONY: run-prod +run-prod: +# Start app in production environment + go run ./app/. -env=prod \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..360f79e --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +# NATS APP + +Lectura de datos de sensores en un dispositivo IoT. Prueba técnica para optar +por el puesto de programador Go. + +## Requisitos previos + +- Docker +- NATS CLI +- Make, si prefieres la comodidad de usar Makefile + +## Consideraciones + +Hay partes de códigos que son _snippets_ extraídos de una librería de autoría +propia. [Repositorio GitHub](https://github.com/zepyrshut/gopher-toolbox). De +las cuales son: + +- El _logger_ usando la _stdlib log/slog_. + +## Bitácora + +### Quickstart y toma de contacto con NATS + +Lo primero que he hecho es un _quickstart_ del proyecto, con lo que siempre o +casi siempre pongo en mis experimentos. Y lo siguiente, en lugar de empezar a +construir el proyecto como loco he tratado de entender cómo funciona NATS. Al +final ha sido muy sencillo, siguiendo esos pasos: + +1. Levantar el servidor NATS en Docker +2. Instalar el CLI de NATS +2. Abrir un puñado de terminales, y en un par de ellas escribir: `nats sub "hello"` +lo cual significa que se está suscribiendo al canal `hello`. Y en otra escribir: +`nats pub "hello" "Hola mundo!"`, lo cual significa que está escribiendo el +mensaje `Hola mundo!` en el canal `hello`. + +![demo de NATS](./assets/nats-demo-1.png) \ No newline at end of file diff --git a/app/main.go b/app/main.go new file mode 100644 index 0000000..bd2b9b5 --- /dev/null +++ b/app/main.go @@ -0,0 +1,19 @@ +package main + +import ( + "flag" + "log/slog" + "nats-app/internal/app" +) + +func main() { + environment := flag.String("env", "dev", "dev or prod") + flag.Parse() + + _ = app.NewApp(*environment) + + slog.Debug("hello world debug") + slog.Info("Hello world info") + slog.Warn("Hello world warn") + slog.Error("hello world error") +} diff --git a/assets/nats-demo-1.png b/assets/nats-demo-1.png new file mode 100644 index 0000000000000000000000000000000000000000..56d72ea51131f2505d8e035afe2dd18416e9f665 GIT binary patch literal 48602 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

q0tVJui1I-#1TvU{O3w7h)S