Правило бесконечности ноль один
Часть серии о |
Разработка программного обеспечения |
---|
Правило «ноль-один-бесконечность» (ZOI) — это эмпирическое правило проектирования программного обеспечения, предложенное компьютерных технологий пионером Виллемом ван дер Поэлем . [1] Он утверждает, что не следует допускать произвольных ограничений на количество экземпляров определенного типа данных или структуры. Вместо этого следует либо полностью запретить сущность, либо разрешить только одну, либо разрешить любое их количество. [2] Хотя на практике это число может ограничиваться различными факторами, не относящимися к конкретному программному обеспечению , само программное обеспечение не должно налагать жесткие ограничения на количество экземпляров объекта.
Примеры этого правила можно найти в структуре каталогов многих файловых систем (также известных как папки):
- 0 – Самый верхний каталог не имеет родительских каталогов ; то есть не существует каталога, содержащего самый верхний каталог.
- 1 – Каждый подкаталог имеет ровно один родительский каталог (не считая ярлыков расположения каталога; хотя такие файлы могут иметь значки, похожие на значки каталогов назначения, они вообще не являются каталогами).
- Бесконечность . Каждый каталог, будь то самый верхний каталог или любой из его подкаталогов, в соответствии с правилами файловой системы может содержать любое количество файлов или подкаталогов. Практические ограничения на это число вызваны другими факторами, такими как доступное место на носителе компьютера . операционной системы и качество обслуживания [ нужна ссылка ]
Авторство
[ редактировать ]Ван дер Поэль подтвердил, что он был автором правила, но Брюс МакЛеннан также заявил об авторстве (в форме «Единственные разумные числа — ноль, единица и бесконечность»), написав в 2015 году, что:
Конечно, принцип «ноль-один-бесконечность» был задуман как принцип проектирования языков программирования и подобных вещей, чтобы сохранить их когнитивно управляемыми. Я сформулировал ее в начале 70-х, когда работал над проектированием языков программирования и меня раздражали произвольные числа, которые появлялись в некоторых языках того времени. У меня, конечно, нет аргументов против оценок, ограничений или цифр в целом! Как вы сказали, проблема в произвольных числах. Не думаю, что я использовал его в печати до того, как написал свою книгу PL 1983 года [ Принципы языков программирования: проектирование, оценка и реализация ]. Дик Хэмминг посоветовал мне организовать ее на основе принципов (а-ля Керниган, Плаугер , Странк и Уайт ), и принцип «ноль-один-бесконечность» был одним из первых. (Кстати, название «Принцип Ноль-Один-Бесконечность» было навеяно Георгия Гамова книгой «Один, Два, Три… Бесконечность», которую я читал в начальной школе.) [3]
Ссылки
[ редактировать ]- ^ «Виллем Луи Ван Дер Поэль» . Проверено 25 августа 2023 г.
- ^ «Правило ноль-один-бесконечность» . Файл жаргона .
- ^ «Болезнь Ноль, Один, Бесконечность» . Проверено 30 июня 2019 г.