Unix filozófia
A Unix filozófia a szoftverfejlesztés kulturális normáinak és filozófiai megközelítéseinek halmaza, amely a Unix operációs rendszer vezető fejlesztőinek tapasztalatain alapul .
McIlroy: A Unix negyedszázada
Doug McIlroy , a Unix csövek feltalálója és a Unix hagyomány egyik alapítója a következőképpen foglalta össze a filozófiát:
"A Unix filozófiája ezt mondja:
Írj
olyan programokat , amelyek egy dolgot csinálnak, és jól csinálják.
Írjon együtt működő programokat.
Írjon olyan programokat, amelyek támogatják a
szöveges adatfolyamokat , mert ez egy általános felület."
Általában ezek a kijelentések egy dologra oszlanak: "Csinálj egy dolgot, de csináld jól."
E három alapelv közül csak a harmadik jellemző Unixra, bár a Unix fejlesztők másoknál nagyobb valószínűséggel hangsúlyozzák mindhárom elvet.
Mike Guntzarz: A Unix-filozófia
1994-ben Mike Gancarz a Unix-szal szerzett tapasztalatait (az X Window System fejlesztőcsapatának tagja ) a programozótársakkal és más területekről – így vagy úgy Unixtól függően – folytatott megbeszélésekből származó megjegyzésekkel kombinálva létrehozta a Unix filozófia , amely 9 alapelvre bontakozik ki:
- Gyönyörűen kicsi.
- Minden program csináljon egyet, de jól.
- A lehető legkorábban készítsen prototípus programot.
- Részesítse előnyben a hordozhatóságot a hatékonysággal szemben.
- Adatok tárolása egyszerű szöveges fájlokban.
- Használja ki a meglévő szoftvermegoldásokat.
- Használjon szkriptnyelveket a munkaerőköltségek csökkentése és a hordozhatóság javítása érdekében.
- Kerülje az olyan felhasználói felületeket, amelyek korlátozzák a felhasználót a rendszerrel való interakcióban.
- Minden program legyen "szűrő".
A kevésbé fontos 10 elvet nem fogadták el általánosan a Unix filozófiájának részeként, és néhány esetben heves vita tárgyát képezték ( monolit kernel vs. mikrokernel ):
- Hagyja, hogy a felhasználó testreszabja a környezetet.
- Legyen kicsi és könnyű az operációs rendszer kernelje.
- Használjon kisbetűket, és legyen rövid a cím.
- Ne tároljon programszövegeket nyomtatott formában ("Mentsétek meg a fákat!").
- Ne mondd el a felhasználónak a nyilvánvalót ("A csend arany").
- Bontsa le az összetett feladatokat egyszerű, párhuzamos feladatokra ("Gondolkodjon párhuzamosan").
- Az egész egyesített részei többet jelentenek, mint összegük.
- 90 százalékos megoldást keresek .
- Ha lehetséges, hogy ne adjon hozzá új funkciókat, ne adja hozzá („ Minél rosszabb, annál jobb ”).
- Gondolkozz hierarchikusan.
Raymond: A Unix programozás művészete
Eric Raymond ( eng. Eric S. Raymond ) A Unix programozás művészete című művében a Unix filozófiáját a "Keep it simple, fool" ( a KISS elv ) általánosan használt mérnöki filozófiájaként foglalta össze . Ezután leírta, hogy ez az általánosított filozófia hogyan alkalmazható Unix kulturális normákként. Ez annak ellenére van így, hogy a következő jelenlegi Unix-filozófiában könnyű számos szabálysértést találni:
- Modularitás szabálya: Írjon egyszerű részeket, amelyeket érthető interfészek kapcsolnak össze.
- Az egyértelműség szabálya: A világosság jobb, mint az okosság.
- Összeállítás szabálya: A programokat úgy kell megtervezni, hogy azok más programokhoz kapcsolódjanak.
- Elválasztási szabály: Különítse el a szabályokat ( policy ) a mechanizmustól ( mechanizmus ); válassza le az interfészt a motortól .
- Egyszerűség szabálya: Törekedj az egyszerűségre; csak szükség esetén fokozza a bonyolultságot.
- A takarékosság szabálya: Csak akkor írjunk nagy programot, ha más eszközökkel nem sikerül elérni a kívánt feladatot.
- Átláthatóság szabálya: Átlátható programokat kell fejleszteni a későbbi átdolgozás és hibakeresés megkönnyítése érdekében.
- Megbízhatósági szabály: A megbízhatóság az átláthatóság és az egyszerűség gyermeke.
- Ábrázolási szabály: Tárolja a tudást adatokban, hogy a programlogika buta és megbízható legyen.
- A legkevesebb meglepetés szabálya : Interfész tervezésekor mindig ügyeljen arra, hogy az ismerős felületelemek ismert funkciókat hajtsanak végre.
- Csend szabály: Ha a programnak nincs mondanivalója, jobb, ha csendben marad.
- Helyreállítási szabály: Ha egy programnak össze kell omlana, tegye azt zajosan és a lehető leggyorsabban.
- Gazdasági szabály: A programozó ideje értékes; gépi idő használatával lerövidítheti.
- Generációs szabály: Kerülje a kézi kódolást; amikor csak lehetséges, írjunk olyan programokat, amelyek programokat írnak.
- Optimalizálási szabály: Először - egy prototípus, majd - "fésülés". Érjen el stabil működést, csak ezután végezzen optimalizálást.
- A sokszínűség szabálya: utasítson el minden „az egyetlen helyes út” állítást.
- Bővíthetőségi szabály: Tervezés a jövőnek. Gyorsabban jön, mint gondolnád.
Ezeknek az egyezményeknek a többségét a Unix közösségen kívül is elfogadják – még ha nem is, amikor először alkalmazták a Unixra, azóta azzá váltak. Ezenkívül sok szabály nem egyedi vagy eredeti a Unix közösség számára. A Unix programozás hívei azonban hajlamosak elfogadni ezen ötletek kombinációját a Unix stílus alapjaként.
Idézetek
- A Unix egyszerű. De zseninek kell lenni ahhoz, hogy megértse az egyszerűségét ” – Dennis Ritchie .
- " A Unix nem arra készült, hogy megvédje a felhasználókat a hülyeségektől, mert az okos dolgoktól is megvédené őket " - Doug Gwin .
- " A Unix soha nem mondja, hogy kérlek" - Rob Pike .
Kritika
A UNIX-HATERS kézikönyve
A UNIX-filozófiát az 1990-es évek elején megjelent
The UNIX-HATERS Handbook bírálta.
- A könyv szerkesztői szerint a Unix-szemlélet elhamarkodottan, az architektúra kellő átgondolása nélkül meghozott döntésekhez vezet, majd ezeket a döntéseket kanonizálják (rögzítik), vagyis örök klasszikusnak nyilvánítják. Például véleményük szerint ilyen megoldás a fájlok zárolása - tartalom nélküli ideiglenes fájlok, amelyek annak a jeleként jönnek létre, hogy néhány program végrehajtása folyamatban van.
- Az X Window System -et kritizálták amiatt, hogy elválasztja a motort a házirendtől, ami a UNIX-szabvány hiányához vezetett a felhasználói felület vezérléséhez, és nagy nehézségeket okozott a grafikus felhasználói felületet használó alkalmazások fejlesztésében .
- Az NFS -t bírálták az architektúra eleve hibás megközelítése miatt – egy állapot nélküli fájlszerver létrehozására tett kísérlet, annak ellenére, hogy ez alapvetően lehetetlen. Amikor nyilvánvalóvá vált néhány fontos dolog támogatásának lehetetlensége, az NFS-hez egy „mankót”, az úgynevezett lockd folyamatot csavartak.
Ugyanakkor az ebben a könyvben kritizált megközelítések, amelyek a *NIX-ben kezdődtek, simán indokoltak a Microsoft Windows és az Apple Mac OS rendszerben .
Jegyzetek
Linkek