Есть ли термин для неосуществленного кода, который был написан для кого-то еще, чтобы заполнить?

91

Иногда в упражнении по программированию, генерации шаблонов, наведении руководящих указаний на задачи, которые должен выполнять младший программист, и т. Д., Случается, что программисту представляется невыполненный код и ему говорят «заполнить пробел». Например, модульный тест, который может быть скомпилирован, но не выполнен, или объявление класса с пустыми методами.

Есть ли общий термин для этой практики?

Брэндон Арнольд
источник
Не совсем то, что вы спрашиваете, но связано. Если имеются также тестовые сценарии, которые показывают, что ожидается от вашего кода, то это называется Test Driven Development.
AJFaraday
32
Для тех, кто голосовал, чтобы закрыть: конечно, «назвать эту вещь» не может быть особенно интересным вопросом. Тем не менее, этот вопрос имеет объективный ответ, который не основывается главным образом на мнении. В качестве доказательства я представляю свой ответ ниже.
3
Я бы сказал «ужасная практика кодирования».
Euphoric
7
NotImplementedException :)
Восстановить Монику
3
«Упражнение для читателя» кажется подходом из учебника, если вы говорите об обработке ошибок.
Фил Лелло

Ответы:

177

Вы имеете в виду заглушку или скелет :

огрызок

Обычно это метод или функция с почти пустым телом, которое просто возвращает фиктивное значение, поэтому код будет компилироваться.

остов

Это метод, в котором реализован алгоритм высокого уровня, но отдельные части остаются нереализованными. Это могут быть пустые блоки кода или ссылочные методы-заглушки (см. Выше), которые в конечном итоге будут выполнять подзадачи. Это хороший способ выразить дизайн программного обеспечения для начинающего программиста, который может бороться с большими усилиями по разработке, или для того, чтобы убедиться в правильности алгоритма, прежде чем тратить слишком много времени на детали низкого уровня.


Практика использования этих элементов кода будет называться заглушкой или созданием скелета кода .


источник
3
Хотя мне больше нравятся ваши термины, я думаю, что термин «строительные леса» в Ruby on Rails - это то же понятие.
dcorking
Я также думал, что заглушка было подходящим словом для этого, но не был уверен, потому что меня отталкивали от других на моей работе. Спасибо.
Брэндон Арнольд
Это «заглушка», если сделано в академическом контексте. Сделано в профессиональном / коммерческом контексте, это «технический долг».
Аромат
10
@ aroth это не технический долг, если код не работает - он должен быть реализован. Технический долг подразумевает плохо написанный код, который в конечном итоге используется в производственной среде, а это требует значительных усилий для правильного рефакторинга. У заглушки в идеале должен быть неудачный контрольный пример, поэтому он должен быть реализован и протестирован до того, как он будет запущен в производство.
2
@BrandonArnold: при разговоре с колледжами вы должны использовать слова, которые они понимают. Если вы не босс.
Стиг Хеммер
42

Я видел, как используется термин « заглушка ».

Например, я считаю, что Eclipse автоматически вставляет комментарий

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

в его печально известные автоматически генерируемые, ну, окурки.

Также обратите внимание на использование термина «заглушка» в контексте модульного тестирования .

5gon12eder
источник
2
"// TODO: автоматически генерируемый метод заглушки", думаю.
user253751
Определенно полезно знать это. , ,
Брэндон Арнольд
17

В Visual Studio при написании кода intellisense предоставит вам опцию «генерировать новый метод-заглушку». Когда вы выбираете эту опцию, Visual Studio будет генерировать заглушку / скелет кода в точности так, как вы описали.

Microsoft называет это заглушкой, поэтому я бы также назвал эти заглушки.

шпионить
источник