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

Sentry blog image

How I fixed 20 seconds of lag for every user in just 20 minutes.

Our AI agent was running 10-20 seconds slower than it should, impacting both our own developers and our early adopters. See how I used Sentry Profiling to fix it in record time.

Read more

Top comments (0)

The best way to debug slow web pages cover image

The best way to debug slow web pages

Tools like Page Speed Insights and Google Lighthouse are great for providing advice for front end performance issues. But what these tools can’t do, is evaluate performance across your entire stack of distributed services and applications.

Watch video