PESQUISA: Que tópicos você considera que um programador júnior, pleno ou sênior deve conhecer?

Photo by Emily Morter on Unsplash

Estamos fazendo uma pesquisa para entender que recursos do COBOL a comunidade de desenvolvedores considera que são essenciais para profissionais com diferentes níveis de experiência.

E você nos ajudará muito se puder participar.

Serão apresentados alguns conceitos e recursos da linguagem, e para cada um deles pedimos que você diga se…

  • Espera que um programador “júnior” conheça (entre zero e 5 anos de experiência);
  • Espera que um programador “pleno” conheça (entre 5 e 10 anos de experiência);
  • Espera que um programador “sênior” conheça (mais de 10 anos de experiência);
  • Pode ser ignorado, uma vez que você nunca ouviu falar ou nunca teve necessidade de utilizar.

Para evitar possíveis ambiguidades de nomenclatura e terminologia, para cada tópico apresentamos um exemplo de código, numa tentativa de deixar mais claro sobre o que estamos nos referindo.

Podemos começar?

 


 

1. 
Cláusulas opcionais do PROGRAM-ID (INITIAL, COMMON, RECURSIVE…):

Exemplo:
identification division.
program-id. scp0101 is initial.

2. 
Diferença entre arquivo sequencial e arquivo linear sequencial:

Exemplo:
select sca0102 assign to (…)
organization is line sequential
access mode is sequential.

3. 
Uso de FILE STATUS:

Exemplo:
select sca0101 assign to (…)
organization is sequential
file status is wt-st-sca0101
(…)
open input sca0101
if wt-st-sca0101 not = “00”
(…)

4. 
Processamento de arquivos abertos com I-O e EXTEND:

Exemplo:
open i-o sca0101
open extend sca0102

5. 
Delimitadores de escopo/comando (END-IF, END-PERFORM, END-READ, END-EVALUATE…):

Exemplo:
read sca0101 at end (…) not at end (…) end-read

6. 
Uso de RETURN-CODE:

Exemplo:
move 1 to return-code
stop run.

7. 
Comando EVALUATE:

Exemplo:
evaluate wt-nr-opcao
   when 1 (…)
   when 2 (…)
   when other (…)
end-evaluate

8. 
PERFORM "inline":

Exemplo:
perform varying wt-ix-ind from 1 by 1 until wt-ix-ind > 10
    (…)
end-perform

9. 
PERFORM WITH TEST AFTER:

Exemplo:
perform 1100-SUM-SALARY until wt-fl-last = “YES” with test after

10. 
Uso de EXIT PARAGRAPH e EXIT PERFORM:

Exemplo:
1100-SUM-SALARY.
    (…)
    if wt-fl-found = “YES”
        (…)
        exit paragraph
    end-if.

11. 
Diferença entre CALL USING BY CONTENT e CALL USING BY VALUE:

Exemplo:
call subprogram using by content variable1 variable2

12. 
Uso de CALL com USING e RETURNING:

Exemplo:
call subprogram using variable1 returning variable2

13. 
Construção de tabela interna com cláusula ASCENDING / DESCENDING KEY:

Exemplo:
01 WV-FORMAS-DE-PAGAMENTO occurs 100 ascending key is WV-CD-PAGTO indexed by WT-IX.
    03 WV-CD-PAGTO pic x(003).
    03 WV-DS-PAGTO pic x(030).

14. 
Uso de índice em tabelas internas (INDEXED BY):

Exemplo:
01 WV-FORMAS-DE-PAGAMENTO occurs 100 indexed by WT-IX.
    03 WV-CD-PAGAMENTO pic x(003).
    03 WV-DS-PAGAMENTO pic x(030).

15. 
Pesquisar tabelas internas usando SEARCH:

Exemplo:
search WV-FORMAS-DE-PAGAMENTO varying WT-IX
when WV-CD-PAGAMENTO(WT-IX) = CODIGO-PROCURADO
    (…)
end-search

16. 
Diferença entre SEARCH e SEARCH ALL:

Exemplo:
search all WV-FORMAS-DE-PAGAMENTO varying WT-IX
when WV-CD-PAGAMENTO(WT-IX) = CODIGO-PROCURADO
    (…)
end-search

17. 
Gerar relatórios com REPORT WRITER:

Exemplo:
report section.
rd QUARTERLY-PAY
controls are final, PRR-DEPARTMENT, PRR-EMPLOYEE
page limit is 66 lines
heading 3
first detail 5
01 type page header.

18. 
Classificar arquivos com INPUT / OUTPUT PROCEDURE:

Exemplo:
sort ARQUIVO on ascending key CAMPO1
input procedure PARAGRAFO1
output procedure PARAGRAFO2.

19. 
Unificar arquivos usando o comando MERGE:

Exemplo:
merge ARQUIVO on ascending key CAMPO1 using ENTRADA1 ENTRADA2 giving SAIDA1

20. 
Criação de telas com SCREEN SECTION:

Exemplo:
screen section.
01 ua00m01.
    03 ua00m01-0.
        05 line 001 col 001
            blank screen foreground-color cob-color-yellow value ‘Menu de Opcoes’.

21. 
Processamento de arquivos indexados (ORGANIZATION IS INDEXED, OPEN, READ, WRITE, REWRITE, DELETE…):

Exemplo:
select arquivo assign to (…)
organization is indexed
access mode is random
record key is chave1
alternate key is chave2 with duplicates

22. 
Processamento de arquivos indexados em modo dinâmico (ACCESS MODE IS DYNAMIC, START, READ NEXT…):

Exemplo:
start ARQUIVO key not less than CHAVE1
read ARQUIVO next (…)

23. 
Uso de funções intrínsecas:

Exemplo:
move function CURRENT-DATE to WT-DT-SISTEMA

24. 
Codificação de funções (FUNCTION-ID):

Exemplo:
identification division.
function-id. FATORIAL.
(…)
procedure division using by reference NUMERO returning FATORIAL.

25. 
Codificação de programas em modo "free format":

Exemplo:
identification division.
program-id. gtc001.
*> Esta e’ uma linha de comentario
environment division.

26. 
Variáveis de nível 78, 88, 66…

Exemplo:
01 wt-st-cra0201 pic x(002) value spaces.
    88 cra0201-leitura-ok value “00”.
    88 cra0201-eof value “10”.

27. 
Conhecer recursos obsoletos ou não recomendados (GO TO DEPENDING ON, ALTER, SECTIONS, DECLARATIVES…):

Exemplo:
alter PARAGRAFO1 to proceed to PARAGRAFO2

28. 
Modificadores de referência:

Exemplo:
move CAMPO-ORIGEM(1:5) to CAMPO-DESTINO
move OUTRO-CAMPO-ORIGEM(1:WT-TAMANHO) to OUTRO-CAMPO-DESTINO


E é só isso…

Agora é só clicar nesse botão de Submit aí embaixo para enviar as suas respostas…

2 comentários sobre “PESQUISA: Que tópicos você considera que um programador júnior, pleno ou sênior deve conhecer?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *