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
Top comments (0)