Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Правило Ноль одна бесконечности (ЗОИ) является правилом в разработке программного обеспечения , предложенное в начале вычислений пионера Виллем ван дер Плля . [1] Он утверждает, что нельзя допускать произвольных ограничений на количество экземпляров конкретного объекта [ жаргон ] . В частности, объект должен быть либо полностью запрещен, разрешен только один объект, либо разрешено любое их количество. [2] Хотя на практике это число могут ограничивать различные факторы, не относящиеся к конкретному программному обеспечению , это не должно быть само программное обеспечение, которое устанавливает жесткое ограничение на количество экземпляров объекта.

Не разрешайте ни один из foo, один из foo или любое количество foo.

Единственные разумные числа - ноль, единица и бесконечность.

-  Брюс Дж. Макленнан

Примеры этого правила можно найти в структуре каталогов многих файловых систем (также известных как папки):

  • 0 - у самого верхнего каталога нет родительских каталогов ; то есть нет каталога, содержащего самый верхний каталог.
  • 1 - Каждый подкаталог имеет ровно один родительский каталог (не включая ярлыки для местоположения каталога; хотя такие файлы могут иметь значки, похожие на значки целевых каталогов, они вообще не являются каталогами).
  • ∞ (бесконечность) - Каждый каталог, будь то самый верхний каталог или любой из его подкаталогов, в соответствии с правилами файловой системы, может содержать любое количество файлов или подкаталогов. Практические ограничения этого числа вызваны другими факторами, такими как доступное пространство на носителе и качество обслуживания операционной системы компьютера . [ необходима цитата ]

Обратите внимание, что нарушения этого эмпирического правила действительно существуют: например, некоторые файловые системы накладывают ограничение на 65 536 (т.е. 2 16 ) файлов на каталог. [3]

Авторство [ править ]

Ван дер Поэль подтвердил, что он был создателем правила, но Брюс МакЛеннан также заявил об авторстве:

Конечно, принцип «ноль-один-бесконечность» был задуман как принцип проектирования для языков программирования и подобных вещей, чтобы поддерживать их когнитивную управляемость. Я сформулировал его в начале 70-х годов, когда я работал над дизайном языков программирования и меня раздражали все произвольные числа, которые появлялись в некоторых языках того времени. У меня, конечно, нет аргументов против оценок, ограничений или чисел в целом! Как вы сказали, проблема в произвольных числах. Не думаю, что я использовал его в печати до того, как написал свою книгу по PL 1983 года. Дик Хэмминг призвал меня организовать его на основе принципов (а-ля Керниган и Плаугер и Странк и Уайт), и принцип нуль-один-бесконечность был одним из первых. (FWIW, название «Принцип нуля-один-бесконечность» было вдохновлено книгой Джорджа Гамова «Один, два, три… бесконечность», которую я прочитал в начальной школе.)[4]

Ссылки [ править ]

  1. ^ http://c2.com/cgi/wiki?WillemLouisVanDerPoel
  2. ^ "Правило Ноль-Один-Бесконечность" . Файл жаргона .
  3. ^ «NTFS против FAT против exFAT» . NTFS.com . Проверено 9 марта 2015 .
  4. ^ "Ноль, один, болезнь бесконечности" . Проверено 30 июня 2019 .

См. Также [ править ]

  • Магическое число (программирование) # Безымянные числовые константы