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

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

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

4.2.2. ΠžΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

ΠžΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… свойств, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ слоТныС конструкции ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌΠΈ. Π’ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… конструкциях ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов. КаТдоС дСйствиС (API-Π²Ρ‹Π·ΠΎΠ², запуск макроса ΠΈΠ»ΠΈ опСрация языка) измСняСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π΅ оказывая влияния Π½Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅. БущСствуСт ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ способ для измСнСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ свойства любой управляСмой систСмы.

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

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

Π‘ΠΎΠ²Π΅Ρ‚ Π”ΡƒΠ³Π° ΠœΠ°ΠΊΠΈΠ»Ρ€ΠΎΡ "Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π·Π°Π΄Π°Ρ‡Ρƒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ" ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ рассматриваСтся Π² контСкстС простоты. Однако ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ нСявно ΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ стСпСни касаСтся ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π’ Π³Π»Π°Π²Π΅ 9 рассматриваСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ascii, которая ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ синонимы для Π½Π°Π·Π²Π°Π½ΠΈΠΉ ASCII-символов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅, Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ значСния. ΠŸΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉ эффСкт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π² качСствС быстрого ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€Π° для чисСл Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 0-255. Π­Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Π΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ являСтся Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ; ΠΎΠ½ΠΈ Π½Π΅ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ модСль программиста ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΌ ΠΈ Π΄Π°ΠΆΠ΅ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ. Π”Π°ΠΆΠ΅ Ссли ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ эффСкты Π½Π΅ Π·Π°Π±Ρ‹Ρ‚Ρ‹, часто для ΠΈΡ… подавлСния приходится Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

ΠŸΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ обсуТдСниС ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ способов Π΅Π΅ достиТСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² ΠΊΠ½ΠΈΠ³Π΅ "The Pragmatic Programmer" [37]. Как ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π΅Π΅ Π°Π²Ρ‚ΠΎΡ€Ρ‹, ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сокращаСт врСмя тСстирования ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов ΠΈ Π½Π΅ зависит ΠΎΡ‚ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, упрощаСтся, ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ количСство тСстовых ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ. Если ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅Π²Π΅Ρ€Π½ΠΎ, Ρ‚ΠΎ Π΅Π³ΠΎ просто Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π±Π΅Π· Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части систСмы. НаконСц, ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ являСтся Π±ΠΎΠ»Π΅Π΅ простым для докумСнтирования ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования.

ИдСя Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° (refactoring), которая Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΊΠ°ΠΊ явная идСя ΡˆΠΊΠΎΠ»Ρ‹ "ΡΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования" (Extreme Programming), тСсно связана с ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ структуры ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±Π΅Π· измСнСния Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ повСдСния. Π˜Π½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ индустрии, нСсомнСнно, Ρ€Π΅ΡˆΠ°ΡŽΡ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° возникновСния отрасли, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΈ идСнтификация Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° способствовало Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ вопроса. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС это Ρ…ΠΎΡ€ΠΎΡˆΠΎ согласуСтся с основными концСпциями проСктирования Unix, Unix-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ быстро пСрСняли Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡŽ ΠΈ ΠΈΠ΄Π΅ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°[42].

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ API-интСрфСйсы Unix Π±Ρ‹Π»ΠΈ спроСктированы с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅ идСально, Π½ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ. НапримСр, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ открытия Ρ„Π°ΠΉΠ»Π° для записи Π±Π΅Π· Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ принимаСтся ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ΅; Π½Π΅ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ "ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹". БистСмныС сигналы старой ΡˆΠΊΠΎΠ»Ρ‹ (System III) Π±Ρ‹Π»ΠΈ Π½Π΅ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сигнала ΠΈΠΌΠ΅Π»ΠΎ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉ эффСкт β€” происходила пСрСустановка ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° сигналов Π² стандартноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ сигнала. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ Π½Π΅ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ API BSD-сокСтов, ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ графичСскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ систСмы X Window.

Однако Π² Ρ†Π΅Π»ΠΎΠΌ API-интСрфСйс Unix являСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: ΠΈΠ½Π°Ρ‡Π΅, ΠΎΠ½ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ Π±Ρ‹Π» Π±Ρ‹, Π½ΠΎ ΠΈ Π½Π΅ ΠΌΠΎΠ³ Π±Ρ‹ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ Π‘ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Unix API окупаСтся, Π΄Π°ΠΆΠ΅ для программистов, Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с Unix, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΡƒΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ ΡƒΡ€ΠΎΠΊΠΈ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

4.2.3. ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ SPOT

