Existe um termo para código não implementado que foi escrito para outra pessoa preencher?

91

Às vezes, em um exercício de programação, geração de clichê, colocando trilhos de guia em torno das tarefas que um programador júnior implementa etc., acontece que o programador recebe código não implementado e é instruído a "preencher o espaço em branco". Por exemplo, um teste de unidade que pode compilar, mas falha, ou uma declaração de classe com métodos vazios.

Existe um termo comum para essa prática?

Brandon Arnold
fonte
Não é exatamente o que você está perguntando, mas relacionado. Se também houver scripts de teste em vigor que mostrem o que seu código deve fazer, ele será conhecido como Desenvolvimento Orientado a Testes.
precisa saber é o seguinte
32
Para quem votou no fechamento: com certeza, "nomear essa coisa" pode não ser uma pergunta especialmente interessante . No entanto, essa pergunta tem uma resposta objetiva que não é primariamente baseada em opiniões. Como prova, apresento minha resposta abaixo.
3
Eu diria "Prática terrível de codificação".
Euphoric
7
NotImplementedException :)
David Grinberg 9/16
3
"Exercício para o leitor" parece ser a abordagem do livro didático, se você estiver falando sobre tratamento de erros.
Phil Lello

Respostas:

177

Você está se referindo a um esboço ou esqueleto :

Stub

Normalmente, é um método ou função com um corpo quase vazio que simplesmente retorna um valor fictício para que o código seja compilado.

Esqueleto

Este é um método que possui um algoritmo de alto nível implementado, mas partes individuais são deixadas não implementadas. Eles podem ser blocos de código vazios ou métodos de stub de referência (veja acima) que eventualmente executarão subtarefas. Essa é uma boa maneira de expressar um design de software para um programador júnior que pode ter dificuldades com o esforço maior de design ou para garantir que você tenha o algoritmo correto antes de investir muito tempo nos detalhes de baixo nível.


A prática de usar esses elementos de código seria chamada stubbing ou criação de um esqueleto de código .


fonte
3
Embora eu goste mais dos seus termos, acho que o termo 'andaime' no Ruby on Rails é o mesmo conceito.
dcorking
Eu também pensei que stub era a palavra certa para isso, mas não tinha certeza porque estava me afastando dos outros no meu trabalho. Obrigado.
Brandon Arnold
É um "esboço" se feito em um contexto acadêmico. Feito em um contexto profissional / comercial, é "dívida técnica".
Aroth 10/03/16
10
@aroth não é dívida técnica se o código não funcionar - ele deve ser implementado. A dívida técnica implica um código mal escrito que acaba sendo usado em um ambiente de produção, o que significa que exige um esforço significativo para refatorar corretamente. Idealmente, um stub teria um caso de teste com falha, portanto ele deve ser implementado e testado antes de ser liberado na produção.
2
@BrandonArnold: Ao conversar com suas faculdades, você deve usar as palavras que elas entendem. A menos que você seja o chefe.
Stig Hemmer
42

Eu já vi o termo " esboço " sendo usado.

Por exemplo, acredito que o Eclipse insere automaticamente um comentário

String getName() {
    // TODO: Auto-generated method stub
    return null;
}

em seus infames stubs gerados automaticamente.

Observe também o uso do termo "stub" no contexto de teste de unidade .

5gon12eder
fonte
2
"// TODO: stub de método gerado automaticamente", eu acho.
immibis 9/03/16
Definitivamente útil saber disso. . .
Brandon Arnold
17

No Visual Studio, ao escrever o código intellisense, você terá a opção "gerar um novo esboço de método". Quando você escolhe essa opção, o Visual Studio gera um esboço / esqueleto de código exatamente como você descreveu.

A Microsoft se refere a isso como um esboço, então eu também chamaria esses esboços.

Snoop
fonte