Foo bar baz что это
Перейти к содержимому

Foo bar baz что это

  • автор:

Почему во многих примерах функции называют foo?

Часто вижу в различной литературе, видеоуроках, статьях в интернете и прочем, что демонстративные функции и методы носят название foo . почему именно foo ? Что это значит? И откуда появилось это понятие?

Отслеживать
149k 12 12 золотых знаков 59 59 серебряных знаков 132 132 бронзовых знака
задан 14 авг 2016 в 20:42
7,688 17 17 золотых знаков 70 70 серебряных знаков 131 131 бронзовый знак
14 авг 2016 в 21:00
ассоциация: stackoverflow.com/questions/4868904
27 фев 2017 в 17:36
простите, а какое отношение это имеет к программированию? по-моему весьма косвенное
11 авг 2017 в 7:21
@MaxU зачем python, если уже любой-язык?
14 мар 2018 в 3:14
@NickVolynkin, откатил изменение.
14 мар 2018 в 6:33

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Скорее всего слова foo , bar и baz родились в комиксе Smokey Stover and Pogo в конце 30-х годов 20-го века (как правильно заметил @AnT ) и, благодаря своей популярности, стали использоваться технарями из MIT

What’s Foo? My uncle found this word engraved on the bottom of a jade statue in San Francisco’s China town. The word Foo means Good-Luck.

Что такое Foo? Мой дядя нашел это слово выгравированным на дне нефритовой статуэтки в «China town» в Сан Франциско. И обозначает (переводится) оно «удача» или «удачи!».

Вот очень подробный и развернутый ответ на этот вопрос в английской версии StackOverflow. В этом ответе есть воспоминания людей об употреблении слов foo , bar , baz , foobar , которые работали непосредственно в Tech Model Railroad Club (сокращенно TRMC) или, несколько позже, просто в кругу MIT в 1960-1990-х годах.

Также в популяризации данных слов сыграла роль военная аббревиатура FUBAR («Fucked Up Beyond All Repair», что можно перевести как «ремонту не подлежит», что относилось к военной технике, либо «Fucked Up Beyond All Recognition» — речь шла о людских жертвах, которые невозможно опознать), которая появилась во время второй мировой войны и по слухам была придумана неким рядовым, которого «задолбали» всякие военные аббревиатуры.

Технари из TRMC клуба в MIT использовали слово «FOO» для обозначения ситуаций когда была необходима аварийная остановка системы. В случае, когда кто-нибудь нажимал один из аварийных выключателей на системном табло вместо времени появлялась надпись «FOO» и поэтому эти выключатели назвали «Foo switches». Позже в этом клубе стали использовать кнопки с подписями «FOO» и «BAR» (уже как дань традиции), и использовались они в самых разных ситуациях.

Впоследствии это стало использоваться в IT мире как «placeholders», то есть для названия переменных/классов в тех случаях, когда это не важно (например в примерах) или когда на ум ничего лучшего не приходит.

P.S.: также существует неподтвержденная версия, что «FOOBAR» происходит от немецкого «furchtbar» (ужасно).

«Foo» и «bar»: как в программировании появились два самых популярных «зарезервированных имени»

Обложка поста «Foo» и «bar»: как в программировании появились два самых популярных «зарезервированных имени»

Задумывались ли вы о том, откуда в программировании появились «зарезервированные имена» foo и bar? Недавно такой вопрос был задан на Stack Overflow, и, помимо лучшего ответа, мы собрали несколько различных мнений по этому поводу.

На Stack Overflow был задан вопрос:

Вот лучший пользовательский ответ:

Вот описание Эткинсона (в оригинале):

Вот что говорит RFC 3092:

Следите за новыми постами по любимым темам

Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.

Подписаться на тег

Stack Overflow

Подписаться на тег

Что думаете?
7 комментариев
Сначала интересные

Аватар пользователя Роман Будзило

26 апр 2021 26 апр 2021 в 14:25

Переменная не может быть бессмысленной. Для циклов используется i (от итерации) и далее j, k. Если переменная что-то хранит пусть называется осмысленно, даже если это будет KolvoZapisei. Это в любом случае лучше, чем foo или bar. А то наплодит один умник в разных местах переменных foo, да ещё и глобальных, а другой рефакторинг запустит, но только в одном юните. В В общем, ребята, не используйте это.

Метапеременные

Метапеременные — это слова-заменители, которые применяются в технических текстах для обозначения чего-либо, что может стоять на их месте, метапеременные часто используются в программировании.

Обычно используют осмысленные имена метапеременных. Например, описание команды переименования файла может выглядеть следующим образом:

mv source target

Здесь source и target — метапеременные, обозначающие имя файла до (source) и после (target) переименования. Однако часто используются и слова, не несущие смысловой нагрузки, foo является каноническим примером.

Использование метапеременных в тексте аналогично использованию в математике букв x, y и z для неизвестных переменных и a, b и c для неизвестных констант. Метапеременные можно рассматривать как переменные метаязыка, используемого, например, для обсуждения программного кода, описания алгоритма и т. п.

Часто используемые метапеременные

Искусственные слова

  • foo часто используется как первая метапеременная, для обозначения неопределённого (пока) объекта: функции, процесса, и т. п. Этимология этого слова также раскрывается в первоапрельском RFCRFC 3092.
  • bar используется для ссылки на второй неопределённый объект в обсуждении. Например, «функция foo вызывает функцию bar» или «функция foo(bar)».
  • часто применяется метапеременная foobar, имя которой образовано как объединение foo и bar.
  • baz — каноническая третья метапеременная, после foo и bar.
  • quux — каноническая четвёртая метапеременная. Иногда используется вариант qux для четвёртой метапеременной и quux, quuux, quuuux и т. д. — для следующих.
  • bat — используется некоторыми программистами вместо quux.
  • xyzzy и plugh — волшебные слова в старой текстовой игре ADVENT.
  • qwe, asd, zxc — набор символов для ввода информации в текстовые поля для быстрого заполнения.

Английские слова

  • spam и eggs — канонические метапеременные, используемые в языке программирования скетч комик-группы Монти Пайтон.
  • needle (иголка) и haystack (стог сена) могут использоваться в примерах, объясняющих синтаксис команд или функций поиска; благодаря идиоме «искать иголку в стоге сена», становится понятно, что в чём ищется.

Другие примеры

В качестве метапеременных используются: test, mum, thud, beekeeper, hoge, corge, grault, garply, waldo, kalaa, puppu, dothestuff, temp, var, sub.

Часто используемые мета-числа

  • 42 часто используется как инициализатор для переменных, когда конкретное значение не важно. Число взято из произведения Дугласа Адамса «Путеводитель для путешествующих автостопом по галактике», в котором оно фигурирует как ответ на главный вопрос жизни, вселенной и всего такого.
  • другие числа: 23, 47, 69, 666, 0815, 1337, 4711, DEADBEEF16.

Наличие таких чисел в выводе может указывать на логическую ошибку в программе — неинициализированную переменную.

Имена людей

  • J. Random (англ.random — случайный) и Ned Baker используются для обозначения любого человека или какого-то человека из определённой группы, например «J. Random User».
  • Имена Алиса (Alice) и Боб (Bob) используются, когда идёт речь о взаимодействии двух человек, например при описании применения криптографических протоколов. В качестве продолжения ряда могут использоваться Carol, Dave и т. д. Для некоторых ролей используются традиционные имена, например, Ева (Eve) — это пассивный взломщик, который может перехватывать данные, но не может их изменять, Мэллори (Mallory) — это активный взломщик, Трент (Trent) — нейтральный арбитр.

Доменные имена

Ссылки

Approximately 212 RFCs, or about 7 % of RFCs issued so far, starting with [RFC269], contain the terms `foo’, `bar’, or `foobar’ used as a metasyntactic variable without any proper explanation or definition. This may seem trivial, but a number of newcomers, especially if English is not their native language, have had problems in understanding the origin of those terms. This document rectifies that deficiency.

Wikimedia Foundation . 2010 .

  • Метановые углеводороды
  • Метаплазия Баррета

Foo bar baz что это

Метапеременные — это слова, которые используются в программировании для обозначения определенных значений. Две самые популярные из них называют обобщенно foobar. Расскажем, откуда они появились.

Читая код, вы наверняка часто встречали метод бар, который представляет собой самое популярное обозначение. Если вы погуглите «Fubar meaning», то наткнетесь на несколько версий происхождения этого названия.

В проектах, которые мы создали, они тоже встречаются. Да и сложно найти продукты, в коде которых нет ни одного foo bar baz. Правда, третья метапеременная уже не считается каноничной. На многих платформах онлайн ведутся споры о ее применении.

Классические foobar хороши как своей лаконичностью, так и тем, что максимально отличаются друг от друга. А вот baz или bat очень похожи на bar по написанию. А различить их на слух тяжело даже нейтивам.

Если foo bar programming кажется недостаточным, то разработчики придумали список более подходящих имен для переменных. Специалисты веб-услуг и разработкив YuSMP Group готовы сделать для читателей экскурс в историю этих понятий.

Как появился foobar

Как ни странно, это название пришло из американской армии. Там существовал акроним FUBAR, который обозначал тотальное поражение. Во время Второй мировой войны в американских войсках создали целое семейство акронимов. Их активно применяли для описания боевых действий.

В книгах того периода, посвященных высадке в Северной Африки и Сицилии, описаны многочисленные акронимы, помогающие солдатам ярко и емко характеризовать происходящее.

Например, Рик Эткинс писал, что военные будни пробуждали в солдатах как цинизм, так и умение лаконично выражать свои мысли. FOOBAR — было способом рассказать, что все пошло максимально не по плану и обстановка хуже некуда.

Но вернемся к нашей теме. Если вы загуглите «fubar meaning», то, скорее всего, наткнетесь на книги по истории американской армии. Но в какой момент она превратилась в foobar — непонятно.

Согласно одной из версий, само слово изначально писалось через две «О». А в процессе использования оно изменилось, попав под немецкое влияние. В этом языке есть слово «furchtbar», которое обозначает нечто ужасное.

Foobar в наши дни

Сегодня эта пара метапеременных считается наиболее универсальной. То есть его используют разработчики приложений и платформ по всему миру. При этом есть и их менее популярные локальные версии.

Термины foo bar baz могут применяться как логические представления для любых переменных, команд и функций. При этом, нужно отметить, что foobar может использовать и самостоятельно. А вот все три слова применяются, когда нужно обозначить несколько объектов. Причем ими называют переменные именно в таком порядке. Первую — foo, вторую — bar и третью baz.

Еще больше интересных статей о программирование в блоге студии web-разработки YuSMP Group.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *