제로 원 인피니티 규칙
Zero one infinity rule다음에 대한 시리즈 일부 |
소프트웨어 개발 |
---|
ZOI(Zero one Infinity) 규칙은 초기 컴퓨팅의 선구자인 Willem van der Poel이 제안한 소프트웨어 디자인에 있어서 경험의 법칙이다.[1]특정 유형의 데이터나 구조의 인스턴스 수에 대한 임의적인 제한을 허용해서는 안 된다고 주장한다.구체적으로 기업은 완전히 금지되어야 하고, 하나만 허용되어야 하며, 또는 그 수가 제한되어야 한다.[2]비록 그 특정 소프트웨어 외부의 다양한 요소들이 실제로 이 수를 제한할 수 있지만, 기업의 인스턴스 수에 엄격한 제한을 두는 것은 소프트웨어 그 자체가 되어서는 안 된다.
foo, foo 중 하나 또는 foo의 수를 허용하지 마십시오.
유일하게 합리적인 숫자는 0, 1 그리고 무한이다.
— Bruce J. MacLennan
이 규칙의 예는 많은 파일 시스템의 디렉토리 구조(폴더라고도 함)에서 찾을 수 있다.
- 0 – 최상위 디렉토리는 0개의 상위 디렉토리를 가지고 있다. 즉 최상위 디렉토리를 포함하는 디렉토리가 없다.
- 1 – 각 하위 디렉토리는 정확히 하나의 상위 디렉토리를 가지고 있다(디렉토리 위치에 대한 바로 가기는 포함하지 않는다. 이러한 파일은 대상 디렉토리의 아이콘과 유사한 아이콘을 가질 수 있지만, 디렉토리는 전혀 아니다).
- ∞ (infinity) – 파일 시스템의 규칙에 따라 최상위 디렉토리든 하위 디렉토리든 각 디렉토리는 임의의 수의 파일 또는 하위 디렉토리를 포함할 수 있다.이 숫자에 대한 실질적인 제한은 저장 매체에서 사용할 수 있는 공간과 컴퓨터의 운영 체제가 얼마나 잘 유지되는지와 같은 다른 요인에 의해 발생한다.[citation needed]
실제 소프트웨어 설계에서는 이러한 경험 법칙의 위반이 일반적이다.예를 들어, FAT16 파일 시스템은 디렉토리에 65,536개의 파일(즉, 216)을 부과한다.[3]
저자
반 데르 포엘은 자신이 이 규칙의 원조임을 확인했지만 브루스 맥클렌난도 자신이 이 규칙의 원조를 자처했다.
물론 제로원-인피니티 원칙은 인지적으로 관리할 수 있도록 하기 위해 언어 프로그래밍, 비슷한 것들을 위한 설계원리로 의도되었다.프로그래밍 언어 디자인 작업을 하던 70년대 초반에, 당시의 일부 언어에 나타나는 임의의 숫자에 짜증이 났다.나는 확실히 일반적으로 추정치, 한계, 숫자에 대해 논박하지 않는다!네가 말했듯이 문제는 임의의 숫자에 있다.1983년 PL 책을 쓰기 전에는 인쇄물에 사용하지 않았던 것 같아.Dick Hamming encouraged me to organize it around principles (a la Kernighan & Plauger and Strunk & White), and the Zero-One-Infinity Principle was one of the first. (FWIW, the name “Zero-One-Infinity Principle” was inspired by George Gamow’s book, “One, Two, Three… Infinity,” which I read in grade school.)[4]
참조
- ^ http://c2.com/cgi/wiki?WillemLouisVanDerPoel
- ^ "Zero-One-Infinity Rule". Jargon File.
- ^ "NTFS vs. FAT vs exFAT". NTFS.com. Retrieved 2015-03-09.
- ^ "The Zero, One, Infinity Disease". Retrieved 2019-06-30.