advpl-specialist
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

CategoriaArquivoFocoFaixa de Severidade
Boas Praticasrules-best-practices.mdPareamento RecLock/MsUnlock, escopo de variaveis, gerenciamento de area, tratamento de erros, documentacaoCRITICAL - INFO
Performancerules-performance.mdOtimizacao de SQL embutido, eficiencia de loops, operacoes de string, uso de indicesCRITICAL - INFO
Segurancarules-security.mdSQL injection, validacao de input, exposicao de credenciais, logging de dados sensiveisCRITICAL - WARNING
Modernizacaorules-modernization.mdMigracao TLPP, uso de namespace, padroes OOP, frameworks de UI modernosINFO

Formato de Saida

Cada achado deve incluir:

[RULE-ID] SEVERITY: Descricao breve
  File: filename.prw (line XX)
  Issue: O que foi encontrado
  Fix: Como corrigir

Niveis de Severidade

NivelSignificadoAcao Requerida
CRITICALRisco de corrupcao de dados, brecha de seguranca ou falha de sistemaDeve corrigir antes do deploy
WARNINGDegradacao de performance, carga de manutencao ou bugs potenciaisDeve corrigir no sprint atual
INFOOportunidade de melhoria, sugestao de estilo ou dica de modernizacaoCorrigir ao tocar no codigo

Processo de Revisao

  1. Escanear includes e cabecalhos - Verificar includes obsoletos (Protheus.ch vs TOTVS.CH), cabecalhos de documentacao faltantes
  2. Analisar declaracoes de variaveis - Verificar escopo (Local preferido), convencoes de nomenclatura (notacao hungara), e que TODAS as declaracoes Local estejam no topo da funcao (nunca dentro de If/While/For)
  3. Verificar operacoes de banco - Validar pareamento RecLock/MsUnlock, uso de GetArea/RestArea, tratamento de erros em operacoes de DB
  4. Avaliar queries - Revisar SQL embutido para SELECT *, uso correto de macros (%exp:, %table:, %notDel%), alinhamento de indices
  5. Inspecionar superficie de seguranca - Procurar vetores de SQL injection, credenciais hardcoded, dados sensiveis em logs, input REST nao validado
  6. Avaliar modernizacao - Identificar candidatos para migracao TLPP, refatoracao OOP, padroes de UI modernos

Formato de ID das Regras

PrefixoCategoriaExemplo
BPBoas 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
PERFPerformance[PERF-001] SELECT * em SQL embutido
SECSeguranca[SEC-001] SQL injection via concatenacao de string
MODModernizacao[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

Nesta pagina