foo bar что значит

«Не баг, а фича» — учимся понимать язык программистов

Понять смысл IT-терминов можно, только узнав, как они употребляются

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

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

Есть куча статей, объясняющих смысл терминов, но неподготовленному человеку от них мало пользы. И если вы общаетесь с программистами или собираетесь стать одним из них, то, скорее всего, во всём придётся разбираться самостоятельно. Иначе можете оказаться в ситуации, похожей на ту, что в клипе:

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

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

Гораздо проще понять, что значит «пичупидо», если знать контекст, в котором употребляются все эти слова. Поэтому попробую объяснить некоторые термины и сленг на примере истории одного программиста (вымышленного).

Дисклеймер. Все совпадения случайны, а персонажи и ситуации вымышлены. В художественных целях они наделены негативными качествами, поэтому не берите с них пример: это касается как профессиональных качеств, так и отношения к алкоголю, курению и энергетическим напиткам. Также некоторые слова используются и в других сферах.

Новая задача

Ваня — обычный джун в веб-студии. Его работа — поддержка бэкенда сайтов старых клиентов студии.

Джуниор ( англ. junior — младший) в данном случае — младший разработчик в веб-студии. Также бывают мидл- ( англ. middle — средний) и сеньор-разработчики ( англ. senior — старший).

Бэкенд или бэк ( англ. back end — задний край) — серверная часть сайта или приложения, которая нужна для обработки и хранения данных. Его противоположность — фронтенд или фронт ( англ. front end — передний край) — видимая часть приложения или сайта. Если же разработчик занимается сразу фронтендом и бэкендом, его называют фуллстек-разработчиком ( англ. full stack — полная куча / полный набор).

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Рабочая неделя Вани начинается с митингов, потому что спринт в его компании длится всего неделю.

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

Спринт — период от одной до четырёх недель, за который сотрудники должны успеть выполнить задачу или задачи. Спринты являются частью Скрам.

Скрам ( англ. scrum) — метод управления проектами. Относится к гибкой методологии разработки эджайл ( англ. agile — гибкий).

На этот раз он получил задачу по добавлению валидации в один из интернет-магазинов. До этого вся валидация была на стороне пользователя.

Валидация — проверка данных, которые вводит пользователь.

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

До пятницы ещё целая неделя, поэтому с митинга Ваня пошёл сразу в курилку. Достав сигарету, он стал слушать разговор мидла и сеньора:

— Недавно залез в репозиторий, а там одни foobar’ы. Целый час голову ломал, а потом махнул рукой и заново переписал.

— Как наберут новых джунов, так всегда говнокод появляется. Как он вообще код ревью проходит?

— Надо проверить в гитхабе историю коммитов.

Тут Ваня поперхнулся, затушил сигарету и заторопился на рабочее место — от греха подальше.

Репозиторий — хранилище исходных файлов проекта.

Foo и Bar — имена функций или переменных, по которым невозможно понять, зачем они нужны. Использование таких имён допускают в учебниках и документации, но не в реальных проектах, потому что они замедляют чтение и понимание кода другими программистами.

Говнокод — очень плохой код.

Код ревью — проверка кода.

Гитхаб — сервис для хранения репозиториев IT-проектов и совместной работы над ними.

Коммит — запись изменений в репозиторий. Коммит содержит в себе данные об изменениях, комментарий и имя автора коммита.

У стола его уже ждал тимлид:

— Ваня, после того как ты добавил функцию загрузки фотографии в личном кабинете, появился баг. Теперь всё ломается, если ввести промокод.

— Вы уверены, что это из-за меня? Мой код вообще промокодов не касался.

— Уверен. Откати сайт и исправь всё до конца недели — нельзя ждать, пока клиент заметит, что одна из фич пропала.

— Но у меня уже есть задача на эту неделю, я не успею всё исправить.

— Это далеко не первый твой факап, поэтому, если не успеешь, мы поставим новый рекорд — так быстро мы джунов ещё не увольняли.

Тимлид ( англ. team leader — лидер команды) в данном случае — программист, который выполняет роль менеджера. Тимлид редко пишет код, вместо этого он следит, чтобы его команда хорошо справлялась с задачами.

Баг ( англ. bug — жук) — неожиданный результат или неожиданное поведение программы, ошибка.

Откатить ( англ. rollback) — отменить изменения, вернуться к прошлой версии.

