petbccufscar /
beecrowd
Este repositório é um projeto desenvolvido pelo grupo PET BCC com o objetivo de resolver todos os exercícios disponíveis na plataforma utilizando a linguagem de programação C
Loading repository data…
j-didi / repository
Este é um exemplo prático de implementação do conceito de Clean Architecture, proposto por Robert C. Martin, também conhecido como Uncle Bob. A ideia central do modelo é separar a aplicação em camadas, partindo do núcleo — o domínio de negócio — em direção às camadas mais externas, responsáveis pelos pontos de entrada e saída da aplicação.
If you liked my work and want to support me, please give it a star. Thanks!
This repository is a sandbox to experiment with new techniques, concepts, and technologies using Clean Architecture concepts. Here you will find Domain-Driven Design (DDD), Command Query Responsibility Segregation (CQRS), SOLID Design Principles, Design Patterns, and more.
docker-compose -f ./infra/docker-compose.yml -f ./infra/docker-compose.dev.yml -p clean-arch-dotnet-dev up -d
http://localhost:5010/swagger
dotnet test CleanArchDotnet.sln
docker-compose -f ./infra/docker-compose.yml -f ./infra/docker-compose.test.yml -p clean-arch-dotnet-test up -d
I'm using a Clean Architecture model, splitting the solution into Core, Infra, Services, and Shared Kernel layers.
The Core layer is responsible for the Domain Entities, Value Objects, Domain Services, Domain Events, Use Cases and Abstractions for communication with external layers. The main goal of this architecture is to keep the Core, where the business lives, isolated from external dependencies implementation details.
The organization follows "The Screaming Architecture" concept by Uncle Bob that purposes that your application architecture should scream what the system does. So I've preferred an organization by context rather than by component type.
Another principle that I'm following is CQRS/CQS, so the Use Cases are divided into Write or Read operations. Also, any Use Case has its owns Command, Query, Result, and Handler.
The Infra layer is responsible for Repository Concerns (Schemas, Repository Implementations, and Database Connections), Dependency Injection, Application Settings, and External Providers for integration or services consumption.
These are entry points for Core Use Cases consumption. Can be APIs, gRPC Services, Serverless Functions, Workers, and more. As the domain does not depend upon, the consumption can be anything.
These are common resources used between application layers. This project avoids circular dependencies between the layers.
This Architecture follows the Dependency Rule, where all dependencies points toward the architecture center (AKA the Core).
The Infra layer depends upon the Core layer, while the Core uses abstractions with the Dependency Inversion Principle to consume infra resources, like data access.
The Services layer depends upon the Infra due to Dependency Injection and Application Settings needs. The Services layer depends upon the Core too and communicates with the Core through abstractions.
The Shared Kernel layer helps to avoid circular dependencies between projects. All projects depend upon the Shared Kernel.
The application is containerized using Docker and automated using Docker Compose.
The docker-compose file has overridden versions for Dev and Load Tests environments. I took the caution not to use default ports in containers to avoid conflict with other containers/servers that you may have using these ports.
Another point is that the application is working with Entity Framework Core ORM, and the migrations are applied at the Application Startup.
Fast and without external dependencies. These tests are focused on the smaller units of code. The Todo Entity and the DomainValidationProvider are unit tested since they don't have extra dependencies to work.
With dependencies and focused on some internal functionality. In this application context, the Integration Tests are focused on use cases. External dependencies could be mocked or replaced (I'm replacing the Database with an In-memory one).
There are discussions about how many assertions you should have in a test, the boundaries, and soo. Here, following my experience and trying to be very comprehensive in these tests. I'm testing from the input until the persisted data.
These tests focus on test application entry points and returns. To avoid inserting test data into the Database. I'm using an In-memory Database one.
There is a whole separated structure for Load Tests, with containers and tools. The application uses the K6 tool. The K6 idea is to simplify load test where basic JavaScript and HTTP knowledge is sufficient to build load tests.
After executing the Load Tests, you can view results at /tests/CleanArchDotnet.Tests.Load/k6/results folder. The result.json shows a detailed report, and the export.json is a resumed version with a more general view.
Different from other tests, the Load Tests are executed and analyzed separately.
Selected from shared topics, language and repository description—not editorial ratings.
petbccufscar /
Este repositório é um projeto desenvolvido pelo grupo PET BCC com o objetivo de resolver todos os exercícios disponíveis na plataforma utilizando a linguagem de programação C
viniciusDias1001 /
Este repositório foi criado para reunir códigos e exercícios desenvolvidos como parte de um desafio de 100 dias de programação, com foco nas linguagens Java, Python, C#, JavaScript e Ruby.
daniel-oliv3 /
A despeito do notável crescimento de novas linguagens de programação, a linguagem C continua sendo a preferida por muitos profissionais de diversas áreas. Ela é, até hoje, a plataforma-base dos serviços de TI do sistema metroviário e das companhias telefônicas, além de ser a “porta de entrada” para o aprendizado de diversas outras linguagens. Em sua segunda edição, totalmente atualizada, com novo projeto gráfico e reunida em apenas um volume, "Treinamento em linguagem C" demonstra por que essa linguagem continua sendo disciplina básica nos cursos de ciência da computação. Além disso, os exemplos práticos — que podem ser adaptados para a criação de qualquer programa —, as seções de revisão e os exercícios ao final de cada capítulo tornam este livro único em sua área.
gaboliveiradev /
Uma simples interface gráfica desenvolvida para um sorveteria fictícia. Neste projeto eu utilizei C# e adaptei um padrão de projetos conhecido como MVC, muito utilizado em php para o back-end. Este projeto está bem básico ainda, fiz coisas simples, utilizei também o MySql como SGBD. Esse projeto foi desenvolvido para entregar como avaliação para uma das matérias do curso de desenvolvimento de sistema da etec
Talison-Miguel /
Este é um repositório contendo todo conteúdo que fiz do Livro Princípios de Orientação a Objetos em JavaScript, do Nicholas C. Zakas.
ffernandoalves /
Este é um repositório para métodos numéricos em C++ e Python.