| シリーズの一部 |
| ソフトウェア開発 |
|---|
ゼロ・ワン・インフィニティ(ZOI)ルールは、初期のコンピュータのパイオニアであるウィレム・ファン・デル・ポールによって提唱されたソフトウェア設計における経験則です。[ 1 ]このルールは、特定の種類のデータまたは構造のインスタンスの数に恣意的な制限を設けるべきではないと主張しています。代わりに、エンティティは完全に禁止されるか、1つだけ許可されるか、任意の数が許可されるべきです。[ 2 ]実際には、特定のソフトウェアの外部にある様々な要因によってこの数が制限される可能性がありますが、エンティティのインスタンスの数に厳格な制限を課すのはソフトウェア自体であってはなりません。
このルールの例は、多くのファイル システムのディレクトリ (フォルダーとも呼ばれます) の構造に見られます。
- 0 – 最上位ディレクトリには親ディレクトリが 0 個あります。つまり、最上位ディレクトリを含むディレクトリは存在しません。
- 1 – 各サブディレクトリには、親ディレクトリが 1 つだけあります (ディレクトリの場所へのショートカットは含まれません。このようなファイルは宛先ディレクトリのアイコンに似たアイコンを持つことがありますが、ディレクトリではありません)。
- 無限– 各ディレクトリ(最上位ディレクトリでもそのサブディレクトリでも)は、ファイルシステムのルールに従い、任意の数のファイルまたはサブディレクトリを含めることができます。この数には、ストレージメディアの空き容量やコンピューターのオペレーティングシステムのメンテナンス状況など、他の要因によって実質的な制限が生じます。
著作
ファンデルポールは自分がこのルールの考案者であることを認めたが、ブルース・マクレナンも(「合理的な数字はゼロ、1、無限大だけである」という形で)考案者であると主張しており、2015年に次のように書いている。
もちろん、ゼロ・ワン・インフィニティ原理は、プログラミング言語やそれに類するものを認知的に扱いやすくするための設計原則として意図されていました。私がこれを定式化したのは1970年代初頭、プログラミング言語の設計に取り組んでいた頃で、当時の言語に見られる恣意的な数値にうんざりしていました。推定値、限界、あるいは数値全般に異論はありません!おっしゃる通り、問題は恣意的な数値にあります。1983年にPLの本[ Principles of Programming Languages: Design, Evaluation, and Implementation ]を執筆するまで、この原理を印刷物で使ったことはなかったと思います。Dick Hammingは、 Kernighan & PlaugerやStrunk & White風に、原理に基づいて体系化するよう勧めてくれました。そして、ゼロ・ワン・インフィニティ原理はその最初のものの一つでした。(ちなみに、「ゼロ・ワン・インフィニティ原理」という名前は、私が小学生の頃に読んだGeorge Gamowの著書『One, Two, Three… Infinity』に由来しています。) [ 3 ]
参照
参考文献
- ^ “ウィレム・ルイス・ヴァン・ダー・ポール” . 2023 年 8 月 25 日に取得。
- ^ 「ゼロ・ワン・インフィニティルール」。専門用語ファイル。
- ^ 「ゼロ・ワン・インフィニティ病」 。 2019年6月30日閲覧。