Czy istnieje termin na niezaimplementowany kod napisany przez kogoś innego do wypełnienia?

91

Czasami w ćwiczeniu programistycznym, generowaniu bojlera, umieszczaniu szyn prowadzących wokół zadań do wykonania przez młodszego programistę itp. Zdarza się, że programista otrzymuje niezaimplementowany kod i jest proszony o „wypełnienie pustego pola”. Na przykład test jednostkowy, który może się skompilować, ale nie powiedzie się, lub deklaracja klasy z pustymi metodami.

Czy istnieje wspólny termin na tę praktykę?

Brandon Arnold
źródło
Nie dokładnie to, o co pytasz, ale powiązane. Jeśli istnieją również skrypty testowe, które pokazują, czego oczekuje się od twojego kodu, to jest to znane jako Test Driven Development.
AJFaraday,
32
Dla każdego, kto zagłosował za zamknięciem: jasne, „nazwij to” może nie być szczególnie interesującym pytaniem. Pytanie to ma jednak obiektywną odpowiedź, która nie opiera się głównie na opiniach. Jako dowód przedstawiam poniżej swoją odpowiedź.
3
Powiedziałbym: „Straszna praktyka kodowania”.
Euforyczny
7
NotImplementedException :)
David Grinberg,
3
„Ćwiczenie dla czytelnika” wydaje się być podręcznikiem, jeśli mówisz o obsłudze błędów.
Phil Lello,

Odpowiedzi:

177

Masz na myśli skrót lub szkielet :

Kikut

Jest to zazwyczaj metoda lub funkcja z przeważnie pustym ciałem, która po prostu zwraca wartość fikcyjną, aby kod się skompilował.

Szkielet

Jest to metoda, w której zaimplementowano algorytm wysokiego poziomu, ale poszczególne części nie zostały zaimplementowane. Mogą to być puste bloki kodu lub referencyjne metody kodów pośredniczących (patrz wyżej), które ostatecznie wykonają podzadania. Jest to dobry sposób na wyrażenie projektu dla młodszego programisty, który może zmagać się z większym wysiłkiem projektowym, lub upewnienie się, że algorytm jest poprawny, zanim zainwestujesz zbyt dużo czasu w szczegóły niskiego poziomu.


Praktyka używania tych elementów kodu nazywa się stubowaniem lub tworzeniem szkieletu kodu .


źródło
3
Chociaż bardziej podoba mi się twoje określenie, myślę, że termin „rusztowanie” w Ruby on Rails to ta sama koncepcja.
dcorking
Pomyślałem również, że skrót jest odpowiednim słowem na to, ale nie byłem pewien, ponieważ dostaję odpowiedzi od innych w mojej pracy. Dziękuję Ci.
Brandon Arnold,
Jest to „odcinek”, jeśli jest wykonywany w kontekście akademickim. Sporządzono w kontekście zawodowym / komercyjnym, jest to „dług techniczny”.
aroth
10
@aroth to nie jest dług techniczny, jeśli kod nie działa - należy go zaimplementować. Dług techniczny oznacza źle napisany kod, który ostatecznie jest używany w środowisku produkcyjnym, co oznacza, że ​​wymaga znacznego wysiłku, aby dokonać poprawnej refaktoryzacji. Kod pośredniczący idealnie miałby niesprawny przypadek testowy, więc musi zostać zaimplementowany i przetestowany przed zwolnieniem w trakcie produkcji.
2
@BrandonArnold: Rozmawiając ze swoimi uczelniami, powinieneś używać słów, które rozumieją. Chyba że jesteś szefem.
Stig Hemmer,
42

Widziałem używany termin „ stub ”.

Na przykład uważam, że Eclipse automatycznie wstawia komentarz

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

do niesławnych automatycznie wygenerowanych kodów pośredniczących.

Zwróć także uwagę na użycie terminu „stub” w kontekście testów jednostkowych .

5gon12eder
źródło
2
„// TODO: stub wygenerowany automatycznie” Myślę, że.
immibis
Zdecydowanie przydatne, aby to wiedzieć. . .
Brandon Arnold,
17

W Visual Studio, podczas pisania kodu intellisense daje opcję „wygeneruj nowy kod pośredniczący”. Po wybraniu tej opcji program Visual Studio wygeneruje skrót / szkielet kodu dokładnie tak, jak opisano.

Microsoft określa to jako kod pośredniczący, więc nazwałbym te kody pośredniczące.

Podejrzeć
źródło