ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‡Ρ‚ΠΎ это

О Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΠΈ ΠΊΠΎΠ΄Π° Π·Π°ΠΌΠΎΠ»Π²ΠΈΠΌ слово: контСкстноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² ΠΈΠ΄Π΅Π°Π»Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ НС ΠΏΠΈΡΠ°Ρ‚ΡŒ лишнСго ΠΊΠΎΠ΄Π°. А Ссли ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ, Ρ‚ΠΎ, ΠΊΠ°ΠΊ извСстно, Π½ΡƒΠΆΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒ кости систСмы Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ систСмы ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ мясо систСмы Π»ΠΎΠ³ΠΈΠΊΡƒ систСмы. Π’ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ΅ ΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ Ρ€Π΅Ρ†Π΅ΠΏΡ‚Ρ‹ для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ послСднСго.

ΠœΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для языка Clojure, ΠΎΠ΄Π½Π°ΠΊΠΎ сам ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… языках программирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€ΠΎΠ²Π½ΠΎ эту ΠΆΠ΅ идСю ΠΌΡ‹ примСняСм Π² Erlang).

ИдСя сама ΠΏΠΎ сСбС β€” проста ΠΈ основываСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… утвСрТдСниях:

На ΡƒΡ€ΠΎΠ²Π½Π΅ псСвдо-ΠΊΠΎΠ΄Π° это ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ:

Π’ΠΎΡ‚ ΠΈ вся идСя. А дальшС β€” Π΄Π΅Π»ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ. Π‘ 100500 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: рСализация ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ

РаспишСм Π΄Π΅Ρ‚Π°Π»ΠΈ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ доступСн Π½Π° GitHub Ρ‚ΡƒΡ‚.
Допустим, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, с дСньгами, ΠΈ Π»ΠΎΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стоят Π΄Π΅Π½Π΅Π³ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΡƒΠΏΠΈΡ‚ΡŒ. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΠΊΡƒΠΏΠΊΡƒ Π»ΠΎΡ‚Π°:

Для простоты, количСство Π΄Π΅Π½Π΅Π³ ΠΈ Π»ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² самой структурС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π°ΠΌ потрСбуСтся нСсколько Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Ѐункция until-first-error

Π’ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ числС случаСв, бизнСс Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ шагов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ошибки. Для этого ΠΌΡ‹ Π·Π°Π²Π΅Π΄Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° GitHub Ρ‚ΡƒΡ‚.

Ѐункция with-result-or-error

ΠžΡ‡Π΅Π½ΡŒ часто элСмСнтарноС дСйствиС состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ просто Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ, Ссли ΠΎΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊ контСксту. Для этого Π·Π°Π²Π΅Π΄Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Π’ Ρ†Π΅Π»ΠΎΠΌ, СдинствСнная Ρ†Π΅Π»ΡŒ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°.

Ну ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, наша «ΠΊΡ€Π°ΡΠ°Π²ΠΈΡ†Π°».

Ѐункция, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π°Ρ ΠΏΠΎΠΊΡƒΠΏΠΊΡƒ

И ΠΏΠ°Ρ€Ρƒ слов, ΠΏΡ€ΠΎ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ использовали:

А ΠΏΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ прилоТСния ΠΈΠ· clojure REPL. Π‘Ρ‚Π°Ρ€Ρ‚ΡƒΠ΅ΠΌ REPL ΠΈΠ· консоли ΠΈΠ· корня ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ выполнСния. ΠžΡΠ½ΠΎΠ²Ρ‹

ЛСксичСскоС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ позволяСт ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ доступный Π½Π°ΠΌ Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, учитывая Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°. Но ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ этот Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… измСняСтся, Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Ρ‹Π·Π²Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ своё собствСнноС лСксичСскоС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅. Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ происходящиС Π² лСксичСском ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ измСнСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅ лСксичСскоС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ являСтся Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π΄Π°Π½Π½ΠΎΠΌΡƒ этапу выполнСния ΠΊΠΎΠ΄Π°? Для этих Ρ†Π΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ контСкст выполнСния.

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ выполнСния (execution context) Π² JavaScript ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ…ΠΎΠ΄ выполнСния ΠΊΠΎΠ΄Π°. ИмСнно с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ опрСдСляСтся доступноС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ этапС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. А Ρ‚Π°ΠΊΠΆΠ΅ контСкст выполнСния содСрТит Π² сСбС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ JavaScript-Π΄Π²ΠΈΠΆΠΊΠΎΠΌ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ вашСго ΠΊΠΎΠ΄Π°.

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

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

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ контСкстом выполнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаётся ΠΏΡ€ΠΈ запускС JavaScript скрипта являСтся Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ контСкст выполнСния (Global Execution Context). Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… этого контСкста Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ вСсь Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. БоотвСтствСнно Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ЛСксичСским ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ, связанным с Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ контСкстом выполнСния, являСтся глобальноС глобальноС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Global Environment.

НапримСр, создадим пустой Ρ„Π°ΠΉΠ» JavaScript ΠΈ страницу html, Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‰ΡƒΡŽ этот Ρ„Π°ΠΉΠ». Π€Π°ΠΉΠ» JavaScript добавляСтся Π½Π° страницу с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Π³Π° script

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом Ρ‚Π΅Π³Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ здСсь. Архив с ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ исходными Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ доступСн ΠΏΠΎ этой ссылкС.

ΠžΡ‚ΠΊΡ€Ρ‹Π² эту html страницу Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈ запустив Консоль Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (F12), ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, ввСдя Π² консоли window this

Π’Π°ΠΊΠΆΠ΅ Π² JavaScript Π΅ΡΡ‚ΡŒ такая ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π² глобальной области видимости Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ var ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² свойства глобального ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° window :

Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ JavaScript Π‘Ρ€Π΅Π½Π΄Π°Π½ Π­ΠΉΡ… считаСт Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· своих «самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… соТалСний». Вакая ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ глобального ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сказываСтся Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ услоТняСт Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ областСй видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠ΄Π°.

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

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

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ссли Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ нСобъявлСнной Ρ€Π°Π½Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ, Ссли этот ΠΊΠΎΠ΄ выполняСтся Π½Π΅ Π² строгом Ρ€Π΅ΠΆΠΈΠΌΠ΅ β€œuse strict”, Ρ‚ΠΎ JavaScript Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΎ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π½ΠΎ ΠΈ создаст Π΅Ρ‘ для нас Π² глобальном ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅.

Π­Ρ‚Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠΆΠ΅ носит Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ эффСкты ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ возникновСнию ошибок Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ всСгда Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ для ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ использования. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π² строгом Ρ€Π΅ΠΆΠΈΠΌΠ΅ β€œuse strict” этот ΠΊΠΎΠ΄ ΡƒΠΆΠ΅ Π½Π΅ выполнится ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ

Когда Π² JavaScript ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΊΡ€ΠΎΠΌΠ΅ глобального ΠΊΠΎΠ΄Π° Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. НапримСр

Π’ΠΎ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ создаётся свой контСкст выполнСния, ΠΏΡ€ΠΈ этом Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ контСкст выполнСния (Ρ‚ΠΎΡ‚, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π±Ρ‹Π»Π° Π²Ρ‹Π·Π²Π°Π½Π° функция) приостанавливаСтся.

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

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ контСксты выполнСния ΠΎΠ½ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² стСк контСкстов выполнСния (call stack) β€” список контСкстов, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ «послСдним ΠΏΡ€ΠΈΡˆΡ‘Π» β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅Π»Β». ВыполняСмый контСкст всСгда являСтся Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ элСмСнтом этого стСка. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ выполнится, связанный с Π½ΠΈΠΌ контСкст выполнСния удалится, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрнСтся Π² контСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находился элСмСнтом Π½ΠΈΠΆΠ΅, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ элСмСнтом β€” Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ контСкстом выполнСния.

Для ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° стСк контСкстов выполнСния Π² Ρ…ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ схСматично ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‡Ρ‚ΠΎ это. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‡Ρ‚ΠΎ это. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‡Ρ‚ΠΎ это. Π€ΠΎΡ‚ΠΎ ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‡Ρ‚ΠΎ это

На этой схСмС Π³ΠΎΠ»ΡƒΠ±Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉΡΡ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ контСкст. А сСрым β€” приостановлСнныС контСксты, ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠ΅ окончания выполнСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ контСкста.

Если функция Π±Ρ‹Π»Π° Π²Ρ‹Π·Π²Π°Π½Π° ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Ρ‚ΠΎ стСк контСкстов выполнСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Ρ‚Π°ΠΊ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’Π΅Ρ€ΠΌΠΈΠ½ Β«ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Β» Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ? [Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ]

Π― ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽ ΡƒΠΆΠ΅ нСсколько мСсяцСв, ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ слово «контСкст» Π² классах. Как ServletContext (Java), Activity (Android), Service (Java, Android), NSManagedContext (Objective-C, iOS).

ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ словари, я Π²ΠΈΠΆΡƒ, Ρ‡Ρ‚ΠΎ слово ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚: ситуация, ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π°Ρ срСда, ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΈ Ρ‚. Π”. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ я Π½Π΅ являюсь носитСлСм английского языка, я Π½Π΅ понимаю, ΠΊ Ρ‡Π΅ΠΌΡƒ ΠΌΠ½Π΅ слСдуСт ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. НапримСр, Ссли Π±Ρ‹ ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ SomeClassContext ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ контСкста, я Π±Ρ‹ Π½Π΅ понял, ΠΊΠΎΠ³Π΄Π° ΠΌΠ½Π΅ слСдуСт Π½Π°Π·Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ контСкстом, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ я Π΅Π³ΠΎ Π½Π΅ понимаю.

Π― искал контСкст Π² ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ стСка, Π½ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ вопрос / ΠΎΡ‚Π²Π΅Ρ‚ Π½Π΅ смог ΠΌΠ½Π΅ ΠΏΠΎΠΌΠΎΡ‡ΡŒ.

Π― Π±Ρ‹Π» Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π΄, Ссли Π±Ρ‹ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠ³ Π΄Π°Ρ‚ΡŒ ΠΌΠ½Π΅ объяснСниС.

Допустим, Π²Ρ‹ ΠΈΠ΄Π΅Ρ‚Π΅ ΠΊ стоматологу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ Π·ΡƒΠ±.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ допустим, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠ΄Π΅Ρ‚Π΅ Π² Π±Π°Π½ΠΊ.

Π§Π΅ΠΌ большС контСкста Π²Ρ‹ Π΄Π°Π΄ΠΈΡ‚Π΅, Ρ‚Π΅ΠΌ большС Π·Π½Π°Π½ΠΈΠΉ Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ваш запрос. Иногда контСкст являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π²ΠΎΠ΄ΠΈΡ‚ всС большС ΠΈ большС слов Π² поискС Google, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹), Π° ΠΈΠ½ΠΎΠ³Π΄Π° это трСбуСтся (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π²ΠΎΠ΄ PIN-ΠΊΠΎΠ΄Π° Π² Π±Π°Π½ΠΊΠΎΠΌΠ°Ρ‚Π΅). Π’ любом случаС, это информация, которая ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Π΅Ρ‰ΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±Π΅Ρ€Π΅Ρ‚Π΅ свои 100 Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ² ΠΈ ΠΏΠΎΠΊΡƒΠΏΠ°Π΅Ρ‚Π΅ Π±ΠΈΠ»Π΅Ρ‚ Π½Π° самолСт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»Π΅Ρ‚Π°Ρ‚ΡŒ ΠΊΡƒΠ΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ‚Π΅ΠΏΠ»Ρ‹ΠΌ, ΠΏΠΎΠΊΠ° Π·Π°ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€ΠΎΡ‚.

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

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’Π΅Ρ€ΠΌΠΈΠ½ «Context» Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ?

Π― ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΡŽ ΡƒΠΆΠ΅ нСсколько мСсяцСв, ΠΈ Π² классах часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ слово «context». НапримСр ServletContext (Java), Activity (Android), Service (Java, Android), NSManagedContext (Objective-C, iOS).

Заглянув Π² словари, я Π²ΠΈΠΆΡƒ, Ρ‡Ρ‚ΠΎ это слово ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚: ситуация, ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΈ Ρ‚. Π΄. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ я Π½Π΅ являюсь носитСлСм английского языка, я Π½Π΅ понимаю, Π½Π° Ρ‡Ρ‚ΠΎ я Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ нСпосрСдствСнно. НапримСр, Ссли Π±Ρ‹ я написал класс с ΠΈΠΌΠ΅Π½Π΅ΠΌ SomeClassContext ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ context, я Π±Ρ‹ Π½Π΅ понял, ΠΊΠΎΠ³Π΄Π° ΠΌΠ½Π΅ слСдуСт Π½Π°Π·Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ context, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ я Π΅Π³ΠΎ Π½Π΅ понимаю.

Π― искал контСкст Π½Π° Stack Overflow, Π½ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ вопрос/ΠΎΡ‚Π²Π΅Ρ‚ Π½Π΅ смог ΠΌΠ½Π΅ ΠΏΠΎΠΌΠΎΡ‡ΡŒ.

Π― Π±Ρ‹Π» Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π΄, Ссли Π±Ρ‹ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΌΠΎΠ³ Π΄Π°Ρ‚ΡŒ ΠΌΠ½Π΅ это объяснСниС.

9 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ контСкст Π² контСкстно-свободных ΠΈ контСкстно-зависимых языках? ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ пСрСмСнная ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько контСкстов? Если ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ адрСсС памяти, ΠΊΠ°ΠΊ это влияСт Π½Π° контСкст адрСса памяти? И Ссли я Ρ…ΠΎΡ‡Ρƒ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΊΠ°ΠΊ мСняСтся.

Допустим, Π²Ρ‹ ΠΈΠ΄Π΅Ρ‚Π΅ ΠΊ стоматологу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π°ΠΌ Π²Ρ‹Ρ€Π²Π°Π»ΠΈ Π·ΡƒΠ±.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠ΄Π΅Ρ‚Π΅ Π² Π±Π°Π½ΠΊ.

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

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

НадСюсь, это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚.

Π― ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡΡŒ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ создания ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΡ… классов ΠΈΠ»ΠΈ APIs ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ², это Ρ‚Π΅Ρ€ΠΌΠΈΠ½, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌΠΈ программистами Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΠ΄Π΅ΠΈ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π² Π²ΠΈΠ΄Ρƒ ΠΏΠΎΠ΄ этим; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, простой вопрос; Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π²Π΅Ρ‰Π΅ΠΉ, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ связанных нСпосрСдствСнно с Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π½ΠΎ всС ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ умСстным. ΠΠ΅ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ способ описания этого ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ «stuff you may care about».

НапримСр, Ссли Π±Ρ‹ Π²Ρ‹ писали слуТбу для обновлСния значСния Π² Π‘Π”, Π²Ρ‹, вСроятно, ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Π±Ρ‹ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ записи ΠΈ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

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

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, я ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽ это сообщСниС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ всСм, ΠΊΡ‚ΠΎ, ΠΊΠ°ΠΊ ΠΈ я, ΠΈΠ·ΠΎ всСх сил пытаСтся ΠΏΠΎΠ½ΡΡ‚ΡŒ «Context»

ΠŸΠ°Ρ†ΠΈΠ΅Π½Ρ‚ ΠΈΠ΄Π΅Ρ‚ ΠΊ Π΄ΠΎΠΊΡ‚ΠΎΡ€Ρƒ ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ treat_me ( «I have a headache» ) Doc office Π΄Π°Π΅Ρ‚ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Ρƒ Ρ„ΠΎΡ€ΠΌΡƒ для заполнСния. ΠŸΠ°Ρ†ΠΈΠ΅Π½Ρ‚ заполняСт Π°Π½ΠΊΠ΅Ρ‚Ρƒ. Π€ΠΎΡ€ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Ρ€Π°Ρ‡ΠΎΠΌ для выполнСния запроса «treat_me».

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выглядит запрос :

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит filled_form_num_23321 :

НадСюсь, это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΡΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ «Context».

я всСгда Π΄ΡƒΠΌΠ°ΡŽ ΠΎ контСкстС ΠΊΠ°ΠΊ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ состоянии, ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΈΠ»ΠΈ конструкции, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ.

Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½Π° ΡˆΡ‚Ρ€ΠΈΡ…Π° составляСт 1.5 пиксСлСй Ρ†Π²Π΅Ρ‚ Π·Π°Π»ΠΈΠ²ΠΊΠΈ Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΎΠ±Π·ΠΎΡ€Π° (155, 200) Ρ†Π²Π΅Ρ‚ ΡˆΡ‚Ρ€ΠΈΡ…Π° красный

Π­Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ слоТно, Π½ΠΎ трСбуСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ Π² вашСм случаС-это срСда, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Он прСдоставляСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ / услуги / возмоТности, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Блишком часто Π°Π²Ρ‚ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ прСдставлСниС ΠΎ контСкстС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ слово «context».

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

3 Π³ΠΎΠ΄Π° спустя, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·Π΄Π½ΠΎ, Π½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, эта Ρ‚Π΅ΠΌΠ° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ. Π­Ρ‚ΠΎ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ слово «context» ΠΈΠΌΠ΅Π΅Ρ‚ тСхничСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ (Π° Π½Π΅ просто простоС английскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅).

НС ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π― Ρ‚ΠΎΠΆΠ΅ Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡƒΡΠ»Ρ‹ΡˆΠ°Ρ‚ΡŒ языковоС агностичСскоС объяснСниС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° тСхничСского программирования «context»

Edit : Или это, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ «context» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ Π² тСхничСском, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ контСкстС (Π±Π΅Π· ΠΊΠ°Π»Π°ΠΌΠ±ΡƒΡ€ΠΎΠ²). Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ этого Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°.

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ вопросы:

Π•ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΎΠ²Ρ‹Π΅ APIs ΠΎ context click Π² android SDK 23. И я Π½Π΅ смог Π½Π°ΠΉΡ‚ΠΈ ΠΈΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ объяснСния. НСкоторыС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ поиска (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для SketchUp) Π·Π°ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ мСня Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ context.

Π― знаю, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ тСхничСский Ρ‚Π΅Ρ€ΠΌΠΈΠ½ для этого, ΠΈ Π·Π° всю свою Тизнь я Π½Π΅ ΠΌΠΎΠ³Ρƒ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ: ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ класса (ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π²Π΅Ρ‰ΠΈ с функциями ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ) ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄ΠΎΠ»ΠΆΠ΅Π½.

Как Π±Ρ‹ Π²Ρ‹ Π½Π°Π·Π²Π°Π»ΠΈ Ρ‚Π°ΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ? function(f,vargs) < //variable count of arguments return function()< return f(vargs) >> Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ это ΠΊΠ°Ρ€Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΠΎ Ρƒ мСня.

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ контСкст Π² контСкстно-свободных ΠΈ контСкстно-зависимых языках? ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ пСрСмСнная ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько контСкстов? Если ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ.

Π― ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡΡŒ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ создания ΠΎΠ±ΠΎΠ»ΠΎΡ‡Π΅ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΡ… классов ΠΈΠ»ΠΈ APIs ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ², это Ρ‚Π΅Ρ€ΠΌΠΈΠ½, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌΠΈ программистами Π’Π°ΠΊ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ встроСнныС конструкторскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ? Π’ Ρ‡Π΅ΠΌ Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ конструктора?

Π― Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² Akka / Spray ΠΈ Scala. Π― Π²ΠΈΠΆΡƒ, ΠΊΠ°ΠΊ ΠΈΠ· akka Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ HttpRequest, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся класс: Http запрос ΠΈ Ρ‚Π°ΠΌ Ρ‚ΠΎΠΆΠ΅ RequestContext ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ akka Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ инкапсулируСт.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Context Класс

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅

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

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ срСду для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π΅ ΠΈ для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°.

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

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

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

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎ контСкстах см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹: процСссы ΠΈ Π΄ΠΎΠΌΠ΅Π½Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр класса Context.

Бвойства

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ контСкста.

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… контСкстных свойств.

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ контСкст ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° прилоТСния.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

ВыдСляСт Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

ВыдСляСт ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

ВыполняСт ΠΊΠΎΠ΄ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ контСкстС.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚, Ρ€Π°Π²Π΅Π½ Π»ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ.

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

ΠžΡ‡ΠΈΡ‰Π°Π΅Ρ‚ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ для контСкстов Π½Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

ΠžΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ всСх контСкстах.

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Π—Π°ΠΌΠΎΡ€Π°ΠΆΠΈΠ²Π°Π΅Ρ‚ контСкст, дСлая Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ контСкстных свойств ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ контСкста.

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ области Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ контСкста.

Π‘Π»ΡƒΠΆΠΈΡ‚ Ρ…ΡΡˆ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Π˜Ρ‰Π΅Ρ‚ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ контСкстноС свойство, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Type для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ экзСмпляра.

Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π½Π΅ΠΏΠΎΠ»Π½ΡƒΡŽ копию Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Object.

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

РСгистрируСт динамичСскоС свойство, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅Π΅ интСрфСйс IDynamicProperty с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ слуТбы ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ взаимодСйствия.

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

ΠŸΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ контСкста.

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

УстанавливаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ контСкстного свойства, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ.

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ прСдставлСниС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ контСкста ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ класса String.

Π­Ρ‚ΠΎΡ‚ API ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ инфраструктуру ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования нСпосрСдствСнно ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

ΠžΡ‚ΠΌΠ΅Π½ΡΠ΅Ρ‚ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ динамичСского свойства, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ интСрфСйс IDynamicProperty.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *