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

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

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

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

13.1. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ

Как ΠΈ Π² случаС рассмотрСнных Π²Ρ‹ΡˆΠ΅ вопросов ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ проСктирования интСрфСйсов, Unix-программисты Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ряд ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ часто ΡƒΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ ΠΈΠ· ΠΎΠΏΡ‹Ρ‚Π°, Π΄Π°ΠΆΠ΅ Π½Π΅ зная, ΠΊΠ°ΠΊ ΠΈΡ… Π½Π°Π·Π²Π°Ρ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ слСдуСт с излоТСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ².

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

13.1.1. Π’Ρ€ΠΈ источника слоТности

Вопросы ΠΎ простотС, слоТности ΠΈ Π²Π΅Ρ€Π½ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π±ΡƒΡ€Π½Ρ‹Π΅ споры Π² Unix-сообщСствС. Unix-программисты Ρ€Π°Π·Π²ΠΈΠ»ΠΈ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΈΡ€ΠΎΠ²ΠΎΠ·Π·Ρ€Π΅Π½ΠΈΠ΅, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ простота β€” это красота, изящСство ΠΈ Π΄ΠΎΠ±Ρ€ΠΎ, Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ β€” уродство, Π°Π±ΡΡƒΡ€Π΄Π½ΠΎΡΡ‚ΡŒ ΠΈ Π·Π»ΠΎ.

Π’ основС программистского стрСмлСния ΠΎΡ‚ΡΡ‚Π°ΠΈΠ²Π°Ρ‚ΡŒ простоту Π»Π΅ΠΆΠΈΡ‚ ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΊΡ‚: ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΡ€ΠΎΠ³ΠΎ обходится. Π‘Π»ΠΎΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ, ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒ, Π½ΠΎ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π΅Π³ΠΎ слоТнСС ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π˜Π·Π΄Π΅Ρ€ΠΆΠΊΠΈ слоТности, Π½Π΅ устранСнныС Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ€Π΅Π·ΠΊΠΎ ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ послС внСдрСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создаСт источники ошибок, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π° протяТСнии всСго срока слуТбы ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

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

Π§Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π°Π²Ρ‚ΠΎΡ€ Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ "ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ"? Π­Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ достоин Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ опрСдСлСния Π²Π²ΠΈΠ΄Ρƒ своСй ваТности.

Unix-программисты (ΠΊΠ°ΠΊ ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ программисты) склонны Ρ„ΠΎΠΊΡƒΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° слоТности Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” ΠΏΠΎ сущСству, стСпСни трудности, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ столкнСтся программист, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π΅ ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ модСль ΠΈΠ»ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ склонны Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² самих понятиях слоТности интСрфСйса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ Π³Π»Π°Π²Π΅ 11 Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»Π°ΡΡŒ простота ΠΈ качСство, ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅ Π΅ΠΉ, Ρ‚.Π΅. мнСмоничСская Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°. Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ тСсно связана с мнСмоничСской Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ. Блабая Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π² случаС Ссли Π½Π΅Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹ΠΉ интСрфСйс Π²Ρ‹Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ мноТСство Ρ‡Ρ€Π΅Π²Π°Ρ‚Ρ‹Ρ… ошибками ΠΈΠ»ΠΈ просто ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ вмСсто Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… высокоуровнСвых.

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

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

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

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

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

Π’Ρ‹ΡˆΠ΅ описаны Ρ‚Ρ€ΠΈ Π²ΠΈΠ΄Π° слоТности, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΠΎΠ²ΡƒΡˆΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΏΡ‹Ρ‚Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ слоТности84. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Π°Π»Π΅Π΅ Π² настоящСй Π³Π»Π°Π²Π΅.

13.1.2. ΠšΠΎΠΌΠΏΡ€ΠΎΠΌΠΈΡΡΡ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ интСрфСйса ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

Одно ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ярких Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠΉ ΠΎ Unix-Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ, сдСланных ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ сторонним Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»Π΅ΠΌ, содСрТится Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π ΠΈΡ‡Π°Ρ€Π΄Π° Гэбриэла (Richard Gabriel), которая называСтся "Lisp: Good News, Bad News, and How to Win Big" [25]. Гэбриэл Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π»Π΅Ρ‚ являСтся бСссмСнным Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ Lisp-сообщСства, ΠΈ данная ΡΡ‚Π°Ρ‚ΡŒΡ Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π±Ρ‹Π»Π° Π΄ΠΎΠ²ΠΎΠ΄ΠΎΠΌ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ особого стиля Lisp-конструкции. Однако сам Π°Π²Ρ‚ΠΎΡ€ ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΡ€ΠΈΠ·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сСйчас ΠΎΠ½Π° вспоминаСтся Π² основном ΠΈΠ·-Π·Π° Ρ€Π°Π·Π΄Π΅Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся "The Rise of Worse Is Better".