Esiste un termine per il codice non implementato che è stato scritto per essere compilato da qualcun altro?


91

A volte in un esercizio di programmazione, nella generazione di una piastra di caldaia, nell'introduzione di rotaie di guida intorno ai compiti da implementare per un programmatore junior, ecc., Capita che al programmatore venga presentato un codice non implementato e gli venga detto di "riempire lo spazio vuoto". Ad esempio, un test unit che può essere compilato, ma non riesce, o una dichiarazione di classe con metodi vuoti.

C'è un termine comune per questa pratica?


Non esattamente quello che stai chiedendo, ma correlato. Se esistono anche script di test che mostrano cosa dovrebbe fare il tuo codice, allora è noto come Test Driven Development.
AJFaraday,

32
Per chiunque abbia votato per chiudere: certo, "nominare questa cosa" potrebbe non essere una domanda particolarmente interessante . Tuttavia, questa domanda ha una risposta obiettiva che non è principalmente basata sull'opinione pubblica. Come prova, presento la mia risposta di seguito.

3
Direi "Terribile pratica di programmazione".
Euforico


3
"Esercizio per il lettore" sembra essere l'approccio da manuale se si parla di gestione degli errori.
Phil Lello,

Risposte:


177

Ti riferisci a uno stub o scheletro :

mozzicone

Questo è in genere un metodo o una funzione con un corpo per lo più vuoto che restituisce semplicemente un valore fittizio in modo da compilare il codice.

Scheletro

Questo è un metodo che ha implementato un algoritmo di alto livello, ma le singole parti non vengono implementate. Possono essere blocchi di codice vuoti o metodi di stub di riferimento (vedi sopra) che alla fine eseguiranno attività secondarie. Questo è un buon modo per esprimere una progettazione software per un programmatore junior che può lottare con il più grande sforzo di progettazione o per assicurarsi di avere l'algoritmo corretto prima di investire troppo tempo nei dettagli di basso livello.


La pratica di utilizzare questi elementi di codice si chiamerebbe stub o creando uno scheletro di codice .


3
Anche se mi piacciono i termini, penso che il termine "impalcature" in Ruby on Rails sia lo stesso concetto.
Dal

Pensavo anche che stub fosse la parola giusta per questo, ma non ero sicuro perché mi stavo respingendo dagli altri nel mio lavoro. Grazie.
Brandon Arnold

È uno "stub" se fatto in un contesto accademico. Fatto in un contesto professionale / commerciale, è "debito tecnico".
aroth

10
@aroth non è un debito tecnico se il codice non funziona - deve essere implementato. Il debito tecnico implica un codice scritto male che finisce per essere usato in un ambiente di produzione, il che significa che richiede uno sforzo significativo per refactoring correttamente. Idealmente, uno stub avrebbe un caso di test fallito, quindi deve essere implementato e testato prima di essere rilasciato alla produzione.

2
@BrandonArnold: quando parli con i tuoi college, dovresti usare parole che capiscono. A meno che tu non sia il capo.
Stig Hemmer

42

Ho visto il termine " stub " in uso.

Ad esempio, credo che Eclipse inserisca automaticamente un commento

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

nei suoi famigerati tronconi auto-generati.

Si noti inoltre l'uso del termine "stub" nel contesto del test unitario .


2
"// TODO: stub del metodo generato automaticamente" Penso.
user253751

Decisamente utile saperlo. . .
Brandon Arnold,

17

In Visual Studio, quando scrivi il codice intellisense ti darà l'opzione "genera un nuovo stub di metodo". Quando si sceglie questa opzione, Visual Studio genererà uno stub / scheletro di codice esattamente come descritto.

Microsoft si riferisce a questo come uno stub, quindi definirei anche questi stub.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.