Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования для UnixΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 101

Автор Π Π΅ΠΉΠΌΠΎΠ½Π΄ Π­Ρ€ΠΈΠΊ Π‘Ρ‚ΠΈΠ²Π΅Π½

Когда клиСнтская ΠΈ сСрвСрная части систСмы, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰Π΅ΠΉ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ проСктирования, скомбинированы Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ‚ΠΎ ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ часто говорят, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ "встроСнный язык сцСнариСв". Π’ Unix-срСдС ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстных экзСмпляров Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ являСтся Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Emacs. НСкоторыС прСимущСства Emacs Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π³Π»Π°Π²Π΅ 8.

Π”Ρ€ΡƒΠ³ΠΈΠΌ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ являСтся срСдство script-fu ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ GIMP. GIMP β€” ΠΌΠΎΡ‰Π½Ρ‹ΠΉ графичСский Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ GUI-интСрфСйс, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйсу ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Adobe Photoshop. БрСдство script-fu позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ GIMP Π² сцСнариях, написанных Π½Π° языкС Scheme (Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ Lisp). Доступно Ρ‚Π°ΠΊΠΆΠ΅ написаниС сцСнариСв Π½Π° языках Tel, Perl ΠΈΠ»ΠΈ Python. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° любом ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… языков, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ GIMP Ρ‡Π΅Ρ€Π΅Π· Π΅Π³ΠΎ интСрфСйс ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ДСмонстрационноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ срСдства прСдставлСно Π½Π° Web-страницС82, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ простыС Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΡ‹ ΠΈ графичСскиС ΠΊΠ½ΠΎΠΏΠΊΠΈ посрСдством CGI-интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Scheme-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ экзСмпляру GIMP ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

11.7. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Unix-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ проСктирования интСрфСйсов

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ написаниС сцСнариСв ΠΈ созданиС ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΎΠ², Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΡƒΡŽ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ интСрфСйса, Ρ‚.Π΅. модСль с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ числом ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΊ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡŽ ΠΈ наимСньшСй ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ.

ΠŸΡ€ΠΈ описании ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΎΠ΄Π½ΠΎΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° послС запуска Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Если оТидаСтся, Ρ‡Ρ‚ΠΎ "ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ" часто Π±ΡƒΠ΄Π΅Ρ‚ другая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ, СстСствСнно, Π½Π΅ достаСт гибкости чСловСчСского ΠΌΠΎΠ·Π³Π°), Ρ‚ΠΎ это являСтся ΠΎΡ‡Π΅Π½ΡŒ Ρ†Π΅Π½Π½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ, максимальной ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² сцСнариях.

Π’Ρ‹ΡˆΠ΅ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… модСлях ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ характСристики, Ρ†Π΅Π½Π½Ρ‹Π΅ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ…. Π’ частности, сущСствуСт ТСсткоС ΠΈ Π΄Π°Π²Π½Π΅Π΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ GUI-интСрфСйсами, Π° Ρ‚Π°ΠΊΠΆΠ΅ модСлями, подходящими для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΈ нСтСхничСских ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (с ΠΎΠ΄Π½ΠΎΠΉ стороны), ΠΈ интСрфСйсами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ максимально Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ возмоТности использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² сцСнариях (с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны).

Один ΠΈΠ· способов ΠΎΠ±ΠΎΠΉΡ‚ΠΈ эту Π΄ΠΈΠ»Π΅ΠΌΠΌΡƒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² создании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ нСсколько ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ являСтся Web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ 1ΡƒΠΏΡ…(1). ΠžΠ±Ρ‹Ρ‡Π½ΠΎ lynx ΠΈΠΌΠ΅Π΅Ρ‚ rogue-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйс для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ использования, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ -dump, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΌ Π΅Π³ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ-источник, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Web-страницу Π² тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ распСчатываСтся Π½Π° стандартный Π²Ρ‹Π²ΠΎΠ΄.

Однако ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π΄Π²ΡƒΡ…Ρ€Π΅ΠΆΠΈΠΌΠ½Ρ‹Π΅ интСрфСйсы ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ этого частично ΡΠ²Π»ΡΡŽΡ‚ΡΡ историчСскими, Π½ΠΎ главная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° β€” Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ глобальной ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. GUI-интСрфСйсы склонны Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ слоТной Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ большого количСства спСциализированного ΠΊΠΎΠ΄Π°. НаличиС Π΄Π°Π½Π½Ρ‹Ρ… особСнностСй Π² Π±ΠΎΠ»Π΅Π΅ простых модСлях нСбСзопасно. Π’ Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ случаС Π΄Π²ΡƒΡ…Ρ€Π΅-Тимная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ ΠΊΠ°ΠΊ с GUI-интСрфСйсом, Ρ‚Π°ΠΊ ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΡƒΡ… ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, Π° Ρ‚Π°ΠΊΠΆΠ΅ выполнСния Π΄Ρ€ΡƒΠ³ΠΈΡ… условий, ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‰ΠΈΡ… распуханиС ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Π±ΠΎΡ€ "ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ" ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ созданию GUI-интСрфСйса, Unix-способом Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π΄Π²Π΅ части согласно ΠΌΠΎΠ΄Π΅Π»ΠΈ "Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ядра ΠΈ интСрфСйса".

