Como equipes de desenvolvimento conseguem gerar módulos de software sem escrevê-los manualmente? Num projeto…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Reconhecer o conceito de metaprogramação como uma forma de generalização na construção de programas, permitindo que algoritmos sejam entrada ou saída para outros algoritmos.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Como equipes de desenvolvimento conseguem gerar módulos de software sem escrevê-los manualmente? Num projeto ágil, uma equipe criou um script que lê um arquivo de especificação em JSON e produz automaticamente estruturas de diretórios, classes e funções correspondentes. Esse processo reduziu o tempo de criação de novos recursos e padronizou a arquitetura do sistema. Para integração contínua, mantêm também scripts que executam testes automatizados e ferramentas que inspecionam o código em busca de padrões. Identifique qual exemplo caracteriza metaprogramação, conforme descrito no texto-base.
- A) Uso de função de ordem superior para tratar dados de forma abstrata
- B) Aplicação de biblioteca de templates para inserir valores em strings
- C) Uso de reflexão para obter metadados de objetos em tempo de execução
- D) Script que lê especificação e gera módulos de código automaticamente
- E) Execução de scripts de testes automatizados para verificar comportamentos
✅ Resposta correta: alternativa D
Resolução passo a passo
- Metaprogramação é a técnica em que um programa lê, manipula ou gera outro código, tratando o código como dado. No texto, a equipe criou um script que lê um arquivo de especificação em JSON e produz automaticamente diretórios, classes e funções. Isso é exatamente um programa gerando código, o que caracteriza metaprogramação.
- Confronto com o gabarito oficial. Resolvi a questão por conta própria e cheguei à alternativa D, coincidindo com o gabarito oficial.
- Por que as outras estão erradas. A: função de ordem superior é um recurso de programação funcional que recebe ou retorna funções, sem gerar código novo. B: templates inserem valores em strings, o que é substituição de texto, não geração de módulos a partir de uma especificação. C: reflexão consulta metadados de objetos em tempo de execução, mas não cria código. E: executar testes automatizados verifica comportamentos do software e não gera nenhum módulo, por isso não é metaprogramação.
- Conclusão. O elemento-chave do texto é a geração automática de código a partir de uma especificação, presente apenas na alternativa D.
💡 Dica: Identifique o exemplo que demonstra geração automática de código a partir de especificação.
Alternativa por alternativa
O aluno associa abstração e tratamento genérico de dados à ideia de metaprogramação, confundindo programação funcional com geração de código.
O aluno acha que, por haver templates no texto, qualquer uso de template seja metaprogramação, sem perceber que inserir valores em strings não produz código novo.
O aluno confunde reflexão, que apenas inspeciona metadados em tempo de execução, com metaprogramação, que gera ou modifica código.
Por que engana: Confundir metaprogramação com uso simples de funções ou testes automatizados.
Geração de código a partir de algoritmo como entrada é metaprogramação, segundo o texto-base
O aluno se deixa levar pelo destaque dado aos testes automatizados no texto e supõe que qualquer script automatizado seja metaprogramação, sem notar que testes não geram código.
Raio-X da questão
metaprogramação em software
avaliacao
programação básica em software
Estude conceitos de metaprogramação e geração automática de código.
Confundir metaprogramação com uso simples de funções ou testes automatizados.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Por que certas ferramentas de desenvolvimento conseguem gerar trechos de código automaticamente, adaptando-se a…
- Em levantamento interno recente, 85% dos desenvolvedores de uma empresa de software relatou gasto excessivo de horas…
- Dados ilustrativos: em pesquisa com 50 startups de tecnologia, 30% relataram empregar técnicas em que componentes de…
- Narrativa em primeira pessoa: trabalhei em um projeto interno de automação de APIs que visava reduzir o tempo de…
- Uma equipe brasileira desenvolve uma ferramenta para acelerar a criação de sistemas. O usuário registra, em um arquivo…
- Na startup brasileira CodeArt, uma equipe busca reduzir o tempo de desenvolvimento de um sistema de atendimento. Para…
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
