Translate

Mostrar mensagens com a etiqueta laboratório. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta laboratório. Mostrar todas as mensagens

quarta-feira, 29 de outubro de 2025

☕💣 Lab: SEU PRIMEIRO PLANTÃO NO MAINFRAME — LABORATÓRIO COMPLETO DE LÓGICA DE PROGRAMAÇÃO IBM Z PARA INICIANTES 💣☕

 

Bellacosa Mainframe Laboratorio de Logica de Programação Mainframe

☕💣 “SEU PRIMEIRO PLANTÃO NO MAINFRAME” — LABORATÓRIO COMPLETO DE LÓGICA DE PROGRAMAÇÃO IBM Z PARA INICIANTES 💣☕

Aprenda a pensar como um programador de alta plataforma antes mesmo de dominar COBOL


🔥 OBJETIVO DO LABORATÓRIO

Neste laboratório você irá aprender:

✅ Como pensar em lógica Mainframe
✅ Como funciona o raciocínio batch
✅ Variáveis
✅ Validações
✅ Estruturas de repetição
✅ Sections e Paragraphs
✅ Procedures
✅ Subrotinas
✅ Modularização
✅ Boas práticas de alta plataforma
✅ Erros clássicos de iniciantes
✅ Como programadores IBM Z organizam sistemas reais


☕ CENÁRIO DO LABORATÓRIO

Você foi contratado para trabalhar em um banco.

Sua missão:

💣 PROCESSAR UM ARQUIVO DE CLIENTES

Cada registro possui:

NOME
IDADE
SALDO
STATUS

O programa deve:

  1. Ler registros

  2. Validar dados

  3. Calcular bônus

  4. Gerar relatório

  5. Exibir totais


🔥 PRIMEIRA LIÇÃO — PENSAR COMO MAINFRAME

Antes do código:

☕ O PROGRAMADOR MAINFRAME PENSA EM FLUXO


Entrada

Arquivo de clientes

Processamento

Validar
Calcular
Atualizar
Contabilizar

Saída

Relatório
Arquivo atualizado
Totais

💣 ISSO É O DNA DO BATCH

No Mainframe:

  • entrada

  • processamento

  • saída

são sagrados.


☕ ETAPA 1 — DECLARANDO VARIÁVEIS

No Mainframe tudo precisa ser previsível.


🔥 TIPOS MAIS COMUNS

Texto

01 WS-NOME            PIC X(30).

Número inteiro

01 WS-IDADE           PIC 9(03).

Valores monetários

01 WS-SALDO           PIC 9(07)V99.

Indicadores lógicos

01 WS-FIM-ARQUIVO     PIC X VALUE 'N'.

☕ DICA BELLACOSA MAINFRAME

🔥 Nome de variável precisa explicar a intenção

RUIM:

01 A PIC 9(5).

BOM:

01 WS-TOTAL-CLIENTES PIC 9(5).

💣 O MAINFRAME SOBREVIVE POR LEGIBILIDADE

Quem mantém sistemas bancários precisa entender rápido o código.


☕ ETAPA 2 — ESTRUTURA DO PROGRAMA

O COBOL corporativo normalmente segue:

IDENTIFICATION DIVISION
ENVIRONMENT DIVISION
DATA DIVISION
PROCEDURE DIVISION

🔥 O CORAÇÃO DA LÓGICA

PROCEDURE DIVISION

Aqui vive:

  • fluxo

  • validação

  • cálculos

  • repetições


☕ ETAPA 3 — SECTIONS E PARAGRAPHS

SECTION

Agrupa grandes áreas do programa.


PARAGRAPH

Divide tarefas menores.


💣 EXEMPLO CORPORATIVO

PROCESSAMENTO-SECTION.

    PERFORM LE-ARQUIVO
    PERFORM VALIDA-DADOS
    PERFORM CALCULA-BONUS
    PERFORM GRAVA-RELATORIO.

☕ VANTAGEM DISSO

✅ Organização
✅ Manutenção
✅ Reuso
✅ Facilidade de debugging
✅ Clareza


🔥 ETAPA 4 — LEITURA DE REGISTROS

Todo batch gira em torno disso.


💣 MODELO CLÁSSICO MAINFRAME

PERFORM UNTIL WS-FIM-ARQUIVO = 'S'

    PERFORM LE-REGISTRO

    IF WS-FIM-ARQUIVO NOT = 'S'
       PERFORM PROCESSA-REGISTRO
    END-IF

END-PERFORM.

☕ O QUE O INICIANTE PRECISA ENTENDER

O batch:

  • processa

  • repete

até acabar o arquivo.


🔥 ETAPA 5 — LAÇOS DE REPETIÇÃO

☕ 1. PERFORM UNTIL

Mais usado em batch.


Exemplo

PERFORM UNTIL WS-FIM = 'S'

Repete até condição ser verdadeira.


☕ 2. PERFORM VARYING

Semelhante ao FOR.


Exemplo

PERFORM VARYING WS-INDICE FROM 1 BY 1
UNTIL WS-INDICE > 10

☕ 3. PERFORM TIMES

Executa quantidade fixa.


Exemplo

PERFORM 5 TIMES
   DISPLAY 'MAINFRAME'
END-PERFORM.

💣 ERRO CLÁSSICO DE INICIANTE

Criar loop infinito.

Exemplo perigoso:

PERFORM UNTIL WS-FIM = 'S'

Sem alterar WS-FIM.

Resultado:

  • CPU presa

  • JOB travado

  • consumo absurdo


☕ ETAPA 6 — VALIDAÇÕES

🔥 MAINFRAME AMA VALIDAÇÃO

Sistemas bancários precisam ser paranoicos.


☕ TIPOS DE VALIDAÇÃO


Campo vazio

IF WS-NOME = SPACES

Número inválido

IF WS-IDADE IS NUMERIC

Faixa permitida

IF WS-IDADE >= 18

Status permitido

IF WS-STATUS = 'A'

💣 DICA CORPORATIVA

Sempre valide:

  • entrada

  • arquivo

  • cálculo

  • retorno

  • integração


☕ ETAPA 7 — CÁLCULO DE BÔNUS

Regra:

Se saldo > 1000:

  • bônus = 10%


🔥 EXEMPLO

IF WS-SALDO > 1000
   COMPUTE WS-BONUS = WS-SALDO * 0.10
ELSE
   MOVE 0 TO WS-BONUS
END-IF.

☕ ETAPA 8 — MODULARIZAÇÃO

💣 O SEGREDO DOS SISTEMAS GIGANTES

Separar responsabilidades.


🔥 EXEMPLO

LEITURA
VALIDAÇÃO
PROCESSAMENTO
RELATÓRIO
FINALIZAÇÃO

☕ ISSO REDUZ

✅ Bugs
✅ Retrabalho
✅ Confusão
✅ Dependência de pessoas


☕ ETAPA 9 — SUBROTINAS

Grandes empresas usam MUITO isso.


🔥 O QUE É SUBROTINA?

Programa auxiliar reutilizável.


Exemplo

CALCULA-JUROS
VALIDA-CPF
FORMATA-DATA

💣 VANTAGEM

Um único módulo pode ser usado por:

  • banco

  • cartão

  • seguros

  • investimentos


☕ CHAMADA DE SUBROTINA

CALL 'CALCJURO'

☕ ETAPA 10 — FUNÇÕES

Funções retornam valores.


🔥 EXEMPLO

FUNCTION CURRENT-DATE

☕ MUITAS FUNÇÕES MODERNAS COBOL

  • data

  • matemática

  • string

  • conversão


💣 O QUE O INICIANTE PRECISA EVITAR


🔥 1. GOTO EM EXCESSO

Código vira espaguete.


🔥 2. NOMES RUINS

Dificultam manutenção.


🔥 3. DUPLICAÇÃO

Mesmo código repetido.


🔥 4. FALTA DE VALIDAÇÃO

Causa bugs perigosos.


🔥 5. TENTAR FAZER TUDO NUM BLOCO

Divida em procedures.


☕ LABORATÓRIO PRÁTICO — FLUXO COMPLETO

💣 OBJETIVO

Processar 3 clientes.


🔥 PASSO 1 — INICIALIZAÇÃO

MOVE 0 TO WS-TOTAL
MOVE 'N' TO WS-FIM

🔥 PASSO 2 — LOOP PRINCIPAL

PERFORM UNTIL WS-FIM = 'S'

🔥 PASSO 3 — LEITURA

READ CLIENTE-ARQ

🔥 PASSO 4 — VALIDAÇÃO

IF WS-SALDO IS NUMERIC

🔥 PASSO 5 — PROCESSAMENTO

COMPUTE WS-BONUS = WS-SALDO * 0.10

🔥 PASSO 6 — ACUMULADOR

ADD WS-BONUS TO WS-TOTAL

🔥 PASSO 7 — RELATÓRIO

DISPLAY WS-TOTAL

☕ RESULTADO FINAL ESPERADO

O programa:

  • processa clientes

  • valida dados

  • calcula bônus

  • gera total


💣 ISSO É O INÍCIO DA ENGENHARIA MAINFRAME

Você acabou de praticar:

✅ lógica imperativa
✅ lógica procedural
✅ lógica estruturada


☕ COMO PROGRAMADORES MAINFRAME PENSAM?

Eles perguntam:

O dado entrou correto?
O arquivo está íntegro?
A rotina está modularizada?
O batch aguenta milhões de registros?
O operador conseguirá diagnosticar erro?

🔥 ISSO É ALTA PLATAFORMA

Não é apenas programar.

É:

  • previsibilidade

  • confiabilidade

  • rastreabilidade

  • engenharia


☕ CURIOSIDADES DO MUNDO REAL


💣 Muitos bancos ainda usam lógica escrita nos anos 80

E continuam funcionando.


💣 Um erro de loop pode consumir milhões em CPU

Por isso revisão é levada extremamente a sério.


💣 COBOL foi desenhado para manutenção humana

Legibilidade sempre foi prioridade.


💣 Grandes batches processam bilhões de registros

Tudo baseado nessa lógica.


☕ DESAFIO FINAL PARA O ALUNO

Tente adicionar:

✅ validação de idade
✅ tratamento de saldo negativo
✅ contador de clientes inválidos
✅ relatório final formatado
✅ cálculo de média


🔥 MISSÃO CONCLUÍDA

Você deu os primeiros passos no raciocínio que move:

  • bancos

  • governos

  • cartões

  • seguradoras

  • bolsas financeiras


💣 A GRANDE VERDADE DO MAINFRAME

Antes de aprender comandos…

☕ O PROGRAMADOR IBM Z PRECISA APRENDER A PENSAR COMO ENGENHEIRO.


domingo, 20 de novembro de 2022

Laboratório CI/CD para Coboleiros Padawans

 

Bellacosa Mainframe e o laboratorio pratico em CI/CD para mainframers

☕ Um Café no Bellacosa Mainframe

Laboratório CI/CD para Coboleiros Padawans

Bem-vindo ao laboratório CI/CD para Coboleiros Padawans, uma jornada prática criada para mostrar que Continuous Integration e Continuous Delivery não são conceitos exclusivos do mundo distribuído, mas práticas cada vez mais presentes no ecossistema IBM Z. O objetivo deste treinamento é capacitar o desenvolvedor COBOL Jr a compreender como Git, pipelines, automação, testes, Docker, Jenkins, Zowe e ferramentas modernas trabalham em conjunto para entregar aplicações com mais qualidade, velocidade e segurança.

A metodologia é baseada em aprendizado progressivo (Learning by Doing). Cada laboratório apresenta um desafio prático, seguido de sua solução comentada e de uma explicação relacionando os conceitos modernos ao cotidiano do desenvolvedor mainframe. A cada etapa, o aluno evolui do entendimento dos fundamentos de versionamento até a construção de pipelines completos semelhantes aos utilizados em bancos, seguradoras e grandes corporações.

Durante os exercícios, o participante será incentivado a experimentar, cometer erros, interpretar logs, analisar falhas de compilação, resolver conflitos de merge e compreender o impacto das alterações em programas COBOL, COPYBOOKs, JCLs e ambientes de desenvolvimento. Afinal, falhas fazem parte do processo de aprendizado e representam oportunidades para desenvolver habilidades de diagnóstico e resolução de problemas.

Como ponto de atenção, este laboratório não pretende substituir os processos específicos adotados por cada empresa. Cada organização possui suas próprias ferramentas, políticas de aprovação, padrões de desenvolvimento e modelos de implantação. O foco está em desenvolver uma mentalidade DevOps aplicada ao Mainframe, permitindo que o aluno compreenda os princípios por trás das ferramentas e consiga adaptar esse conhecimento a qualquer ambiente IBM Z moderno. O objetivo final é formar profissionais capazes de integrar a tradição e a robustez do COBOL com as práticas contemporâneas de engenharia de software.

20 Labs para levar um Desenvolvedor COBOL Jr do "DISPLAY 'HELLO'" até um Pipeline Enterprise IBM Z

"Ninguém aprende CI/CD lendo slides. Aprende quebrando pipelines, corrigindo builds e descobrindo por que um simples COPYBOOK pode parar uma esteira inteira."

Este laboratório foi pensado para quem conhece COBOL, JCL e o mundo IBM Z, mas nunca trabalhou com DevOps, Git, Docker ou CI/CD. A ideia é evoluir passo a passo, sempre fazendo analogias com o ambiente mainframe.


Filosofia

Cada laboratório possui:

  • 🎯 Objetivo

  • 📚 Conceitos

  • 🔨 Exercício

  • ✅ Solução

  • ⭐ Nível

Ao final dos 20 laboratórios o aluno terá contato com praticamente todo o ciclo moderno de desenvolvimento envolvendo aplicações COBOL.


LAB 01 — O que é um Pipeline?

Nível

Objetivo

Entender visualmente um Pipeline.

Exercício

Desenhe um fluxo para um programa COBOL.

Fonte COBOL

↓

Compilação

↓

LinkEdit

↓

Testes

↓

Homologação

↓

Produção

Solução

O aluno percebe que um Pipeline nada mais é que uma sequência automatizada de etapas.


LAB 02 — Git é o novo PDS

Objetivo

Entender Git usando conceitos de Mainframe.

Exercício

Compare:

PDS

Git Repository
Membro

Arquivo
Backup

Commit

Solução

O aluno entende que Git é um versionador e não um diretório de arquivos.


LAB 03 — Primeiro Commit

Criar um repositório.

git init

Adicionar

HELLO.CBL

Executar

git add .
git commit

Solução

Criado o primeiro histórico.


LAB 04 — Branch é igual ambiente paralelo

⭐⭐

Criar

feature/cartao

Modificar o programa.

Fazer Merge.

Solução

Entender desenvolvimento paralelo.


LAB 05 — Conflito de COPYBOOK

⭐⭐

Dois alunos alteram

CLIENTE.CPY

Realizar Merge.

Resolver conflito.

Solução

Aprender Merge Conflict.


LAB 06 — O Build Manual

⭐⭐

Criar um fluxo.

Compila

↓

Link

↓

Executa

↓

Testa

Executar manualmente.

Solução

Perceber quanto trabalho existe.


LAB 07 — Automatizando o Build

⭐⭐

Criar um script.

build.sh

que execute todas as etapas.

Solução

Primeira automação.


LAB 08 — Docker para Coboleiros

⭐⭐

Criar um container Ubuntu.

Entrar.

Instalar Git.

Executar scripts.

Solução

Entender Container.

Easter Egg:

Container lembra JOB Batch.


LAB 09 — Criando uma Docker Image

⭐⭐⭐

Criar

Dockerfile

Adicionar

Git

Java

Python

Construir.

Solução

Image pronta para Pipeline.


LAB 10 — Jenkins faz o JCL Moderno

⭐⭐⭐

Criar um Job.

Sempre que ocorrer

git push

executar

build.sh

Solução

Primeiro Pipeline.


LAB 11 — Pipeline com Erro

⭐⭐⭐

Inserir erro proposital.

DISPLAY "OI"

remover ponto.

Pipeline deve falhar.

Solução

Aprender Build Failed.


LAB 12 — Quality Gate

⭐⭐⭐

Executar análise estática.

Encontrar

  • variáveis mortas

  • código duplicado

  • GO TO desnecessário

Solução

Entender qualidade.


LAB 13 — Testes Automatizados

⭐⭐⭐⭐

Criar casos.

Entrada

100

Saída

Juros

Executar automaticamente.

