Este repositório contém dois projetos relacionados: Basic
e Complete
. Ambos os projetos compartilham uma base sólida em princípios de desenvolvimento de software, incorporando diversos conceitos arquiteturais e de design.
Ambos os projetos seguem os princípios da Orientação a Objetos (OO), buscando organizar o código em torno de objetos que encapsulam dados e comportamentos relacionados.
Inspirados nos princípios de Arquitetura Limpa de Robert C. Martin, os projetos são estruturados de maneira a garantir a separação de preocupações e a manutenção da independência de frameworks.
O projeto Complete utiliza o conceito de Ports and Adapters, permitindo uma maior flexibilidade e adaptabilidade ao separar os detalhes de implementação do núcleo da aplicação.
Ambos os projetos implementam Casos de Uso para representar as diferentes operações e funcionalidades da aplicação, promovendo um design centrado no comportamento.
O conceito de Facade é utilizado no projeto Complete para simplificar e delimitar a comunicação entre a aplicação Terminal e o pacote Core, promovendo uma interface única e mais compreensível.
Entity
é uma classe base que representa entidades de domínio no projeto. Entidades são objetos que têm identidade própria, e a classe Entity
fornece comportamentos ricos, como clonagem, verificação de igualdade e geração automática de identificadores. Todos os modelos no projeto estendem Entity
, seguindo o padrão de Design de Domínio Rico (DDD).
O princípio da Inversão de Controle é aplicado nos casos de uso. As dependências necessárias, como interfaces e abstrações, são injetadas nos casos de uso, permitindo a flexibilidade na substituição das implementações concretas. Isso promove a dependência nas abstrações, não nas implementações concretas, facilitando a manutenção e teste de código.
Consulte os READMEs individuais dos projetos Basic e Complete para instruções específicas de configuração e execução.
Este projeto está sob a licença XYZ. Consulte o arquivo LICENSE para obter detalhes.