"Escreva hoje o código que você vai entender daqui 2 anos (ou o próximo colega)."

No mundo do desenvolvimento de sistemas, fazer o programa funcionar é só o primeiro passo. A real missão é garantir que esse código continue útil, compreensível e fácil de manter com o passar do tempo — principalmente quando falamos de COBOL, usado em sistemas bancários, financeiros e governamentais que duram décadas.

Neste artigo, vamos ver boas práticas que todo programador COBOL deveria adotar, como:

  • Nomear variáveis com clareza

  • Comentar com inteligência

  • Modularizar com PERFORM

  • Validar dados com rigor

  • Simplificar lógica com EVALUATE

É o tipo de coisa que separa o programador profissional do amador.

Nomes de Variáveis: Clareza e Consistência

Nada de X, VAR1, ABC. Em COBOL, você tem espaço de sobra no nome da variável. Use isso a seu favor.

Exemplos ruins:

01 X        PIC 9(4).
01 ABC      PIC X(10).

Exemplos bons:

01 WS-VALOR-TOTAL-VENDA   PIC 9(5)V99.
01 LK-CODIGO-CLIENTE      PIC X(10).

Use prefixos padrões:

  • WS- → variáveis da WORKING-STORAGE

  • LK- → variáveis da LINKAGE SECTION

  • FD-, ARQ- → arquivos

  • CT-, QTD-, DT- → para datas, quantidades, contadores

E o mais importante: mantenha o padrão do projeto. Se uma variável é chamada DATA-NASCIMENTO, não vá criar outra chamada DT-NASC.

Comentários: Explique o Porquê, Não o Que

Comentários não devem repetir o óbvio. Eles servem pra explicar intenção, decisões, exceções.

Evite isso:

* MOVE 0 TO WS-VALOR

Prefira isso:

* Zera o acumulador antes de iniciar o cálculo total da venda
MOVE 0 TO WS-VALOR

Use comentários também para dividir o código:

       ******************************************************************
       * SECTION: PROCESSAMENTO-DE-DADOS                                *
       * OBJETIVO: Valida e calcula o valor total da venda              *
       ******************************************************************

Dica: se o seu código está precisando de comentário em toda linha, talvez o problema seja ele mesmo. Modularize!

Modularização com PERFORM: Organização na Veia

COBOL sem PERFORM é uma bagunça. Use e abuse para separar tarefas e manter tudo limpo.

Exemplo clássico:

PROCEDURE DIVISION.
    PERFORM 100-INICIALIZA.
    PERFORM 200-PROCESSA-DADOS UNTIL WS-FIM-ARQUIVO = 'S'.
    PERFORM 300-FINALIZA.
    STOP RUN.

100-INICIALIZA.
    MOVE ZEROS TO WS-CONTADOR.
    OPEN INPUT ARQ-ENTRADA.

200-PROCESSA-DADOS.
    READ ARQ-ENTRADA AT END
        MOVE 'S' TO WS-FIM-ARQUIVO
    NOT AT END
        ADD 1 TO WS-CONTADOR
    END-READ.

300-FINALIZA.
    CLOSE ARQ-ENTRADA.
    DISPLAY 'Total de registros: ' WS-CONTADOR.

Cada PERFORM executa um trecho bem definido, com um nome claro. Isso facilita testes, alterações, leitura e reuso.

Validação de Dados: Proteja Seu Programa

COBOL é muito usado em sistemas que não podem falhar. Então não tem desculpa: valide os dados!

O que validar:

  • Se é numérico, alfabético ou alfanumérico

  • Se está dentro de uma faixa (ex: idade de 0 a 130)

  • Se pertence a uma lista válida (ex: código de status)

  • Se existe consistência entre campos (ex: data final maior que a inicial)

Exemplo:

IF WS-CODIGO-PRODUTO IS NOT ALPHANUMERIC
    DISPLAY 'ERRO: Código inválido.'
    PERFORM 900-TRATA-ERRO
END-IF.

IF WS-QUANTIDADE < 1 OR > 999
    DISPLAY 'ERRO: Quantidade fora da faixa.'
    PERFORM 900-TRATA-ERRO
END-IF.

E mais: trate o erro de forma controlada — não deixe o programa travar com ABEND se der pra evitar.

Uso Inteligente do EVALUATE

Ao invés de um monte de IF / ELSE IF, use o EVALUATE. Fica mais limpo e direto.

Exemplo ruim:

IF STATUS = 'A'
    DISPLAY 'Ativo'
ELSE IF STATUS = 'I'
    DISPLAY 'Inativo'
ELSE
    DISPLAY 'Desconhecido'
END-IF.

Exemplo bom:

EVALUATE STATUS
    WHEN 'A'
        DISPLAY 'Ativo'
    WHEN 'I'
        DISPLAY 'Inativo'
    WHEN OTHER
        DISPLAY 'Desconhecido'
END-EVALUATE.

Além de mais bonito, o EVALUATE permite testar múltiplas condições com ALSO. Excelente pra deixar o código organizado e fácil de manter.

Conclusão

COBOL não é uma linguagem "bonitinha". É uma linguagem funcional, direta e de longa vida útil. Por isso mesmo, escrever bem é essencial. Quem programa COBOL precisa pensar no futuro, nos colegas e no sistema como um todo.

Resumo das boas práticas:

  • Use nomes claros, com padrão

  • Comente o porquê das coisas, não o que está óbvio

  • Modularize com PERFORM sempre que possível

  • Valide tudo antes de processar

  • Use EVALUATE pra deixar a lógica limpa

⚠️ Lembre-se: o COBOL que você escreve hoje vai continuar rodando daqui 10, 20 ou 30 anos. Faça com capricho!