La regla cero-uno-infinito (ZOI) es una regla práctica en el diseño de software propuesta por el pionero de la computación Willem van der Poel . [ 1 ] Argumenta que no se deben permitir límites arbitrarios en el número de instancias de un tipo particular de datos o estructura. En cambio, una entidad debe estar totalmente prohibida, solo se debe permitir una o se debe permitir cualquier número de ellas. [ 2 ] Si bien varios factores externos a ese software en particular podrían limitar este número en la práctica, no debería ser el software mismo el que imponga un límite estricto al número de instancias de la entidad.
Ejemplos de esta regla se pueden encontrar en la estructura de los directorios (también conocidos como carpetas) de muchos sistemas de archivos :
- 0 – El directorio superior no tiene directorios padres ; es decir, no hay ningún directorio que contenga el directorio superior.
- 1 – Cada subdirectorio tiene exactamente un directorio padre (sin incluir accesos directos a la ubicación del directorio; si bien dichos archivos pueden tener iconos similares a los iconos de los directorios de destino, no son directorios en absoluto).
- Infinito : Cada directorio, ya sea el directorio raíz o cualquiera de sus subdirectorios, según las reglas del sistema de archivos, puede contener cualquier número de archivos o subdirectorios. Los límites prácticos a este número se deben a otros factores, como el espacio disponible en los medios de almacenamiento y el estado de mantenimiento del sistema operativo del ordenador.
Paternidad literaria
Van der Poel confirmó que él fue el creador de la regla, pero Bruce MacLennan también ha reclamado la autoría (en la forma "Los únicos números razonables son cero, uno e infinito"), escribiendo en 2015 que [ 3 ] :
Por supuesto, el Principio Cero-Uno-Infinito se concibió como un principio de diseño para lenguajes de programación y similares, con el fin de mantenerlos cognitivamente manejables. Lo formulé a principios de los 70, cuando trabajaba en el diseño de lenguajes de programación y me molestaban todos los números arbitrarios que aparecían en algunos de los lenguajes de la época. ¡Desde luego, no tengo nada en contra de las estimaciones, los límites o los números en general! Como bien dices, el problema reside en los números arbitrarios.
No creo haberlo usado en ninguna publicación antes de escribir mi libro de PL de 1983 [ Principios de los lenguajes de programación: diseño, evaluación e implementación ]. Dick Hamming me animó a organizarlo en torno a principios (al estilo de Kernighan y Plauger y Strunk y White ), y el Principio Cero-Uno-Infinito fue uno de los primeros. (Por cierto, el nombre "Principio Cero-Uno-Infinito" se inspiró en el libro de George Gamow " Uno, dos, tres... infinito ", que leí en la escuela primaria).
Véase también
Referencias
- ↑ «Willem Louis Van Der Poel» . C2 para mí . 27 de septiembre de 2014 . Consultado el 25 de agosto de 2023 .
- ↑ "Regla Cero-Uno-Infinito" . Archivo de jerga .
- ↑ "La enfermedad del cero, uno e infinito" . Consultado el 30 de junio de 2019 .
- Folclore de la ingeniería de software
- Principios de programación