Solução

Pipeline não depende do usuário.


LAB 14 — Integração com Banco

⭐⭐⭐⭐

Criar ambiente.

Docker

↓

Db2 Simulado

↓

Programa

Executar testes.

Solução

Primeiro teste integrado.


LAB 15 — Deploy Automatizado

⭐⭐⭐⭐

Pipeline publica automaticamente.

DEV

↓

QA

Solução

Entrega contínua.


LAB 16 — Rollback

⭐⭐⭐⭐

Deploy gera erro.

Voltar versão anterior.

Solução

Rollback automático.


LAB 17 — Pipeline Enterprise IBM Z

⭐⭐⭐⭐⭐

Adicionar

Git

↓

Jenkins

↓

DBB

↓

Compile

↓

Link

↓

Bind

↓

Deploy

Solução

Pipeline semelhante ao de grandes bancos.


LAB 18 — Pipeline Híbrido

⭐⭐⭐⭐⭐

Frontend

Docker

API

MQ

COBOL

Db2

Solução

Mostrar que o Mainframe faz parte do Pipeline.

Não está isolado.


LAB 19 — Pipeline Completo

⭐⭐⭐⭐⭐

Fluxo

Git Push

↓

Build

↓

Docker

↓

Sonar

↓

Testes

↓

Artifact

↓

Deploy DEV

↓

Deploy QA

↓

Aprovação

↓

Produção

Solução

Pipeline Enterprise.


LAB 20 — Missão Final

⭐⭐⭐⭐⭐

Criar um Pipeline completo.

Projeto:

Sistema Bancário.

Alterar

CLIENTE.CBL

Executar

  • Build

  • Testes

  • Merge

  • Docker

  • Jenkins

  • Publicação

  • Rollback

Documentar tudo.

Solução

O aluno entrega um Pipeline funcional semelhante ao utilizado em grandes instituições financeiras.


🏆 Desafio Bônus 1 — O Pipeline Quebrado

O instrutor entrega um pipeline com cinco falhas escondidas:

  • branch incorreta;

  • variável de ambiente ausente;

  • caminho inválido para um COPYBOOK;

  • etapa de testes desabilitada;

  • deploy apontando para o ambiente errado.

O objetivo é investigar logs, identificar a causa e restaurar a execução.

Competências desenvolvidas: leitura de logs, troubleshooting e análise de causa raiz.


🏆 Desafio Bônus 2 — O Detetive do COPYBOOK

Um único COPYBOOK foi alterado.

O aluno deve identificar:

  • quais programas precisam ser recompilados;

  • quais JCLs podem ser impactados;

  • quais testes devem ser executados.

Competências desenvolvidas: análise de dependências e impacto.


🏆 Desafio Bônus 3 — Pipeline Seguro

Adicionar ao pipeline:

  • aprovação obrigatória antes da produção;

  • Quality Gate mínimo (ex.: 80%);

  • bloqueio de merge se houver falha nos testes;

  • geração automática de relatório.

O objetivo é entender que CI/CD também envolve governança.


🎓 Projeto Final — O Banco Bellacosa

Ao final do curso, o aluno recebe uma aplicação COBOL composta por:

  • 12 programas COBOL;

  • 8 COPYBOOKs;

  • 6 JCLs;

  • 2 tabelas Db2;

  • 1 transação CICS;

  • repositório Git inicial.

A missão é modernizar o processo de entrega criando um pipeline completo que:

  • utilize Git com branches (main, develop e feature/*);

  • automatize build e testes;

  • execute análise de qualidade;

  • gere artefatos versionados;

  • promova automaticamente para DEV e QA;

  • exija aprovação para produção;

  • implemente rollback para a última versão estável;

  • documente toda a esteira.

Ao concluir esse projeto, o COBOL Jr terá percorrido uma jornada que começa com um simples git init e termina entendendo como grandes bancos entregam software crítico no IBM Z. Mais importante do que decorar comandos, ele terá desenvolvido a mentalidade de engenharia de software moderna, percebendo que, no universo Bellacosa Mainframe, o programa COBOL é apenas uma peça de uma engrenagem muito maior: uma esteira automatizada que garante qualidade, rastreabilidade e segurança do primeiro commit até a produção.