Code Monkey home page Code Monkey logo

price-service's Introduction

Contexto

A la hora de leer el código, hay que ser consciente de que no es un proyecto listo para producción. Se han dejado comentarios por el código para explicar algunas decisiones tomadas y falta de implementaciones.

No se han implementado todos los test unitarios. Creo que con los que hay se entiende el concepto y no es necesario implementarlos todos. Tampoco se ha hecho una división de test unitarios y de integración de modo que faciliten la ejecución de la suite de tests unitarios.

Faltan implemtanciones que considero boilerplate y que están fuera del objetivo de la prueba, pero deberían de tenerlas un proyecto real como por ejemplo:

  • Error handler
  • Heath check (actuator por ejemplo)
  • Pipelines (github actions por ejemplo)
  • Migraciones en la base de datos (liquibase por ejemplo)
  • Documentación (se podría haber usado swagger o asciidoctor por ejemplo)

Decisiones técnicas

Arquitectura Hexagonal

Se ha usado arquitectura hexagonal, por el hecho de que es una arquitectura fácil escalar y mantener. Pienso que para una prueba de concepto es intersante ya que puede dar lugar a bastantes discusiones.

Se han implementado algunos value objects y validaciones simples de los mismos. Pero no se ha llegado a hacer un modelado completo del dominio. Creo que con lo que hay es suficiente para que se entienda el dominio.

Nota: Si el caso de uso fuese real y fuese nuevo e independiente, hubiese sido más pragmático en las decisiones tomadas y no hubiese usado esta arquitectura para este problema tan simple.

JPA

He usado JPA ya que se requería crear una base de datos, y JPA permite crear el schema de una manera muy fácil. Si fuese un caso de uso real, habría usado una solución para generar migraciones en vez de JPA, pero creo que no es el objectivo de la prueba, y esta era una solución más rápida. Aprovechando que he usado JPA, he usado un JPA repository para generar la consulta a base de datos, pero siendo pragmático, para este caso habría usado una simple query SQL.

price-service's People

Contributors

danielgilb avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.