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

  • 889