Кіріспе

Бағдарламалық жасақтаманы дамыту философиясы

Кен Томпсон бастаған Unix философиясы – минималистік, модульдік бағдарламалық жасақтаманы дамытуға қатысты мәдени нормалар мен философиялық көзқарастар жиынтығы. Ол Unix операциялық жүйесінің жетекші әзірлеушілерінің тәжірибесіне негізделген. Unix-тің алғашқы әзірлеушілері модульдік және қайта қолданылатындық тұжырымдамаларын бағдарламалық жасақтама инженериясының практикасына енгізуде маңызды рөл атқарды, соның нәтижесінде "бағдарламалық құралдар" қозғалысы пайда болды. Уақыт өте келе Unix-тің жетекші әзірлеушілері (және оның үстінде жұмыс істейтін бағдарламалар) бағдарламалық жасақтаманы дамыту үшін мәдени нормалар жиынтығын қалыптастырды; бұл нормалар Unix технологиясының өзінен де маңыздырақ және ықпалдырақ болды және "Unix философиясы" деп аталды. Unix философиясы қарапайым, ықшам, түсінікті, модульдік және кеңейтілмелі кодты құруға баса назар аударады, оны жасаушыларынан өзге де әзірлеушілер оңай қолдап, қайта пайдалана алады. Unix философиясы монолиттік дизайнға қарағанда құрастырылатындықты (composability) ұсынады.

UNIX ортасындағы бағдарламалық жобалау

1984 жылдың қазан айында Брайан Керниган мен Роб Пайк «UNIX ортасында бағдарламалық жобалау» деген мақала жариялады. Бұл мақалада олар 4.2BSD және System V сияқты кейбір жаңа Unix жүйелерінде бағдарламалық опциялар мен мүмкіндіктердің жинақталуын сынға алады және әрқайсысы бір жалпы функцияны орындайтын бағдарламалық құралдардың Unix философиясын түсіндіреді: Авторлар Unix құралдарын басқа жүйелерде қолданылатын ірі бағдарламалық кешендермен салыстырады. (CP/M немесе RSX 11 сияқты операциялық жүйелерде кездесетін нәрсе мысал болып табылады.) Бұл тәсіл міндетті түрде нашар немесе жақсы емес, бірақ ол, әрине, UNIX философиясына қайшы келеді.

Бір нәрсені жақсылап жаса

Макилрой айтқандай, және Unix қауымдастығында кеңінен қабылданғандай, Unix бағдарламалары әрдайым DOTADIW, яғни "бір нәрсені жаса және оны жақсы жаса" қағидасын сақтауға тиіс. DOTADIW аббревиатурасы туралы интернетте ақпарат аз, бірақ ол жаңа операциялық жүйелерді жасау және жинақтау кезінде, әсіресе Linux қауымдастығында кеңінен талқыланады. Slackware Linux жобасының жетекшісі Патрик Волкердинг, systemd архитектурасын сынап, осы дизайн принципін қолданып: "бір демон ішінде қызметтерді, сокеттерді, құрылғыларды, монтаждауларды және т.б. басқаруға тырысу, Unix қағидасы – бір нәрсені жасау және оны жақсы жасауға қайшы келеді" деді.

Эрик Реймондтың 17 Unix ережесі

2003 жылы алғаш рет жарияланған «Unix бағдарламалау өнері» кітабында Эрик С. Реймонд (ашық кодты қолдаушы және бағдарламашы) Unix философиясын «Бәрін қарапайым ұста, ақымақтыққа жол берме» принципімен түйіндейді. Ол бірқатар дизайн ережелерін ұсынады: Datamation журналында жарияланған Дон Норман Unix-тің дизайн философиясын пайдаланушы интерфейсіне немқұрайлы қарағаны үшін сынады. Когнитивтік ғылымдағы тәжірибесінен және когнитивтік инженерияның сол кездегі философиялық көзқарастарынан шығып, ол соңғы пайдаланушылардың жүйелерді қалай түсінетініне және жеке когнитивтік модельдерін қалай құратынына назар аударды. Unix жағдайында олар түсінуден мүлдем бас тартады, нәтижесінде қателіктер (мысалы, бір сағат еңбектің жоғалуы) оңай болады. «On the Metal» подкастында Джонатан Блоу Unix философиясын ескірген деп сынады. Ол модульдік құралдарды байланыстырудың тиімсіз бағдарламаларға алып келетінін айтты. Оның пікірінше, Unix философиясы микросервистерге тән проблемалардан зардап шегеді: жалпы бақылау болмаған жағдайда үлкен архитектуралар тиімсіз және нәтижесіз болып шығады.