OS DESAFIOS DA PROGRAMAÇÃO UTILIZANDO METADADOS
https://github.com/wilcorrea/metadadados

https://slides.com/wilcorrea/metadados/

William Correa
@wilcorrea






t.me/wilcorrea
lt.coop.br
phpzm.rocks
http://lattes.cnpq.br/5492287567035269
~> Tópicos
- 1. O que são metadados
- 2. Noções de linguagens
- 3. Modelos
- 4. Estruturas de dados
- 5. Utilizando metadados
- 6. Desafios & Armadilhas
- 7. Para levar para casa

~> Objetivo

Apresentar opções viáveis de construções de modelos altamente customizáveis que proveem ferramentas necessárias para configurar diversos ambientes da sua aplicação
~> Disclaimer

Prepare-se para cenas fortes de abstração usando arquitetura e engenharia de software.
Todas as cenas a seguir são para demonstrar como criar modelos sustentáveis e flexíveis para a base de um software.
# 1. O que são metadados
- 1.1. Dados sobre dados
- 1.2. Não é novidade
- 1.3. Classificação


## 1.1. Dados sobre dados
- Informações que descrevem um outro algo
- Presente em toda a parte na computação


## 1.2. Não é novidade
- Possuem milhares de anos
- O termo data de 1968


## 1.3. Classificação
- Organizar
- Identificar
- Descrever


- Apresentar
- Indexar
- Contextualizar
## Resumo
- Ampliar as possibilidades de compreensão
- Gerenciar e organizar recursos


# 2. Noções de linguagens
- 2.1. Imperativas
- 2.2. Declarativas
- 2.3. Abordagens ubíquas


## 2.1. Imperativas
- Apresenta a instrução
- Específica elementos
- Não há espaço para interpretações


## 2.2. Declarativas
- Descreve a semântica
- Instrui o que deve ser feito
- Permite declarar o que será realizado


## 2.3. Abordagens ubíquas
- Computação Pervasiva
- Linguagem de Domínio


## Resumo
- Muitos caminhos a seguir
- Certo ou Errado não se aplicam


# 3. Modelos
- 3.1. Representação
- 3.2. Idioma comum
- 3.3. Mapeamentos e transformações



## 3.1. Representações
- BPMN
- UML



## 3.2. Idioma comum
- XML
- JSON
- YAML


## 3.3. Mapeamentos e transformações
- ORM
- MDD



## Resumo
- Modelos existem
- Alinhamento para usá-los


# 4. Estrutura de dados
- 4.1. Atributos
- 4.2. Ações
- 4.3. Estados
- 4.4. Eventos




## 4.1. Atributos
- Relevância de atributos
- Contribuição para o modelo

### 4.1.1. Circunstanciais


### 4.1.2. Estruturais


## 4.2. Ações
- Imprimem algum comportamento
- Funções e métodos



## 4.3. Estados




## 4.4. Eventos
- After
- Before


## Resumo
- Modelos e mundo real não são grandes amigos
- Regras de negócio precisam de cuidados especiais
- Um modelo deve ser instanciável


# 5. Utilizando metadados
- 5.1. Como funciona isso?
- 5.2. Personalização
- 5.3. Adaptação
- 5.4. Centralização

## 5.1. Como funciona isso?


## 5.2. Personalização



## 5.3. Adaptação



## 5.4. Centralização


## Resumo
- Tudo tem prós e contras
- Seu time e seu contexto importam


# 6. Desafios & Armadilhas
- Ideia complexa, código simples
- Rastreabilidade
- Falta de resiliência
- Não automatizar tudo
- Não transformar internamente
- Modularizar e componentizar são regras

## 6.1. Semântica


## 6.2. Verticalidade


## 6.3. Resiliência



# 7. Para levar para casa
- Existem pelo menos 2 formas de fazer um algo
- Escrever código é fácil, ter semântica não
- O equilíbrio é tênue, mantenha o foco

# Perguntas

Hora das Palmas
Os desafios da programação utilizando metadados
By William Correa
Os desafios da programação utilizando metadados
- 1,023