Zerowa zasada nieskończoności
Część serii poświęconej |
tworzeniu oprogramowania |
---|
Zasada zero jeden nieskończoności (ZOI) to praktyczna zasada projektowania oprogramowania zaproponowana przez wczesnego pioniera informatyki Willema van der Poela . Argumentuje, że arbitralne ograniczenia liczby wystąpień określonego typu danych lub struktury nie powinny być dozwolone. Zamiast tego, byt powinien być albo całkowicie zabroniony, tylko jeden powinien być dozwolony, albo dowolna ich liczba powinna być dozwolona. Chociaż różne czynniki poza tym konkretnym oprogramowaniem mogą w praktyce ograniczać tę liczbę, to nie samo oprogramowanie powinno nakładać sztywne ograniczenie na liczbę instancji jednostki.
Przykłady tej reguły można znaleźć w strukturze katalogów wielu systemów plików (zwanych także folderami):
- 0 – Najwyższy katalog ma zero katalogów nadrzędnych ; oznacza to, że nie ma katalogu, który zawiera najwyższy katalog.
- 1 – Każdy podkatalog ma dokładnie jeden katalog nadrzędny (nie licząc skrótów do lokalizacji katalogu; chociaż takie pliki mogą mieć ikony podobne do ikon katalogów docelowych, w ogóle nie są katalogami).
- Nieskończoność – każdy katalog, niezależnie od tego, czy jest to najwyższy katalog, czy którykolwiek z jego podkatalogów, zgodnie z regułami systemu plików, może zawierać dowolną liczbę plików lub podkatalogów. Praktyczne ograniczenia tej liczby wynikają z innych czynników, takich jak miejsce dostępne na nośnikach pamięci oraz to, jak dobrze utrzymany jest system operacyjny komputera . [ potrzebne źródło ]
W projektowaniu oprogramowania w świecie rzeczywistym często dochodzi do łamania tej praktycznej zasady. Na przykład FAT16 nakłada na katalog limit 65 536 plików.
Autorstwo
Van der Poel potwierdził, że był pomysłodawcą reguły, ale Bruce MacLennan również twierdził, że jest autorem (w formie „Jedyne rozsądne liczby to zero, jeden i nieskończoność”), pisząc w 2015 roku, że:
Oczywiście zasada zero-jeden-nieskończoności została pomyślana jako zasada projektowania języków programowania i podobnych rzeczy, aby zapewnić ich poznawczą zdolność zarządzania. Sformułowałem go na początku lat 70., kiedy pracowałem nad projektowaniem języków programowania i irytowały mnie wszystkie arbitralne liczby, które pojawiały się w niektórych ówczesnych językach. Z pewnością nie mam argumentów przeciwko szacunkom, ograniczeniom ani liczbom w ogóle! Jak powiedziałeś, problem dotyczy dowolnych liczb. Nie sądzę, żebym użył go w druku, zanim napisałem moją książkę PL z 1983 roku [ Zasady języków programowania: projektowanie, ocena i implementacja ]. Dicka Hamminga zachęcił mnie do zorganizowania go wokół zasad (a la Kernighan & Plauger oraz Strunk & White ), a zasada zero-jeden-nieskończoność była jedną z pierwszych. (FWIW, nazwa „Zasada zero-jeden-nieskończoności” została zainspirowana książką George’a Gamowa „Jeden, dwa, trzy… nieskończoność” , którą czytałem w szkole podstawowej.)
- ^ http://c2.com/cgi/wiki?WillemLouisVanDerPoel [ bez adresu URL ]
- ^ „Reguła zero-jeden-nieskończoności” . Plik żargonu .
- ^ „NTFS kontra FAT kontra exFAT” . NTFS.com . Źródło 2015-03-09 .
- ^ „Choroba zero, jeden, nieskończoność” . Źródło 2019-06-30 .