Правило ноль один бесконечность

Правило проектирования программного обеспечения

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

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

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

Авторство

Ван дер Пул подтвердил, что он является создателем правила, но Брюс Макленнан также заявил об авторстве (в форме «Единственные разумные числа — ноль, один и бесконечность»), написав в 2015 году следующее:

Конечно, принцип «ноль-один-бесконечность» был задуман как принцип проектирования языков программирования и подобных вещей, чтобы сделать их когнитивно управляемыми. Я сформулировал его в начале 70-х, когда работал над проектированием языков программирования и был раздражен всеми этими произвольными числами, которые появлялись в некоторых языках того времени. У меня определенно нет аргументов против оценок, пределов или чисел в целом! Как вы сказали, проблема в произвольных числах. Я не думаю, что я использовал его в печати до того, как написал свою книгу PL 1983 года [ Принципы языков программирования: проектирование, оценка и реализация ]. Дик Хэмминг призвал меня организовать его вокруг принципов (a la Kernighan & Plauger and Strunk & White ), и принцип «ноль-один-бесконечность» был одним из первых. (Кстати, название «Принцип нуля-единицы-бесконечности» было навеяно книгой Георгия Гамова «Один, два, три… бесконечность», которую я читал в начальной школе.) [3]

Ссылки

  1. ^ "Виллем Луи Ван Дер Поэль" . Проверено 25 августа 2023 г.
  2. ^ "Правило нуля-единицы-бесконечности". Файл жаргона .
  3. ^ "Болезнь Ноль, Один, Бесконечность" . Получено 2019-06-30 .

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

Retrieved from "https://en.wikipedia.org/w/index.php?title=Zero_one_infinity_rule&oldid=1227458397"