COBOL Dicas
  • Home
  • COBOL
  • CICS
  • DB2
  • JCL
  • Códigos de Erro
  • Exemplos de Código
  • Fórum
  • Blog / Notícias
  • YouTube

Artigos recente

  • 🛠️ Boas Práticas em Programas COBOL: Legibilidade e Manutenção 01-07-2025
  • 🦖 Programação COBOL e a Geração Z: o que podemos esperar para o futuro? 24-06-2025
  • 🚀 A Comunidade COBOL Dicas agora está no Element! 12-06-2025
  • Comparação entre Emuladores Hercules: TK4, TK5, Hercules 390 e Hercules 4.x 12-06-2025
  • 🦖 Os Últimos Programadores em Pé: O Futuro do COBOL na Era da IA 10-06-2025
  • 🤖 COBOL e Inteligência Artificial: Integração Possível e Poderosa 05-06-2025
  • 📝 COBOL e Microsserviços: Integração entre o clássico e o moderno 03-06-2025
  • 📰 Por que o COBOL Ainda é Essencial em 2025 28-05-2025
  • 🦖 Os 7 Melhores Sites em Português para Aprender COBOL e Mainframe em 2025 26-05-2025
  • 🖥️ MAINFRAME HISTORY: A Evolução da Marca DB2 para Db2 24-05-2025
  1. Início
  2. Blog / Notícias

🛠️ Boas Práticas em Programas COBOL: Legibilidade e Manutenção

Detalhes
Publicado: 01 de julho de 2025

"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!

  1. 🦖 Programação COBOL e a Geração Z: o que podemos esperar para o futuro?
  2. 🚀 A Comunidade COBOL Dicas agora está no Element!
  3. Comparação entre Emuladores Hercules: TK4, TK5, Hercules 390 e Hercules 4.x
  4. 🦖 Os Últimos Programadores em Pé: O Futuro do COBOL na Era da IA

Página 1 de 10

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Tópicos recentes - Comunidade e Suporte Geral

  • Home-office, híbrido ou presencial? Qual seu modelo de trabalho ideal? - por: bopnet
  • O futuro da programação COBOL em um mundo dominado por linguagens de programação modernas. Can I find here interesting man - por: Joannegeove
  • Uma alternativa para o paradigma procedural em COBOL? Can I find here worthy man - por: Joannegeove
  • Hercules TK5 - Emulador de Mainframe - por: bopnet
  • [Vaga] Desenvolvedor COBOL Senior - SUECIA - por: mauricio.antunes@cgi.com

Siga o COBOL Dicas

  • 📺 YouTube | 📘 Facebook | 💼 LinkedIn | 🐦 X (Twitter) | 📷 Instagram | 💬 Fórum COBOL | 📂 GitHub | ✉️ E-mail

© 2025 COBOL Dicas | Powered by Joomla | Desenvolvido por José Roberto

  • ⚖️ Direito de Conteúdo
  • ❓ FAQ / Guia Rápido
  • 📩 Contato
  • 📜 Informações Legais
  • 🔒 Política de Privacidade
  • 👤 Quem Somos