✨ Bem-vindo ao meu espaço! ✨ Este blog é o diário de um otaku apaixonado por animes, tecnologia de mainframe e viagens. Cada entrada é uma mistura única: relatos de viagem com fotos, filmes, links, artigos e desenhos, sempre buscando enriquecer a experiência de quem lê. Sou quase um turista profissional: adoro dormir em uma cama diferente, acordar em um lugar novo e registrar tudo com minha câmera sempre à mão. Entre uma viagem e outra, compartilho também reflexões sobre cultura otaku/animes
domingo, 24 de novembro de 2019
Tunel pedonal : Teste de Geração de Vídeo Dinamico
domingo, 13 de setembro de 2015
🧠 Structured Programming (Dijkstra) — A Revolução Silenciosa que Salvou o Software
| Bellacosa Mainframe fala sobre o legado Dijkstra : Structured Programming |
🧠 Structured Programming (Dijkstra) — A Revolução Silenciosa que Salvou o Software
☕ Um Café no Bellacosa Mainframe
Nos primórdios da programação, escrever código era mais parecido com montar uma gambiarra elétrica do que com engenharia. Fios cruzados, saltos imprevisíveis e um único erro podia derrubar tudo. Foi nesse caos que surgiu uma ideia simples — e revolucionária:
💡 Programas deveriam ser estruturados, previsíveis e compreensíveis.
O nome por trás dessa virada?
👉 Edsger W. Dijkstra — um dos maiores gênios da computação.
🏛️ Antes da Revolução: O Velho Oeste do Código
Programas eram gigantescos blocos lineares
Cheios de saltos incondicionais
Manutenção era um pesadelo
Bugs eram quase impossíveis de rastrear
O principal culpado? 😈
👉 O famigerado GOTO
Um comando que dizia:
“Pare o que está fazendo e vá executar ali no meio do programa.”
Resultado: o famoso spaghetti code 🍝
💣 A Carta que Mudou Tudo
Em 1968, Dijkstra publicou uma carta histórica:
👉 “Go To Statement Considered Harmful”
Essa publicação virou um terremoto intelectual na área.
Ele não estava apenas criticando um comando — estava propondo uma nova forma de pensar software.
🧱 O Conceito Central: Programas Devem Ter Estrutura
Structured Programming defende que todo programa pode ser construído usando apenas três estruturas de controle:
1️⃣ Sequência
Executar instruções na ordem.
A
B
C
2️⃣ Seleção (Decisão)
IF condição
A
ELSE
B
END-IF
3️⃣ Iteração (Repetição)
WHILE condição
A
END-WHILE
💡 Só isso. Sem saltos caóticos.
🏗️ O Impacto no Mainframe
![]() |
| Folha de Codificacao COBOL |
![]() |
| Terminal 3270 |
![]() |
| Programa COBOL |
Structured Programming influenciou diretamente:
COBOL moderno (COBOL-74 em diante)
Pascal (projetado para ensino estruturado)
C
Ada
praticamente todas as linguagens posteriores
No COBOL, surgiram práticas como:
PERFORM estruturado
END-IF, END-PERFORM
eliminação de GO TO sempre que possível
💬 Nos ambientes corporativos, isso foi decisivo para sistemas críticos sobreviverem décadas.
☕ Comentário Bellacosa Mainframe
Se você já abriu um programa legado cheio de:
GO TO ERRO-999
GO TO SAIDA
GO TO VOLTA-LOOP
GO TO TRATA-ABEND
Você sabe exatamente por que Dijkstra virou uma lenda 😅
Structured Programming não é frescura acadêmica.
👉 É o que permite um sistema bancário rodar 40 anos sem colapsar.
🕵️ Curiosidades e Bastidores
🧩 1) Dijkstra odiava computadores “bagunçados”
Ele acreditava que programação deveria ser uma disciplina matemática rigorosa.
Chegou a dizer que:
“Testar pode mostrar a presença de bugs, nunca sua ausência.”
✍️ 2) Ele escrevia à mão
Sim — muitos de seus algoritmos eram desenvolvidos no papel antes de qualquer implementação.
🧮 3) Também criou o algoritmo de caminho mínimo
👉 O famoso Algoritmo de Dijkstra, base de roteamento e GPS.
🧨 4) Nem todo mundo gostou da crítica ao GOTO
Programadores da época reagiram com:
indignação
sarcasmo
artigos contra
debates acalorados
Hoje parece óbvio. Na época, foi uma guerra cultural.
🐣 Easter Egg Mainframe
Mesmo em sistemas altamente estruturados…
👉 GO TO nunca morreu completamente.
Em COBOL legado, ele aparece como:
fuga de erro
tratamento de exceções improvisado
controle de fluxo antigo
patches históricos
É o equivalente ao:
“Não encoste nisso que está funcionando.”
🤫 Fofoquice Histórica
Dijkstra não gostava de popularização excessiva da programação.
Ele acreditava que:
👉 nem todos deveriam programar
👉 programação é atividade intelectual profunda
👉 más práticas se espalham rápido demais
Hoje, com milhões de devs no mundo… imagine o que ele diria 😄
🚀 Por que isso ainda importa HOJE?
Structured Programming é a base de:
Clean Code
Arquitetura de Software
Boas práticas corporativas
Programação orientada a objetos
Sistemas críticos
Segurança e confiabilidade
Sem essa revolução, software moderno seria inviável.
✅ Conclusão
Structured Programming não é apenas um capítulo da história.
👉 É o alicerce invisível de praticamente todo software sério já escrito.
No mundo mainframe, especialmente, ela foi a diferença entre:
💀 sistemas incontroláveis
e
🏦 infraestruturas que sustentam economias inteiras
terça-feira, 12 de maio de 2015
Como Não Se Perder no Mainframe (e Ainda Brilhar em Produção) ☕
| Bellacosa Mainframe apresenta um manual de sobrevivencia para um padawan em mainframe |
🔥 Manual de Sobrevivência do Programador COBOL Iniciante
Como Não Se Perder no Mainframe (e Ainda Brilhar em Produção) ☕
Entrar no mundo COBOL Mainframe é como desembarcar em uma usina nuclear em pleno funcionamento: tudo é estável, poderoso… e absolutamente implacável com erros.
Mas respire.
Milhões de profissionais passaram por isso antes — e sobreviveram muito bem 😄
Este é o guia que eu gostaria que todo iniciante recebesse no primeiro dia.
🧠 1) Entenda onde você está pisando
Você não está em um ambiente comum de desenvolvimento.
Aqui existem:
✔ Sistemas rodando há décadas
✔ Código crítico para negócios bilionários
✔ Processos batch noturnos gigantescos
✔ Auditoria pesada
✔ Zero tolerância para “gambiarras”
No Mainframe:
“Se funciona há 20 anos, mexa com extremo respeito.”
🖥️ 2) Domine o ecossistema antes da linguagem
COBOL sozinho não faz nada.
Você precisa entender o ambiente z/OS:
-
TSO/ISPF
-
JCL
-
Datasetes
-
JOBs batch
-
SDSF
-
Conceitos de spool
-
Bibliotecas PDS/PDSE
Sem isso, você fica perdido mesmo sabendo programar.
📜 3) Aprenda a ler código antigo (muito antigo)
Grande parte do seu trabalho inicial será manutenção.
Você verá:
😅 Variáveis com nomes estranhos
😅 GO TO espalhado
😅 Comentários de 1989
😅 Copybooks gigantes
😅 Lógica de negócio implícita
Dica de ouro:
👉 Comece pelo fluxo principal (MAIN-LOGIC)
👉 Siga os PERFORMs
👉 Ignore detalhes até entender o todo
🧱 4) Respeite os padrões da empresa
Cada organização tem seu próprio guia de estilo.
Nunca chegue “modernizando tudo”.
Faça primeiro:
✔ Entenda o padrão local
✔ Copie o estilo existente
✔ Siga nomenclaturas
✔ Use templates corporativos
No Mainframe, consistência vale mais que criatividade.
🧮 5) Entenda arquivos — eles são o coração do batch
Processamento batch gira em torno de datasets.
Você precisa dominar:
-
Sequential files
-
VSAM
-
Leitura e escrita
-
EOF (fim de arquivo)
-
Layouts de registro
-
Controle de erro
Um erro de layout pode destruir dados sem aviso.
🔁 6) PERFORM é seu melhor amigo
Evite ao máximo:
🚫 GO TO
🚫 Lógica confusa
🚫 Saltos imprevisíveis
Prefira fluxo estruturado:
✔ PERFORM UNTIL
✔ PERFORM VARYING
✔ Parágrafos bem nomeados
Código previsível é código seguro.
🧠 7) Use nomes que contam a história
Bons nomes reduzem metade do esforço de manutenção.
Compare:
❌ X1, X2, VARA
✔ WS-SALDO-CONTA
✔ FL-FIM-ARQUIVO
✔ CNT-REG-LIDOS
Se alguém entende sem perguntar, você venceu.
📦 8) COPYBOOKs são contratos
Copybooks definem layouts compartilhados.
Mexer neles pode impactar dezenas ou centenas de programas.
Antes de alterar:
⚠ Verifique dependências
⚠ Consulte responsáveis
⚠ Avalie impacto sistêmico
Alterar copybook sem análise é receita para incidente.
🛑 9) Teste como se produção dependesse disso
(porque depende)
Um JOB errado pode:
💸 Gerar pagamentos indevidos
📉 Corromper base de dados
📊 Produzir relatórios incorretos
🚨 Acionar auditoria
Teste cenários:
✔ Arquivo vazio
✔ Dados inválidos
✔ Limites máximos
✔ Exceções
📊 10) Leia o output do JOB — sempre
Após rodar, verifique:
-
Return codes
-
Mensagens
-
Contagem de registros
-
Warnings
-
Dumps
Nunca assuma que “deu certo”.
🧯 11) Aprenda a interpretar ABENDs
ABEND não é fracasso — é informação.
Códigos como:
-
S0C7 → erro numérico
-
S0C4 → acesso inválido de memória
-
S013 → problema de arquivo
Dominar isso acelera sua evolução absurdamente.
🤝 12) Faça amizade com operadores e analistas experientes
Mainframe é uma cultura colaborativa.
Operadores conhecem o comportamento real dos JOBs.
Veteranos conhecem os sistemas por dentro.
Uma conversa pode economizar dias de tentativa e erro.
⏳ 13) Tenha paciência — aprendizado é cumulativo
No início, tudo parece lento:
-
Compilar leva tempo
-
JOBs entram em fila
-
Ambientes são controlados
-
Mudanças passam por aprovação
Mas isso existe para garantir estabilidade.
☕ Filosofia final de sobrevivência
Ser programador COBOL não é apenas saber sintaxe.
É ser guardião de sistemas críticos.
Você está mantendo a infraestrutura invisível que faz o mundo financeiro e governamental funcionar.
“Se ninguém percebe seu trabalho, provavelmente está perfeito.”
⭐ Conclusão
O iniciante que sobrevive no Mainframe não é o mais brilhante — é o mais disciplinado.
Com o tempo, você descobrirá algo surpreendente:
👉 COBOL não é ultrapassado
👉 É simplesmente implacavelmente confiável
E dominar esse ambiente abre portas raras e valiosas.



