← ClaudeAtlas

advpl-refactoringlisted

6 padrões de refactor comuns em ADVPL/TLPP — DbSeek loop, Posicione repetido, IFs hardcoded, AxCadastro→MVC, string concat em loop, RecLock sem Begin Transaction. Inclui before/after e quando NÃO aplicar. Use quando o usuário pede "melhorar", "refatorar" ou "está lento" um fonte ADVPL.
JoniPraia/plugadvpl · ★ 12 · Code & Development · score 66
Install: claude install-skill JoniPraia/plugadvpl
# advpl-refactoring — Padrões de refactor com before/after Esses 6 padrões cobrem ~80% das oportunidades de refactor em fontes ADVPL legados (Protheus R10/R11) ou customizações novas escritas sem o conhecimento dos idiomas modernos. Cada um tem **gatilho de detecção** (como achar via `plugadvpl`), **before/after** lado-a-lado e **quando NÃO refatorar** (custo pode superar valor). ## Workflow 1. **Antes de propor refactor**: rode `/plugadvpl:arch <arquivo>` pra entender escopo, `/plugadvpl:callers <funcao>` pra impacto downstream, e `/plugadvpl:lint <arquivo>` pra confirmar que há findings. 2. **🚨 Refactor envolve Edit em massa — `.prw` cp1252 precisa stage/commit OBRIGATÓRIO**: ```bash plugadvpl edit-prw stage <arquivo.prw> # cp1252 -> utf-8 (cria .bak) # ... agora aplique os refactors via Edit/Write ... plugadvpl edit-prw commit <arquivo.prw> # utf-8 -> cp1252 (restaura) ``` Sem isso, acentos nos comentários/strings não-editados viram `?` e o compilador AppServer rejeita o arquivo. Bug silencioso. Detalhes: `/plugadvpl:edit-prw`. 3. **Critical/error do lint geralmente é refactor candidato** — comece pelos worst offenders. 4. **Refactor um padrão por commit**. Misturar 3 refactors num diff só gera review impossível e bug oculto. 5. **Depois do refactor**: `/plugadvpl:reindex <arquivo>` + `/plugadvpl:lint <arquivo>` pra confirmar que não introduziu regressão (findings que não existiam antes). 6. **Antes de commitar git**: `/plugadvpl:edi