Code Monkey home page Code Monkey logo

investimentos's Introduction

Welcome to Investimentos 👋

Twitter: Rafael\_M\_Porto

Investimentos é um projeto open-source escrito em .Net Core com a aplicação de boas práticas de desenvolvimento.

Definições de arquitetura

  • Arquitetura em camadas para encapsular os conceitos e permitir que os projetos possam trabalhar de forma independente.
  • Injeção de dependência com o container próprio da Microsoft. Dado a simplicidade da aplicação a solução de DI da Microsoft atende perfeitamente, possui uma excelente resposta e fácil uso.
  • Object values para definir melhor conceitos complexos de campos dos objetos. Foi adotado o uso de Structs, pois não vão para a Heap e permite um controle melhor de dados que são imutáveis.
  • AutoMapper: mapeamento de entidades, desta forma permite-se configurar diversos cenários de mapeamento entre objetos e é possível utilizar a injeção de dependência.
  • Memory Cache: armazenado com duração até as 00:00h do dia seguinte. Com a simplicidade da aplicação e o tamanho de dados necessários, foi adotado o uso de cache em memória e por isto foi adicionado o monitoramento no healthcheck. Caso a aplicação cresça, é recomendável migrar para cache distribuído, por exemplo, Redis. Por este motivo foi criado uma classe para manipular o cache e assim encapsular o conceito permitindo que a aplicação possa alterar a estratégia de cache de forma fácil e rápida.
  • HttpClientFactory: para manipulações de requisições. É uma boa prática utilizar a factory para assim utilizar em injeção de dependência e permitir a configuração de handlers.
  • Http Polly: configurado handlers de Retry e Circuit Breaker, permitindo um controle melhor das requisições.

UI de documentação e monitoramento

  • Swagger: para UI e documentação da API e permitir uma melhor interação e entendimento de como a API funciona.
  • Healthcheck: com UI para monitoramento da aplicação, para permitir que outras aplicações possam consultar o status da API e permitir também que seja visualizado no dashboard o funcionamento da aplicação.

Tests

  • xUnit
  • Bogus: para data fake generator. Desta forma pode-se criar objetos de forma mais elaboradas.
  • FluentAssertions: para validação dos testes permitindo escrever com a notação de Fluent validation.
  • Moq: para criação de objetos.

Usage

  • Para utilizar o swagger utilize o endpoint: swagger/index.html Swagger UI

Healthcheck está disponível nos endpoints:

  • healthchecks-ui (Dashboard)
  • /status (json para consulta de outras aplicações)

Author

👤 Rafael Monteiro Porto

Show your support

Give a ⭐️ if this project helped you!


This README was generated with ❤️ by readme-md-generator

investimentos's People

Contributors

rafaelporto 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.