DEV Community

Cover image for Core Entity num Sistema Modular em Golang

Core Entity num Sistema Modular em Golang

Conceitos

  • Módulo: Agrupamento de funcionalidades relacionadas a um componente de um software.
  • Core Entity (Entidade Central): Núcleo ou base de funcionalidades de um módulo.
  • Feature (Funcionalidade): Acção, operação ou regra de negócio relacionada à entidade.

Estrutura

  • O sistema é composto por Módulos.
  • Um módulo é composto por Core Entities.
  • Uma Core Entity é composta por Features.

Hierarquia

Sistema Modular
├── Módulo
│ ├── Core Entity
│ │ ├── Feature
│ │ └── Feature
│ └── Core Entity
└── Módulo

Cenário

Se um sistema possui os módulos de Autenticação e Configuração, as entidades centrais podem ser:

  • Autenticação: Usuário, Perfil, Permissões, Usuários por actividade, etc.
  • Configuração: Configuração Básica, Configuração de Email e Configurações da Empresa.

Sugestão

A inicialização das flags para as entidades centrais pode ser feita pela base de dados.

Essa abordagem permite maior flexibilidade, facilitando alterações e a adição de novas entidades centrais sem modificar o código directamente.

Código-fonte: https://github.com/ortizdavid/golang-modular-software

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Top comments (0)