Dividir um arquivo grande
Quando partir, por onde partir, e como fazer isso sem quebrar quem já adota o arquivo.
Um arquivo com mil linhas ainda funciona; o problema é que ninguém mais acha nada nele, e toda mudança conflita com outra. Partir é mecânico se for feito na ordem certa.
Quando#
| Sinal | Medido por |
|---|---|
| o arquivo passou de 400 linhas | dataforge stats |
| dois assuntos que não se chamam | dataforge deps |
| um blueprint com baixa coesão | dataforge oop (LCOM alto) |
Como, sem quebrar ninguém#
- Crie os arquivos novos e mova o código para eles.
- No arquivo original, troque o conteúdo por uma fachada:
relay from ./parte1,relay from ./parte2. - Rode
dataforge abi antigo.df novo.df: o veredito precisa sercorrecao— a superfície não mudou. - Só depois, se quiser, migre quem adota o arquivo original para os novos.
bash
dataforge stats src/loja.df
dataforge abi git-show-antigo/loja.df src/loja.df # precisa dar 'correcao'
dataforge check src/ # nenhum ciclo novodataforge
// O que o 'abi' confere, em miniatura: a mesma superficie antes e depois.
action total(v):
yield v * 1.1
action frete(uf):
yield 20 given uf is "SP" otherwise 35
assert total(100) bigger 109 and frete("SP") is 20