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

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

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

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

6.1.7. Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Ρ„Π°ΠΉΠ»Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Freeciv

Π˜Π³Ρ€Π° Freeciv β€” стратСгия с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€ΠΎΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ послуТила классичСская ΠΈΠ³Ρ€Π° Civilization II Π‘ΠΈΠ΄Π° ΠœΠ΅ΠΉΠ΅Ρ€Π° (Sid Meier). Π˜Π³Ρ€Π° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ участник, имСя Π² своСм распоряТСнии Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΡ‡Π΅Π²Π½ΠΈΠΊΠΎΠ² ΠΊΠ°ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ°, строит свою Ρ†ΠΈΠ²ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΡŽ. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ Π±ΠΎΡ€ΡŒΠ±Π° этих Ρ†ΠΈΠ²ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠΉ, созданных ΠΈΠ³Ρ€ΠΎΠΊΠ°ΠΌΠΈ, Π² Ρ…ΠΎΠ΄Π΅ исслСдования ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΈΡ€Π°, Π²ΠΎΠ΅Π½Π½Ρ‹Ρ… сраТСний, развития Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΈ тСхнологичСских Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π². Π’ качСствС ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΈ искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚. Π’Ρ‹ΠΈΠ³Ρ€Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ, Π»ΠΈΠ±ΠΎ "Π·Π°Π²ΠΎΠ΅Π²Π°Π² ΠΌΠΈΡ€", Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ достигнув тСхнологичСского уровня, достаточного для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ космичСского корабля ΠΊ ΠΠ»ΡŒΡ„Π° Π¦Π΅Π½Ρ‚Π°Π²Ρ€Π°. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ ΠΈ докумСнтация доступны Π½Π° сайтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° <http: / /www. freeciv. org/>.

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

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

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

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

таксичСский Π°Π½Π°Π»ΠΈΠ· рССстра Freeciv для опрСдСлСния Π½Π°Π±ΠΎΡ€Π° прСдоставляСмых ΠΈΠΌ свойств ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎΠ± отличиях5.

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

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

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

Рис. 6.3. Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈΠ³Ρ€Ρ‹ Freeciv

Π Π°Π½Π½ΠΈΠΌ ΠΏΡ€Π΅Π΄ΠΊΠΎΠΌ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Unix Π±Ρ‹Π»Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° lint, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π‘-ΠΊΠΎΠ΄Π°, обособлСнная ΠΎΡ‚ компилятора Π‘. Π₯отя GCC Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Ρ†Ρ‹ старой ΡˆΠΊΠΎΠ»Ρ‹ Unix Π΄ΠΎ сих ΠΏΠΎΡ€ склонны Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ процСсс запуска Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ "Π»ΠΈΠ½Ρ‚ΠΈΠ½Π³ΠΎΠΌ" (linting'), Π° Π΅Π΅ имя ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΎΡΡŒ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, ΠΊΠ°ΠΊ xmllint.

6.2. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΠΎΡΡ‚ΡŒ

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

6.2.1. Дзэн прозрачности

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

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

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

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

Π›ΡŽΠ±ΠΎΠΉ ΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ Дзэн Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ распознал Π±Ρ‹ Π΄Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΊΠ°Π·Π°Π» Π±Ρ‹ ΡƒΡ‡Π΅Π½ΠΈΠΊΠ°. ОсознанноС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ прозрачности являСтся нСсколько "ΠΌΠ΅Π½Π΅Π΅ мистичСским" способом Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.