Coder Social home page Coder Social logo

afiliados's Introduction

afiliados

Sistema de gestão de afiliados em .net

afiliados's People

Contributors

willsantos avatar

Watchers

 avatar

afiliados's Issues

Criar as interfaces de repositório

Nesta tarefa, o objetivo é criar as interfaces de repositório que definem os métodos de acesso aos dados do domínio. Uma interface de repositório é um contrato que especifica como o sistema pode consultar, inserir, atualizar e remover dados de uma fonte de dados. Uma interface de repositório deve ser independente de detalhes de implementação específicos, como o tipo de banco de dados ou a tecnologia usada.

Para realizar esta tarefa, é necessário seguir as seguintes etapas:

  • Identificar as entidades do domínio: a partir do modelo de domínio definido na issue anterior, selecionar as entidades que precisam ser persistidas em uma fonte de dados.
  • Criar as interfaces de repositório: para cada entidade do domínio, criar uma interface de repositório que estenda a interface genérica IRepository, onde T é o tipo da entidade. Essa interface deve declarar os métodos de acesso aos dados da entidade, como GetById, GetAll, Add, Update, Delete, etc.
  • Criar os DTOs de repositório: para cada entidade do domínio, criar um DTO de repositório que contenha apenas as propriedades necessárias para o transporte dos dados da entidade. Um DTO de repositório deve ser uma classe simples, sem lógica ou comportamento.

Modelar os Use Cases principais com base no domínio

Nesta tarefa, o objetivo é modelar os Use Cases principais que descrevem as funcionalidades do sistema do ponto de vista do usuário. Um Use Case é um cenário que mostra como o usuário interage com o sistema para realizar uma ação ou atingir um objetivo. Um diagrama de Use Case é uma representação visual dos diferentes Use Cases e dos atores envolvidos.

Para realizar esta tarefa, é necessário seguir as seguintes etapas:

  • Identificar os atores do sistema: os atores são as pessoas, organizações ou sistemas externos que interagem com o sistema. Eles devem ser objetos externos que produzem ou consomem dados.
  • Identificar os Use Cases do sistema: os Use Cases são as ações ou funcionalidades que o sistema oferece aos atores. Eles devem ser expressos em verbos e refletir as metas e expectativas dos usuários.
  • Especificar os Use Cases do sistema: cada Use Case deve ter uma descrição detalhada que inclua o nome, o ator principal, o pré-requisito, o fluxo básico, os fluxos alternativos e as pós-condições.
  • Modelar os Use Cases do sistema: usando uma ferramenta de diagramação UML, como o Lucidchart, criar um diagrama de Use Case que mostre os Use Cases e os atores do sistema, bem como as relações entre eles. Usar símbolos e conectores adequados para representar o sistema, os atores, os Use Cases e as associações.

Organizar Estrutura Hexagonal

Nesta tarefa, o objetivo é criar o esqueleto do projeto c#, usando uma arquitetura hexagonal. Para isso, é necessário:

Criar as pastas e os projetos csproj para as camadas de domínio e de infraestrutura, seguindo a convenção de nomes do c#.
Definir as interfaces (portas) que serão usadas para a comunicação entre as camadas, usando o padrão de projeto Adapter.
Escolher as tecnologias que serão usadas para implementar os adaptadores, como frameworks, bibliotecas, bancos de dados, etc.

Definir o modelo de domínio da aplicação

Nesta tarefa, o objetivo é analisar e definir como será o domínio da aplicação, ou seja, o conjunto de conceitos, regras, entidades e relacionamentos que representam o problema a ser resolvido pelo sistema. O modelo de domínio deve ser claro, consistente, completo e coerente, refletindo as necessidades e expectativas dos usuários e das partes interessadas. Além disso, o modelo de domínio deve ser documentado no projeto, usando uma linguagem e um formato adequados para a comunicação e o entendimento dos envolvidos.

Para realizar esta tarefa, é necessário seguir as seguintes etapas:

Caracterizar o domínio e planejar o projeto
Levantar os dados do domínio
Analisar os dados do domínio
Classificar os dados do domínio
Avaliar o modelo de domínio
Documentar o modelo de domínio

Implementar os Use Cases de aplicação com base no domínio

Nesta tarefa, o objetivo é implementar os Use Cases de aplicação que representam as funcionalidades do sistema a nível de aplicação. Um Use Case de aplicação é uma classe que coordena a execução de uma ação ou objetivo do usuário, usando os serviços e entidades do domínio. Um Use Case de aplicação deve ser independente de detalhes de implementação externa, como frameworks, bancos de dados ou interfaces de usuário.

Para realizar esta tarefa, é necessário seguir as seguintes etapas:

  • Identificar os Use Cases de aplicação: a partir dos Use Cases definidos na issue anterior, selecionar os que serão implementados a nível de aplicação. Esses Use Cases devem ser os mais importantes e complexos, que envolvem regras de negócio e lógica de aplicação.
  • Criar as classes dos Use Cases de aplicação: para cada Use Case de aplicação, criar uma classe que implemente a interface de input port correspondente. Essa classe deve ter um método que receba um objeto de entrada (input) e retorne um objeto de saída (output). Dentro desse método, a classe deve usar os serviços e entidades do domínio para realizar a ação ou objetivo do usuário.
  • Injetar as dependências dos Use Cases de aplicação: para que os Use Cases de aplicação possam usar os serviços e entidades do domínio, é preciso injetar essas dependências nas classes dos Use Cases de aplicação.

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.