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
- 873