Skills
ADVPL/TLPP Code Review
Metodologia sistematica de revisao de codigo ADVPL/TLPP para boas praticas, performance, seguranca e modernizacao
ADVPL/TLPP Code Review
Metodologia sistematica de revisao de codigo para ADVPL/TLPP no TOTVS Protheus. Esta skill fornece regras estruturadas para identificar problemas relacionados a boas praticas, gargalos de performance, vulnerabilidades de seguranca e oportunidades de modernizacao em codebases existentes.
Quando Usar
- Revisar codigo ADVPL/TLPP antes de merge ou deploy
- Auditar codigo existente para qualidade e conformidade
- Identificar gargalos de performance em rotinas lentas
- Verificar vulnerabilidades de seguranca (SQL injection, exposicao de credenciais)
- Avaliar codigo para prontidao de migracao de .prw para .tlpp
- Revisoes de onboarding para reforcar padroes de codificacao do time
Categorias de Revisao
| Categoria | Arquivo | Foco | Faixa de Severidade |
|---|---|---|---|
| Boas Praticas | rules-best-practices.md | Pareamento RecLock/MsUnlock, escopo de variaveis, gerenciamento de area, tratamento de erros, documentacao | CRITICAL - INFO |
| Performance | rules-performance.md | Otimizacao de SQL embutido, eficiencia de loops, operacoes de string, uso de indices | CRITICAL - INFO |
| Seguranca | rules-security.md | SQL injection, validacao de input, exposicao de credenciais, logging de dados sensiveis | CRITICAL - WARNING |
| Modernizacao | rules-modernization.md | Migracao TLPP, uso de namespace, padroes OOP, frameworks de UI modernos | INFO |
Formato de Saida
Cada achado deve incluir:
[RULE-ID] SEVERITY: Descricao breve
File: filename.prw (line XX)
Issue: O que foi encontrado
Fix: Como corrigirNiveis de Severidade
| Nivel | Significado | Acao Requerida |
|---|---|---|
| CRITICAL | Risco de corrupcao de dados, brecha de seguranca ou falha de sistema | Deve corrigir antes do deploy |
| WARNING | Degradacao de performance, carga de manutencao ou bugs potenciais | Deve corrigir no sprint atual |
| INFO | Oportunidade de melhoria, sugestao de estilo ou dica de modernizacao | Corrigir ao tocar no codigo |
Processo de Revisao
- Escanear includes e cabecalhos - Verificar includes obsoletos (
Protheus.chvsTOTVS.CH), cabecalhos de documentacao faltantes - Analisar declaracoes de variaveis - Verificar escopo (
Localpreferido), convencoes de nomenclatura (notacao hungara), e que TODAS as declaracoes Local estejam no topo da funcao (nunca dentro de If/While/For) - Verificar operacoes de banco - Validar pareamento
RecLock/MsUnlock, uso deGetArea/RestArea, tratamento de erros em operacoes de DB - Avaliar queries - Revisar SQL embutido para
SELECT *, uso correto de macros (%exp:,%table:,%notDel%), alinhamento de indices - Inspecionar superficie de seguranca - Procurar vetores de SQL injection, credenciais hardcoded, dados sensiveis em logs, input REST nao validado
- Avaliar modernizacao - Identificar candidatos para migracao TLPP, refatoracao OOP, padroes de UI modernos
Formato de ID das Regras
| Prefixo | Categoria | Exemplo |
|---|---|---|
BP | Boas Praticas | [BP-001] RecLock sem MsUnlock, [BP-009] Palavra-chave Function em codigo de cliente, [BP-010] Nome de identificador excede o limite efetivo de tamanho |
PERF | Performance | [PERF-001] SELECT * em SQL embutido |
SEC | Seguranca | [SEC-001] SQL injection via concatenacao de string |
MOD | Modernizacao | [MOD-001] Classe .prw candidata para .tlpp |
Arquivos de Suporte
Esta skill inclui os seguintes arquivos de regras com padroes de deteccao e exemplos de codigo:
- rules-best-practices.md - Regras de boas praticas
- rules-performance.md - Regras de performance
- rules-security.md - Regras de seguranca
- rules-modernization.md - Regras de modernizacao