update readme
This commit is contained in:
parent
7bc9f1c987
commit
6e89d5a8f5
65
README.md
65
README.md
@ -175,12 +175,6 @@ he optado por no incorporarlas.
|
|||||||
Las pruebas más interesantes son las de reglas de negocio y validación, lo que
|
Las pruebas más interesantes son las de reglas de negocio y validación, lo que
|
||||||
viene a ser los servicios y dominio.
|
viene a ser los servicios y dominio.
|
||||||
|
|
||||||
## LLMS
|
|
||||||
|
|
||||||
He usado Claude para la toma de decisiones y ayuda con el _boilerplate_, que no
|
|
||||||
es poca cosa, además también se ha usado para la generación de las pruebas
|
|
||||||
unitarias, además de resolución de algunos problemas complejos.
|
|
||||||
|
|
||||||
## Generadores y otras librerías
|
## Generadores y otras librerías
|
||||||
|
|
||||||
Existen generadores de código para Golang, de hecho, se fomenta su desarrollo,
|
Existen generadores de código para Golang, de hecho, se fomenta su desarrollo,
|
||||||
@ -210,4 +204,61 @@ sí, pero la prueba no consiste en eso.
|
|||||||
|
|
||||||
También se ha planteado incorporar la librería _testify_, descartado porque para
|
También se ha planteado incorporar la librería _testify_, descartado porque para
|
||||||
comprobar si existe el error y algunas comparaciones no era necesario meter una
|
comprobar si existe el error y algunas comparaciones no era necesario meter una
|
||||||
dependencia más.
|
dependencia más.
|
||||||
|
|
||||||
|
## Diagrama
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
El diagrama explica básicamente la estrucutra del proyecto en términos generales,
|
||||||
|
se demuestra que el dominio sensors solo se comunica al exterior mediante el
|
||||||
|
NATS y el _logger_.
|
||||||
|
|
||||||
|
Amarillo: exterior.
|
||||||
|
Morado: infraestructura.
|
||||||
|
Verde: dominio
|
||||||
|
Blanco: simulador, los _handlers_ está conectado sólo para llamar a la
|
||||||
|
gorutina, pero en la realidad debería ir independiente.
|
||||||
|
|
||||||
|
## Conclusión y cierre
|
||||||
|
|
||||||
|
Interesante reto donde realmente lo que más me ha costado son la realización
|
||||||
|
de pruebas unitarias, hay veces que me cuesta coger el concepto. Tengo la teoría
|
||||||
|
muy clara, pero a la hora de la verdad se me complica un poco las cosas. Además
|
||||||
|
que _mockear_ el sistema de mensajería debe tener su especial complejidad.
|
||||||
|
También ha sido algo complejo entender la concurrencia y los canales, no es algo
|
||||||
|
que haya trabajado en profundidad pero sí que se le ha puesto bastante empeño,
|
||||||
|
cariño y nivel de detalle.
|
||||||
|
|
||||||
|
He puesto mucho en valor la arquitectura limpia con un toque personal, no es DDD
|
||||||
|
puro ya que hay elementos que no deberían estar en dominio, pero en el proyecto
|
||||||
|
que estoy trabajando ahora mismo se está diseñando de la misma manera y está
|
||||||
|
funcionando muy bien.
|
||||||
|
|
||||||
|
También se ha evitado todo lo posible el uso de LLMs para la generación de
|
||||||
|
código, y su uso ha sido para la toma de decisiones arquitectónicas, discusión y
|
||||||
|
lectura rápida sobre los distintos funcionamientos de algunas librerías. En más
|
||||||
|
de una ocasión he cuestionado las respuestas que da, teniendo que verificar con
|
||||||
|
la documentación oficial. Pongo en valor mi capacidad para aprovechar la IA de
|
||||||
|
la mejor forma posible, verificando la información, además recalco que justo el
|
||||||
|
proyecto actual es una migración de un código en PHP completamente hecho con IA,
|
||||||
|
y se puede ver patrones y errores comunes que comete.
|
||||||
|
|
||||||
|
Soy consciente de que hay margen de mejora, por ejemplo con los tests o con la
|
||||||
|
documentación, se ha puesto especial esfuerzo y atención a que los nombres de
|
||||||
|
las funciones, variables, métodos, estructuras y paquetes sean lo más
|
||||||
|
autodescriptivos posibles. Se han puesto algunos comentarios. También hay
|
||||||
|
esfuerzo por permitir ejecutar el proyecto por primera vez con la mínima
|
||||||
|
intervención.
|
||||||
|
|
||||||
|
Un problema interesante que tuve que resolver, que como el sensor puede mandar
|
||||||
|
un valor ausente, el tipo `float64` al hacer el `unmarshal` se establece a 0.0,
|
||||||
|
con lo que se puede considerar válido, con lo cual su solución fue el uso de
|
||||||
|
puntero, si se descubre que es `nil` se considera no válido.
|
||||||
|
|
||||||
|
Digamos que este proyecto resuelve el problema que se propone, un sistema que
|
||||||
|
permite registrar y actualziar un sensor. Se puede ver su estado y los datos que
|
||||||
|
se recogen (simulados) se guardan en una base de datos.
|
||||||
|
|
||||||
|
Espero que el proyecto sea de vuestro agrado y podamos tener una siguiente
|
||||||
|
reunión.
|
||||||
BIN
assets/app-architecture.jpg
Normal file
BIN
assets/app-architecture.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
Loading…
Reference in New Issue
Block a user