Π’ ΠΊΠ½ΠΈΠ³Π΅ "The Pragmatic Programmer" формулируСтся ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ частного Π²ΠΈΠ΄Π° ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся особСнно Π²Π°ΠΆΠ½Ρ‹ΠΌ. Π­Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ "Π½Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΠΉΡ‚Π΅ΡΡŒ": Π²Π½ΡƒΡ‚Ρ€ΠΈ систСмы ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π·Π½Π°Π½ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ СдинствСнноС, нСдвусмыслСнноС ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ прСдставлСниС. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π°Π½ΠΎ совСту Π‘Ρ€Π°ΠΉΠ°Π½Π° ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½Π° Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ SPOT-ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ (SPOT, ΠΈΠ»ΠΈ Single Point Of Truth, β€” СдинствСнная Ρ‚ΠΎΡ‡ΠΊΠ° истины).

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ Π²Π΅Π΄Π΅Ρ‚ ΠΊ противорСчивости ΠΈ созданию ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Ρ€Π°Π·Ρ€ΡƒΡˆΠ°Π΅Ρ‚ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ повторСния, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС. Часто это Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ организация ΠΊΠΎΠ΄Π° Π½Π΅ Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹, Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ слСдуСт ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ВсякоС Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° являСтся опасным Π·Π½Π°ΠΊΠΎΠΌ. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌ; Π½Π΅ слСдуСт ΠΎΠΏΠ»Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π΄Π²Π°ΠΆΠ΄Ρ‹.

НСрСдко имССтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡƒΡ‚Π΅ΠΌ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, Ρ‚.Π΅. с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ измСнСния ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Π±Π΅Π· ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ основных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². Иногда Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π² Ρ‚Π°ΠΊΠΎΠΌ случаС слСдуСт ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° нСсколько Π²Π°ΠΆΠ½Ρ‹Ρ… вопросов.

β€’ Если Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… сущСствуСт Π² Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π²Π²ΠΈΠ΄Ρƒ нСобходимости ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… прСдставлСния Π² Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… мСстах, Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, срСдство ΠΈΠ»ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° для создания ΠΎΠ΄Π½ΠΎΠ³ΠΎ прСдставлСния ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΎΠ±ΠΎΠΈΡ… ΠΈΠ· ΠΎΠ±Ρ‰Π΅Π³ΠΎ источника?

β€’ Если докумСнтация Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΠ· Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΈΠ»ΠΈ ΠΈ Ρ‚ΠΎ, ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΈΠ· ΠΎΠ±Ρ‰Π΅Π³ΠΎ прСдставлСния Π±ΠΎΠ»Π΅Π΅ высокого уровня?

β€’ Если Ρ„Π°ΠΉΠ»Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ объявлСния интСрфСйсов Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‚ свСдСния Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ сущСствуСт Π»ΠΈ способ создания Ρ„Π°ΠΉΠ»ΠΎΠ² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ объявлСний интСрфСйсов ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°?

Для структур Π΄Π°Π½Π½Ρ‹Ρ… сущСствуСт Π°Π½Π°Π»ΠΎΠ³ SPOT-ΠΏΡ€Π°Π²ΠΈΠ»Π°: "Π½Π΅Ρ‚ лишнСго β€” Π½Π΅Ρ‚ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹". "НСт лишнСго" ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ структура Π΄Π°Π½Π½Ρ‹Ρ… (модСль) Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ минимальной, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ слСдуСт Π΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Ρ‰Π΅ΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° ΠΌΠΎΠ³Π»Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ситуации, Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. "НСт ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹" ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ полоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ обособлСны Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅, Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ обособлСны Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎ говоря, SPOT-ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ поиск структуры Π΄Π°Π½Π½Ρ‹Ρ…, состояния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ΅ соотвСтствиС с состояниями Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ систСмы, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

Авторы ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ собствСнныС слСдствия SPOT-ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² контСкстС Unix-Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΉ.

β€’ Если Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ·-Π·Π° ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вычислСний ΠΈΠ»ΠΈ поиска, Ρ‚ΠΎ слСдуСт Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π΅ являСтся Π»ΠΈ это ΠΏΡ€Π΅ΠΆΠ΄Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. Π£ΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ кэша (ΠΈ ΡƒΡ€ΠΎΠ²Π½ΠΈ ΠΊΠΎΠ΄Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ синхронизации кэша) ΡΠ²Π»ΡΡŽΡ‚ΡΡ "нСиссякаСмым" источником ошибок[43] ΠΈ Π΄Π°ΠΆΠ΅ способны ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ссли (ΠΊΠ°ΠΊ часто случаСтся) ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ управлСния кэшСм ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‚ оТидания Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

β€’ Если Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ большоС количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ² шаблонного ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡ… всС ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ прСдставлСния Π±ΠΎΠ»Π΅Π΅ высокого уровня, измСняя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для создания Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²?

Π’Π΅ΠΏΠ΅Ρ€ΡŒ модСль Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ.

Π’ ΠΌΠΈΡ€Π΅ Unix SPOT-ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ€Π΅Π΄ΠΊΠΎ проявляСтся ΠΊΠ°ΠΊ явная ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ идСя, ΠΎΠ΄Π½Π°ΠΊΠΎ, интСнсивноС использованиС Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠΎΠ΄Π° для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ спСцифичСских Π²ΠΈΠ΄ΠΎΠ² SPOT являСтся вСсьма большой Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ. Π”Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π³Π»Π°Π²Π΅ 9.