Π’ сущности, комбинируя идСю ΠΈΠ· Π³Π»Π°Π²Ρ‹ 7 с описанной Π²Ρ‹ΡˆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ модСль проСктирования, Π²ΠΎΠ·Π½ΠΈΠΊΡˆΡƒΡŽ Π² Linux ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… соврСмСнных Unix-систСмах с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π’ этой ΠΌΠΎΠ΄Π΅Π»ΠΈ GUI-интСрфСйсы ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ просто Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π½Ρ‹ΠΌΠΈ дополнСниями, Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ пСрспСктивноС Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ для прилоТСния усилий ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

11.7.1. МодСль многопарамСтричСских ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

ΠœΠ½ΠΎΠ³ΠΎΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π΅ΡΠΊΠ°Ρ (polyvalent) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ рядом Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Ρ… особСнностСй.

1. ΠŸΡ€ΠΈΠΊΠ»Π°Π΄Π½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ находится Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ API-интСрфСйсом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связан с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΠ½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для связи с внСшним ΠΌΠΈΡ€ΠΎΠΌ прСдставляСт собой Ρ‚ΠΎΠ½ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π½Π°Π΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ. Или, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, сущСствуСт нСсколько ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ стилями ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ.

2. Одним ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса являСтся модСль "заклинания", модСль компилятора" ΠΈΠ»ΠΈ CLI-модСль", Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

3. Одним ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса являСтся GUI-интСрфСйс, Π»ΠΈΠ±ΠΎ связанный нСпосрСдствСнно с основной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ, Π»ΠΈΠ±ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ CLI-интСрфСйсом.

4. Одним ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса являСтся интСрфСйс сцСнариСв, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· соврСмСнных ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… языков сцСнариСв, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Perl, Python ΠΈΠ»ΠΈ Tel.

5. НС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅: ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса являСтся rogue-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйс, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° curses(3).

Π’ наибольшСй стСпСни Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² настоящСС врСмя соотвСтствуСт ΠΏΠ°ΠΊΠ΅Ρ‚ GIMP.

11.8. ИспользованиС Web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π² качСствС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

ΠžΡ‚Π΄Π΅Π»Π΅Π½ΠΈΠ΅ CLI-сСрвСра ΠΎΡ‚ GUI-интСрфСйса стало особСнно ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стратСгиСй послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π² сСрСдинС 1990-Ρ… Π³ΠΎΠ΄ΠΎΠ² тСхнология World Wide Web ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΈΠ»Π° ΠΌΠΈΡ€ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… вычислСний. Для большого класса ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ возрастаСт смысл Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ нСстандартныС GUI-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹, Π° вмСсто этого Π² Π΄Π°Π½Π½ΠΎΠΉ Ρ€ΠΎΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹.

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ†Π΅Π»Ρ‹ΠΉ ряд прСимущСств. НаиболСС ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π½Π΅ трСбуСтся ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ GUI-ΠΊΠΎΠ΄. ВмСсто этого ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ GUI-интСрфСйс Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для этого языках (HTML ΠΈ JavaScript). Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ большого количСства Π΄ΠΎΡ€ΠΎΠ³ΠΎΠ³ΠΎ ΠΈ слоТного ΠΎΠ΄Π½ΠΎΡ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ кодирования ΠΈ часто Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π²Π΄Π²ΠΎΠ΅ сокращаСт ΠΎΠ±Ρ‰ΠΈΠ΅ усилия ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ. Π”Ρ€ΡƒΠ³ΠΎΠ΅ прСимущСство Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ становится Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ для использования Π² Internet. ΠšΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ располоТСн Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ ΡƒΠ·Π»Π΅, Ρ‡Ρ‚ΠΎ ΠΈ сСрвСр, ΠΈΠ»ΠΈ'Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π·Π° тысячи ΠΊΠΈΠ»ΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΡ‚ Π½Π΅Π³ΠΎ. Π’Π°ΠΊΠΆΠ΅ прСимущСством являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ всС второстСпСнныС Π΄Π΅Ρ‚Π°Π»ΠΈ прСдставлСния прилоТСния (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹ ΠΈ Ρ†Π²Π΅Ρ‚) Π±ΠΎΠ»Π΅Π΅ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ сСрвСра, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ смогут Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎ своСму ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ², ΠΊΠ°ΠΊ настройки Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΈ каскадныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй. НаконСц, Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ элСмСнты Web-интСрфСйса сущСствСнно ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π·Π°Π΄Π°Ρ‡Ρƒ изучСния.

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈ нСдостатки. Π”Π²Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΈΠ· Π½ΠΈΡ…: (Π°) ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ взаимодСйствия, навязанный Web-срСдой, ΠΈ (b) слоТности управлСния постоянными сСансами ΠΏΡ€ΠΈ использовании ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π±Π΅Π· фиксации состояния. Π₯отя ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ нСдостатки Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Unix, ΠΈΡ… слСдуСт Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ здСсь, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ конструкции вСсьма Π²Π°ΠΆΠ½ΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° стоит ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ограничСния.

Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования для Unix - _12.jpg

 Рис. 11.4. Бвязи Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π²  многопарамСтричСской ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΎΠ±Ρ‰Π΅Π³ΠΎ шлюза (Common Gateway Interface β€” CGI), посрСдством ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° сСрвСрном ΡƒΠ·Π»Π΅, Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠ΅Π»ΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. НС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π΅Π΅ ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Π΅ систСмы, сСрвСры ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ встроСнныС сСрвСрныС сцСнарии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ постСпСнно Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ CGI (слСгка злоупотрСбляя Π΄Π°Π½Π½Ρ‹ΠΌ понятиСм, Π°Π²Ρ‚ΠΎΡ€ Π΄Π°Π»Π΅Π΅ Π² настоящСм Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ CGI для обозначСния всСх ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ).