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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«The Programmers Stone (ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ΡΠΊΠΈΠΉ камСнь)Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 26

Автор Alan Carter

ΠŸΠ°ΠΊΠ΅Ρ‚Π½Π°Ρ. Π₯отя ΠΈΡ… часто ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ стратСгиСй с использованиСм ΠΏΠ΅Ρ€Ρ„ΠΎΠΊΠ°Ρ€Ρ‚, ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅ систСмы просты, Π½Π°Π΄Π΅ΠΆΠ½Ρ‹, Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½ΠΎ сСбя Π²Π΅Π΄ΡƒΡ‚ ΠΏΡ€ΠΈ нСустойчивой связи ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ систСмы.

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

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

ΠžΠΏΠΏΠΎΡ€Ρ‚ΡƒΠ½ΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ. (Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Π½Π° Π±Π»Π°Π³ΠΎΠΏΡ€ΠΈΡΡ‚Π½ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ)Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ систСм Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ пострадаСт ΠΎΡ‚ ошибок ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠ°Π½Π°Π»Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ офисов оппортунистичСскиС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ построСны Π½Π° основС Ethernet. Π”Π°Π½Π½Ρ‹Π΅ хранятся Π² Π±ΡƒΡ„Π΅Ρ€Π΅ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Π½Π΅ пСрСдаст ΠΈΡ… Π±Π΅Π· ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² (collision).

Штурманская (Dead reckoning). ΠŸΡ‹Ρ‚Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ шаг ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Часто прСдставляСтся ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ позволяСт ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‡Π΅Π½ΡŒ Ρ…Ρ€ΡƒΠΏΠΊΠΎΠΉ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡˆΡƒΡ‚ΠΊΠ°ΠΌ Ρ‚ΠΈΠΏΠ° Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΎΠΉ: «БСсполСзно Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ Π½Π° это, ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ этого Ρ‚ΡƒΡ‚ Π½Π΅Ρ‚!Β»

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

На Π³Ρ€Π΅Π±Π½Π΅ Π²ΠΎΠ»Π½Ρ‹ (Wavefront). БистСмы, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ появлСния событий. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ освСщСниСм ΠΈΠ»ΠΈ тСлСфонная коммутация β€” Π²ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹. ΠŸΡ€ΠΈ сбоях ΠΌΡ‹ большС заинтСрСсованы Π² быстром восстановлСнии Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ρ‡Π΅ΠΌ обСспокоСны ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

РСтроспСктивная (Retrospective). Бвязанная с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ΠΌ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎΠΉ записи ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ. ИзбСТаниС ΠΏΠΎΡ‚Π΅Ρ€ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ β€” бухгалтСрскиС систСмы.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок β€” лимфатичСская систСма ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

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

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

if((fp = fopen(…)) == NULL) { // Error }

ΠΈΠ»ΠΈ

if(!DoTheBusiness()) { // Error }

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

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

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

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

ΠœΡ‹ Π½Π΅ Π΄ΡƒΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΈΡΠΊΡƒΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° эту Ρ‚Π΅ΠΌΡƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π½ΠΎΠ΅ Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ, ΠΎΠ½ΠΎ оказываСтся Π½Π° самом Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. БмСшиваниС этих ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΊΠΎΡˆΠΌΠ°Ρ€Ρƒ Π² ΠΊΠΎΠ΄Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ.

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

Could not write() datafile ftell() = 246810

Ссли Π·Π° Π½ΠΈΠΌ Π½Π΅ слСдуСт Π΄Ρ€ΡƒΠ³ΠΎΠ΅, говорящСС

Could not Save World

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

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

По возмоТности ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ Ρ€Π°ΡΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π·Π°Ρ…Π»Π°ΠΌΠ»ΡΡŽΡ‰ΠΈΠ΅ ваш ΠΊΠΎΠ΄ assert()ΠΈ ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… макросов. Π’Π°ΠΌ Π½Π΅ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ достаточности ΠΏΠ»Π°Ρ‚ΠΎ качСства, Ссли всС Π²ΠΎΠΊΡ€ΡƒΠ³ Π·Π°Π²Π°Π»Π΅Π½ΠΎ мусором.