2
respostas

doutrinação anti-procedural FAKE

https://cursos.alura.com.br/course/java-introducao-orientacao-objetos/task/30953

pra responder certo a essas perguntas, tenho que me conter e escrever a resposta errada que o curso em sua doutrinação tacanha considera a correta.

Vejam, o velho mundo se chama procedural, de procedure - ou função, ou subrotina ou ainda, quando associado a uma classe ou instância de uma classe, de método. Tudo nome para uma mesma noção: um trecho de código parametrizado e autocontido.

pois bem, a respostinha vem com essa doutrinação:

"à medida que outros formulários precisam da mesma validação de CPF, seu código precisava ser duplicado (geralmente através do uso abusivo do recurso de Copy & Paste)"

como assim duplicado? o nome do troço é justamente programação procedural porque escrevemos procedures e funções UMA VEZ para serem chamadas de vários pontos diferentes passando parâmetros diferentes. Essa foi a grande revolução trazida por ALGOL Na década de 60, pois antes era o famoso código macarrônico baseado em GOTOs, isso sim um copia-e-cola desvairado.

vou além, é muito bonito falar em orientação a objeto e encapsulamento e herança como uma forma de reaproveitar código. Mas é impressão minha ou no mundo Java Enterprise esse reaproveitamente encapsulado de códigos via Herança foi sendo deixada de lado, para ao invés se copiar e reescrever trechos de código inteiros ao se implementar Interfaces? ironias do destino, não amigos? dá-lhe CTRL-C, CTRL-V no superior mundo orientado a objetos (nascido, como ALGOL, nos anos 60)...

2 respostas

Oi Ricardo, tudo bem? Até concordo que o termo procedural não é bem usado para o que gosta-se de descrever para a programação estruturada / sequencial, onde o copy & paste rola a solta. E isso me parece mais uma adoção confusa do mercado do que realmente da academia ou da história.

E é bem verdade que nada da programação orientada a objetos é novidade, eu particularmente gosto da explicação do Akita na séria de vídeos "Sua Linguagem NÃO É Especial!" do You Tube onde ele conta por cima a história de várias linguagens e suas relações, informando qual influenciou qual e em quê. A ideia foi mostrar realmente que as linguagens não tem anda de especial que surgiu. Fica a sugestão, caso fique curioso.

E acho até mesmo interessante como a Wikipedia lista os contrastes dos paradigmas de forma que o procedural se contrasta com o funcional e a estruturada é quem contrasta com a orientação a objetos.

Vou sugerir essa melhoria e observação pra que possamos melhorar nosso conteúdo.

Agradeço seu feedback e fico a disposição para quaisquer sugestões.

Um abraço e desculpe o acontecido.

oi Ricardo

Sou um dos autores do curso e você tem razão. As frases dos exercícios estão com um tom que não era a intenção e passa uma mensagem errada.

minha sugestão é mudar toda a linha:

à medida que outros formulários precisam da mesma validação de CPF, seu código precisava ser duplicado (geralmente através do uso abusivo do recurso de Copy & Paste)

por

à medida que outros formulários precisam da mesma validação de CPF, não era fácil de perceber que já havia procedimentos e funções que faziam esse trabalho, pois dados e funções não possuiam um vículo tão forte. isso poderia resultar em mais uma nova função ou trecho de código com responsabilidade parecida.

o que quero dizer é que no procedural dependemos de documentação e organização de maneira muito forte. nas linguagens orientadas a objeto ou com outros recursos de encapsulamento que não apenas funções, é mais fácil de ter esse controle com atributos privados, garantido que alguns passos/funcionalidades serão chamados antes de valores serem atribuídos ou mesmo lidos.