Фича ( англ. feature — особенность) — полезная (а иногда забавная) функция / особенность программы.

Исправление багов

Дебажить было сложно, но Ваня не мог облажаться и в этот раз. За год его уже успели уволить из трёх компаний, после четвёртого увольнения его резюме будет испорчено окончательно.

Дебаг (англ. debug — устранение багов) — исправление ошибок в коде программы.

Три дня и три ночи Ваня корпел над кодом, но ничего не выходило. В отчаянии он обратился к коллеге, который проводил код ревью для его коммита в прошлый раз.

— Прости, но если бы я знал, что не так в твоём коде, я бы твой пул реквест не заапрувил.

— Но ты же написал lgtm в комментарии!

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

— Ладно, разберусь как-нибудь.

Апрув ( англ. approve) — подтвердить что-нибудь.

Пул реквест ( англ. pull request) — запрос на подтверждение коммита.

LGTM ( англ. looks good to me — На мой взгляд, хорошо) — сокращение, которое часто встречается на гитхаб в комментариях к подтверждению коммитов. Обычно его используют, когда не получается сказать ничего конструктивного по поводу кода.

Осталось всего два дня, чтобы исправить баг и добавить новую фичу, а у Вани не было почти никаких продвижений. После работы он, как обычно, зашёл в магазин, но вместо энергетиков решил взять пиво, потому что вспомнил о Пике Балмера.

Пик Балмера — шуточная теория, что при содержании алкоголя в крови между 0,129 и 0,138% (примерно 2 бутылки пива) программист получает сверхспособности к написанию кода. Теорию выдвинул Стив Балмер, CEO Microsoft с 2000 по 2014 год.

Бессонные ночи и пиво сделали своё дело, поэтому Ваня заснул прямо за компьютером.

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

Ненавидя себя, он поплёлся на работу. Сев за рабочий стол и посмотрев в код, внезапно понял, в чём была ошибка (известно, что многие проблемы в разработке приложений решаются, когда программист спит). Исправив всё за пару минут, он пошёл к тимлиду.

— Я разобрался с багом.

— Отлично, но странно, что у тебя ушло так много времени. Давай протестируем твой код и выгрузим на прод.

Прод или продакшн ( англ. production environment — рабочее окружение) — компьютер (чаще всего сервер), на котором запускается готовое к работе приложение.

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

К счастью, недавно он начал изучать JavaScript, поэтому мог просто скопировать код валидации с фронта и переделать его для бэкенда.

JavaScript — язык фронтенд-разработки.

Помучившись день, он всё-таки закончил. Тимлид оценил усилия:

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

Деплой ( англ. to deploy) — процесс перевода кода в рабочее приложение, чтобы запустить его на каком-нибудь компьютере.

Воодушевлённый успехом, Ваня ещё раз всё протестировал, поэтому к следующему митингу он был спокоен — больше исправлять старые баги ему не придётся.

По крайней мере на этот спринт.

Заключение

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

Источник

Атрибуты и протокол дескриптора в Python

Рассмотрим такой код:

Сегодня мы разберём ответ на вопрос: «Что именно происходит, когда мы пишем foo.bar

Вы, возможно, уже знаете, что у большинства объектов есть внутренний словарь __dict__, содержащий все их аттрибуты. И что особенно радует, как легко можно изучать такие низкоуровневые детали в Питоне:

Давайте начнём с попытки сформулировать такую (неполную) гипотезу:

Пока звучит похоже на правду:

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Теперь предположим, что вы уже в курсе, что в классах можно объявлять динамические аттрибуты:

Хм… ну ладно. Видно что __getattr__ может эмулировать доступ к «ненастоящим» атрибутам, но не будет работать, если уже есть объявленная переменная (такая, как foo.bar, возвращающая ‘hello!’, а не ‘goodbye!’). Похоже, всё немного сложнее, чем казалось вначале.

И действительно: существует магический метод, который вызывается всякий раз, когда мы пытаемся получить атрибут, но, как продемонстрировал пример выше, это не __getattr__. Вызываемый метод называется __getattribute__, и мы попробуем понять, как в точности он работает, наблюдая различные ситуации.

Пока что модифицируем нашу гипотезу так:

foo.bar эквивалентно foo.__getattribute__(‘bar’), что примерно работает так:

Проверим практикой, реализовав этот метод (под другим именем) и вызывая его напрямую:

Выглядит корректно, верно?

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Отлично, осталось лишь проверить, что поддерживается присвоение переменных, после чего можно расходиться по дом… —

my_getattribute возвращает некий объект. Мы можем изменить его, если он мутабелен, но мы не можем заменить его на другой с помощью оператора присвоения. Что же делать? Ведь если foo.baz это эквивалент вызова функции, как мы можем присвоить новое значение атрибуту в принципе?

Когда мы смотрим на выражение типа foo.bar = 1, происходит что-то больше, чем просто вызов функции для получения значения foo.bar. Похоже, что присвоение значения атрибуту фундаментально отличается от получения значения атрибута. И правда: мы может реализовать __setattr__, чтобы убедиться в этом:

Пара вещей на заметку относительно этого кода:

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

А ведь у нас есть ещё и property (и его друзья). Декоратор, который позволяет методам выступать в роли атрибутов.

Давайте постараемся понять, как это происходит.

Просто ради интереса, а что у нас в f.__dict__?

В __dict__ нет ключа bar, но __getattr__ почему-то не вызывается. WAT?

bar — метод, да ещё и принимающий в качестве параметра self, вот только это метод находится в классе, а не в экземпляре класса. И в этом легко убедиться:

Ключ bar действительно находится в словаре атрибутов класса. Чтобы понять работу __getattribute__, нам нужно ответить на вопрос: чей __getattribute__ вызывается раньше — класса или экземпляра?

Видно, что первым делом проверка идёт в __dict__ класса, т.е. у него приоритет перед экземпляром.

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Погодите-ка, а когда мы вызывали метод bar? Я имею в виду, что наш псевдокод для __getattribute__ никогда не вызывает объект. Что же происходит?

Вся суть тут. Реализуйте любой из этих трёх методов, чтобы объект стал дескриптором и мог менять дефолтное поведение, когда с ним работают как с атрибутом.

Если объект объявляет и __get__(), и __set__(), то его называют дескриптором данных («data descriptors»). Дескрипторы реализующие лишь __get__() называются дескрипторами без данных («non-data descriptors»).

Оба вида дескрипторов отличаются тем, как происходит перезапись элементов словаря атрибутов объекта. Если словарь содержит ключ с тем же именем, что и у дескриптора данных, то дескриптор данных имеет приоритет (т.е. вызывается __set__()). Если словарь содержит ключ с тем же именем, что у дескриптора без данных, то приоритет имеет словарь (т.е. перезаписывается элемент словаря).

Чтобы создать дескриптор данных доступный только для чтения, объявите и __get__(), и __set__(), где __set__() кидает AttributeError при вызове. Реализации такого __set__() достаточно для создания дескриптора данных.

Короче говоря, если вы объявили любой из этих методов — __get__, __set__ или __delete__, вы реализовали поддержку протокола дескриптора. А это именно то, чем занимается декоратор property: он объявляет доступный только для чтения дескриптор, который будет вызываться в __getattribute__.

Последнее изменение нашей реализации:

foo.bar эквивалентно foo.__getattribute__(‘bar’), что примерно работает так:

Попробуем продемонстрировать на практике:

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Мы лишь немного поскребли поверхность реализации атрибутов в Python. Хотя наша последняя попытка эмулировать foo.bar в целом корректна, учтите, что всегда могут найтись небольшие детали, реализованные по-другому.

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

Источник

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

2 ответа 2

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» в Сан Франциско. И обозначает (переводится) оно «удача» или «удачи!».

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

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

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

Источник

Foobar2000 что это за программа и нужна ли она?

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значитВсем привет foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значитЗначит сегодня я хочу вам рассказать о такой программе как Foobar2000. Не знаю как вы, а я часто слышал о этой проге, но так и никогда ее не ставил. Но недавно все таки поставил, ибо уж больно интересно было. Дело в том, что Foobar2000, это аудиоплеер, но не простой, а вроде как только для аудиофилов. Ну конечно его и обычный юзер может слушать, но там нет никаких красивостей, то есть просто плеер и все.

Я не знаю откуда это пошло, но я и не говорю что это не правда, но Foobar2000 считается именно лучшим плеером для тех, кому важно качество звучания. Но я не знаю почему так. Я его попробовал, мне все в нем понравилось, все сделано ОЧЕНЬ удобно, систему он не грузит, все кнопки и оформление ПРОСТОЕ и УДОБНОЕ. В принципе за что мне этот плеер и нравится, годный плеерок foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Foobar2000 бесплатный, и вроде бы не очень популярный, ну наверно Аимп или Винамп все таки более популярный. В общем если вы аудиофил, то я советую вам обратить внимание на Foobar2000 foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Собственно вот как выглядит этот Foobar2000:

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Тут есть эквалайзер, вот чтобы его открыть, то вызовите меню View и выберите там пункт Equalizer:

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Ну и вот сам эквалайзер:

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Чтобы открыть настройки в Foobar2000, то нужно вызвать меню Library и там выбрать пункт Configure:

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Вот сами настройки, тут все на английском, но думаю что не сложно будет разобраться:

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Скажу честно, что в настройках я вообще ничего не менял. Даже не знаю почему, работало все нормально, не было никаких косяков или глюков, поэтому в настройки и не лез. Кстати плеер вообще безглючный, работает как часы. Единственное что, я тут поставил вывод звука WASAPI. Плагин можно скачать на официальном сайте, потом просто на вкладке Playback > Output выбрать вывод звука в WASAPI. Короче там нет ничего сложного, поверьте. Кстати в Аимпе этот вывод уже есть в комплекте, ну то есть скачивать ничего не нужно. Аимп в последнее время преобразился, стал другим, так бы сказать круче, серьезнее что ли.. foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

В Foobar2000 есть некоторые прикольные штучки, так бы сказать что-то вроде визуализации. Чтобы включить какую-то такую вот визуализацию, то нужно вызвать меню View, выбрать там пункт Visualizations:

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Вот на картинке выше включен Spectrum.

Ну что, вроде бы более-менее с тем что за программа Foobar2000 мы разобрались. Теперь скажу немного по звуку. Конечно многие могут со мной не согласиться, ну что мол я не прав. Но мне кажется, что ничего особенного в звуке Foobar2000 нет. Но это и есть главная фишка, как мне кажется, плеер Foobar2000 играет музыку так, какой она есть на самом деле, вот мне это и нравится. Огромной какой-то разницы с другими плеерами вроде бы нет.

Но все таки что-то в плеере есть, за что мне на нем приятнее слушать музыку. В общем тут ничего сказать не могу, ну мол лучше, хуже, это как с выводом звука WASAPI: кто-то чувствует разницу, кто-то ее вообще не может заметить. Тут еще зависит что у вас за аппаратура, что есть что у вас за колонки или наушники. Если у вас дорогая аппаратура, то вы может быть тоже заметите разницу между Foobar2000 и другими плеерами, или между WASAPI и обычным виндовским выводом звука. Ну и конечно, не стоит забывать про источник звука! Встроенные звуковые карты в материнки, это так бы сказать бытовой уровень качества, пойдет для всего, но особо качественным такой источник назвать нельзя, вы это должны понимать. А вот если у вас внешняя звуковая карта, ну и не самая дешевая, то это уже совсем другое дело. В общем, это уже совсем другая история… foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Ну и теперь я покажу как удалить Foobar2000, это на тот случай, если вам плеер не понравился, ну мало ли.. foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Итак, смотрите, для удаления можно использовать такой удалятор как Revo Uninstaller. Он и плеер удалит и еще его остатки в винде найдет и тоже удалит. В общем смотрите сами, удалятор годный и известный, имеет хорошую репутацию, я сам вот им пользуюсь foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Ну а теперь как удалить так бы сказать по-простецки. Значит зажимаем кнопки Win + R и пишем такую команду как:

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Теперь находим значок Программы и компоненты, ну и запускаем его:

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

В списке программ находите foobar2000 (у меня вот версия v1.3.12, а у вас может быть другая), нажимаете правой кнопкой и выбираете Удалить:

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Потом откроется окошко foobar2000 Uninstall, тут нужно поставить две галочки (это чтобы настройки тоже были удалены) и нажать Uninstall:

foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

Все, потом оно все быстренько удалится, ничего сложного как видите нет!

В общем надеюсь что теперь вы знаете что это за программа Foobar2000 и думаю вы сможете для себя решить, нужна она вам или нет. Если не нужна, то я показал как ее удалить. Удачи вам и хорошего настроения foo bar что значит. Смотреть фото foo bar что значит. Смотреть картинку foo bar что значит. Картинка про foo bar что значит. Фото foo bar что значит

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Источник

Какова история использования «foo» и «bar» в примерах исходного кода?

Почему многие примеры кода, особенно учебные пособия, так часто используют имена «Foo» и «Bar»? Это почти стандарт.

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

Любой программист поймет мотивацию использования foo и bar для именования переменных. Они, безусловно, были частью культуры C / UNIX с самого начала, и, как указывает @Walter Mitty, предшествовали этому.

Обновление (05.10.2009): вот описание Аткинсона:

Обновление (23.11.2011): у @Hugo фантастический список невоенных предшественников.

Я думаю, что это фонетическое произношение фубара.

Имя, используемое в примерах и понимаемое для обозначения того, что обсуждается, или любого случайного члена класса обсуждаемых вещей. Слово foo является каноническим примером. Чтобы избежать путаницы, хакеры никогда (ну, почти никогда) не используют `foo ‘или другие подобные слова в качестве постоянных имен для чего-либо. В именах файлов распространенным соглашением является то, что любое имя файла, начинающееся с имени метасинтаксической переменной, является рабочим файлом, который может быть удален в любое время.

В некоторой степени список предпочтительных метасинтаксических переменных является культурной сигнатурой. Они встречаются как последовательно (используются для связанных групп переменных или объектов), так и в виде синглетонов. Вот несколько распространенных подписей:

Базола, ztesch:
Стэнфорд (с середины 70-х годов).

foo, bar, thud, grunt:
этот сериал был популярен в CMU. Другие переменные, связанные с CMU, включают gorp.

foo, bar, fum:
Сообщается, что эта серия распространена на XEROX PARC.

Фред, Барни:
см. запись для Фред. Это, как правило, британцы.

corge, grault, flarp:
популярный в университете Rutgers и среди хакеров GOSMACS.

zxc, spqr, wombat:
Кембриджский университет (Англия).

Шме
Беркли, GeoWorks, Ingres. Произносится / шме / с коротким / е /.

Университет
Брауна, начало 1970-х годов.

foo, bar, zot
Хельсинкский технологический университет, Финляндия.

blarg, качать
Новая Зеландия.

Тото, Тити, Тата, пачка
Франция.

aap, noot, mies
Нидерланды. Это первые слова, которые ребенок использовал, чтобы научиться писать по буквам на голландской орфографической доске.

Из всего этого, только ‘foo’ и ‘bar’ универсальны (а baz почти так). Составы foobar и `foobaz ‘также имеют очень широкую валюту.

Некоторые жаргонные термины также используются как метасинтаксические имена; например, бормочет и бормочет. См. Также Commonwealth Hackish для обсуждения многочисленных метасинтаксических переменных, найденных в Великобритании и Содружестве.

В статье также приведены общие примеры таких переменных на разных языках программирования:

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

Спам, ветчина и яйца являются основными метасинтаксическими переменными, используемыми в языке программирования Python. [5] Это ссылка на знаменитый комедийный набросок «Спам» Монти Пайтона, одноименный язык. [6] В следующем примере спам, ветчина и яйца являются метасинтаксическими переменными, а строки, начинающиеся с #, являются комментариями.

В следующем примере baz, foo и bar являются метасинтаксическими переменными, а строки, начинающиеся с #, являются комментариями.

Вот ответ Википедии:

Термины foobar, foo, bar и baz являются общими именами-заполнителями (также называемыми метасинтаксическими переменными), используемыми в компьютерном программировании или документации, связанной с компьютером. Они обычно используются для представления неизвестных значений, как правило, при описании сценария, в котором цель неизвестных значений понятна, но их точные значения являются произвольными и неважными. Термины могут использоваться для обозначения любой части сложной системы или идеи, включая данные, переменные, функции и команды. Сами слова не имеют смысла в этом использовании и являются просто логическими представлениями, так же, как буквы x и y используются в алгебре. Foobar часто используется один; foo, bar и baz обычно используются в том порядке, когда требуется несколько сущностей.

Фу вошел в английский язык как неологизм и считается многими каноническим примером метасинтаксической переменной. [Цитата нужна] Он широко используется в примерах компьютерного программирования (иногда выражается как «только один раз») и псевдокоде. Эрик С. Рэймонд назвал это «важным хакерством» наряду с клуджем и храбростью. [1]

Источник

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

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