Правило нуля и одной бесконечности - Zero one infinity rule

Разработка программного обеспечения
Активность ядер
Парадигмы и модели
Методологии и рамки
Вспомогательные дисциплины
Практики
Инструменты
Стандарты и свод знаний
Глоссарии
Контуры

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

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

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

— Брюс Дж. МакЛеннан

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

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

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

Авторство

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

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

Рекомендации

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

Смотрите также