ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠŸΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π°

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’ΠΎΠΎΠ±Ρ‰Π΅, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ программисты — консСрваторы. Они ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π²ΡΠ΅ Π΅Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ («Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½Π΅ Ρ‚Ρ€ΠΎΠΆΡŒ!»). Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½ΠΈΡŽ ΠΎΠ±Ρ‰Π΅ΠΉ эффСктивности систСм. Π’ Π₯Π  ΠΆΠ΅ считаСтся, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π½ΡƒΠΆΠ½ΠΎ постоянно ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ — ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ лишниС части, ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ процСсс Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠΎΠ΄Π°… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΠŸΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π°

Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΡΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΠΊΡƒΡ€ΡΡƒ «ΠΠ½Π°Π»ΠΈΠ· ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм» ΠΌΡ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ вопросы — «ΠŸΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π°» ΠΈ «Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ исходным ΠΊΠΎΠ΄ΠΎΠΌ. ΠšΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠΌ».

ЦСлью Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ понятия «Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³» ΠΈ «ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠΌ». Π—Π°Π΄Π°Ρ‡ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ — Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΏΠΎΠ±ΡƒΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡŽ понятий, ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ извСстныС особСнности, ΠΎΡ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… понятий ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ достоинства ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΠΊΠΈ понятий.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ исслСдования — Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм. ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹ исслСдования — Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π’ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ содСрТатся ссылка Π½Π° Ρ†Π΅Π»ΡŒ ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ исслСдования, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎ излагаСтся Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ². Π Π°Π±ΠΎΡ‚Π° содСрТит Π΄Π²Π΅ смысловыС части — Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚ ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΈΡΡΠ»Π΅Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ вопрос. РСфСративная Ρ‡Π°ΡΡ‚ΡŒ исслСдуСт тСорСтичСскоС понятиС «ΠŸΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π°» Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ·ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹; Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ — ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ авторский взгляд Π½Π° Π²ΠΎΠΏΡ€ΠΎΡ «ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ владСния ΠΊΠΎΠ΄ΠΎΠΌ».

ΠžΠ±Ρ‰ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΈ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΡ содСрТатся Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅». Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ написании Ρ€Π°Π±ΠΎΡ‚Ρ‹ источников.

1. ΠŸΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π°

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

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

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

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ основныС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡΡ‹Π»ΠΊΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°:

1. Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

По ΠΌΠ΅Ρ€Π΅ внСсСния Π² ΠΊΠΎΠ΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, связанных с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ краткосрочных Ρ†Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ понимания ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°, послСдний ΡƒΡ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ свою ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ. РСгулярно ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ ΠΊΠΎΠ΄Π°.

2. Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

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

3. Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ошибки.

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΊΠΎΠ΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ Π²Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π² Π½Π΅Π³ΠΎ (ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΈΠ½Π°Ρ‡Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³?), ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ‚, ΠΈ Π΄ΠΎΡΡ‚ΠΈΠ³Π½ΡƒΡ‚ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, возвращая ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΊΠΎΠ΄, Ρ‚. Π΅. Π² ΡƒΠΌΠ΅ «ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ» ΠΎΠ½Ρ‹ΠΉ Π½Π° ΡΠ²ΠΎΠΉ Π»Π°Π΄. ПослС прояснСния структуры ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сдСланныС программистом допущСния становятся Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ясными, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ошибки. (Π‘ΠΊΠΎΡ€Π΅Π΅ здСсь ΠΈΠΌΠ΅Π΅Ρ‚ мСсто Π½Π΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π² Ρ†Π΅Π»ΠΎΠΌ, Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡ Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ, просмотр ΠΎΠ½ΠΎΠ³ΠΎ [5], ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° [ΠΏΡ€ΠΈΠΌ. Π°Π²Ρ‚ΠΎΡ€Π°]).

4. Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ позволяСт быстрСС ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

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

5. Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΈ Ρ‚Π΅Ρ€ΠΏΠ΅Π½ΠΈΠ΅.

«Π― Ρ‡Π°ΡΡ‚ΠΎ удивлялся Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ±ΡƒΠΆΠ΄Π°Π΅Ρ‚ мСня Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, я ΠΌΠΎΠ³Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΡŽ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Ρ‹, ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ понятным. Но Ρ‡Ρ‚ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΠΎΠ±ΡƒΠΆΠ΄Π°Π΅Ρ‚ мСня ΠΊ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ? Π­ΠΌΠΎΡ†ΠΈΠΈ. Часто я Π·Π°Π½ΠΈΠΌΠ°ΡŽΡΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠ΄ΠΎΠΌ Π±Ρ‹Π»Π° ΠΌΠ΅Π½Π΅Π΅ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅ΠΉ.» [6]

1.2 ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠšΡ€Π°Ρ‚ΠΊΠΎ опишСм ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, (ΠΎΠ½ΠΈ ΠΆΠ΅ Ρ‚Ρ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² [4]):

1. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠΉΡ‚Π΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π΄ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π˜ΡΠΏΡ€Π°Π²Π»ΡΠΉΡ‚Π΅ Π΄ΠΈΠ·Π°ΠΉΠ½, Π½Π΅ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π»Π΅Π³ΠΊΠΎΠΌΡƒ добавлСнию Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

2. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠΉΡ‚Π΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, Ссли трСбуСтся ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

ΠŸΡ€ΠΈ исправлСнии ошибок польза Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ становится Π±ΠΎΠ»Π΅Π΅ понятным. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° часто оказываСтся, Ρ‡Ρ‚ΠΎ такая активная Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ Π² Π½Π΅ΠΌ ошибки.

3. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠΉΡ‚Π΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΡ€ΠΈ Ρ€Π°Π·Π±ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π°.

Благодаря Ρ€Π°Π·Π±ΠΎΡ€Ρƒ ΠΊΠΎΠ΄Π° знания становятся достояниСм всСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠŸΡ€ΠΈ этом Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ свои знания ΠΌΠ΅Π½Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ. Π Π°Π·Π±ΠΎΡ€Ρ‹ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ числу людСй Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с Π±ΠΎΠ»ΡŒΡˆΠΈΠΌ числом аспСктов ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ систСмы. Они Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ для написания понятного ΠΊΠΎΠ΄Π°.

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

Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… объСма Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚авляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΎΡ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, поэтому ΠΊΡ€Π°Ρ‚ΠΊΠΎ остановимся Π½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ…, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π² [6, 1]:

1. ИзмСнСниС сигнатуры ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (Change Method Signature)

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

2. Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ поля (Encapsulate field)

Π’ ΡΠ»ΡƒΡ‡Π°Π΅, Ссли Ρƒ ΠΊΠ»Π°ΡΡΠ° имССтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ доступа. ПослС «Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΠΈ поля» часто примСняСтся «ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°».

3. Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (Extract Method)

Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΈΠ· Π΄Π»ΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΈ/ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊΠΎΠ΄Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΡ… Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, с ΠΏΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΎΠΉ подходящих Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² ΠΌΠ΅ΡΡ‚Π°Ρ… использования. Π’ ΡΡ‚ΠΎΠΌ случаС дСйствуСт ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: Ссли Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ коммСнтария ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ‚, Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ экран (25−50 строк, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΡƒΡΠ»ΠΎΠ²ΠΈΠΉ рСдактирования), Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΡŽ. Из Π°Π½Π°Π»ΠΈΠ·Π° связСй выдСляСмого Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° с ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠΌ контСкстом дСлаСтся Π²Ρ‹Π²ΠΎΠ΄ ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‡Π½Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ Π΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

4. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (Move Method)

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° примСняСтся ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‡Π°Ρ‰Π΅ обращаСтся ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ классу, Ρ‡Π΅ΠΌ ΠΊ Ρ‚ΠΎΠΌΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ сам располагаСтся.

5. Π—Π°ΠΌΠ΅Π½Π° условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠΎΠΌ (Replace Conditional with Polymorphism)

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

МногиС ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» встроСн Π² ΡΡ€Π΅Π΄ΡΡ‚Π²Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΊ Π½ΠΈΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ [8, 9]. Π­Ρ‚ΠΎ позволяСт ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ процСсс измСнСния ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π΅Π³ΠΎ качСство Π·Π° ΡΡ‡Π΅Ρ‚ сниТСния нСобходимости Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΏΡ€Π°Π²ΠΊΠΈ ΠΎΠ½ΠΎΠ³ΠΎ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΌΠ½ΠΎΠ³ΠΈΠ΅ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π²Π° тСстирования, Ρ‡Ρ‚ΠΎ позволяСт сразу ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ тСсты ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ, провСряя соблюдСниС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° постоянства повСдСния ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ основы понятия «Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ [10, 11]. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡ‚ΠΎΠΌ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² Π³Π»Π°Π²Π΅ «Π’СстированиС ΠΏΡ€ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅».

Π’ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ даСтся лишь ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС основных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, Π·Π° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ± ΠΎΠ½Ρ‹Ρ… совСтуСм Π²Π°ΠΌ обратится ΠΊ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠ°ΠΌ [4, 6, 7].

1.3 ΠŸΡ€ΠΈΠ·Π½Π°ΠΊΠΈ «ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ» ΠΊΠΎΠ΄Π° Код с Π·Π°ΠΏΠ°ΡˆΠΊΠΎΠΌ (ΠΊΠΎΠ΄ с Π΄ΡƒΡˆΠΊΠΎΠΌ, Π΄ΡƒΡ€Π½ΠΎ ΠΏΠ°Ρ…Π½ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π°Π½Π³Π». code smell) — Ρ‚Π΅Ρ€ΠΌΠΈΠ½, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ с ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ°ΠΌΠΈ (Π·Π°ΠΏΠ°Ρ…Π°ΠΌΠΈ) ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅, Π±Ρ‹Π» Π²Π²Π΅Π΄Π΅Π½ ΠšΠ΅Π½Ρ‚ΠΎΠΌ Π‘Π΅ΠΊΠΎΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ ΠœΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΌ Π€Π°ΡƒΠ»Π΅Ρ€ΠΎΠΌ Π² Π΅Π³ΠΎ ΠΊΠ½ΠΈΠ³Π΅ «Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³. Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°» [4], с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠŸΠž.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ нСобходимости провСдСния Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ±Ρ‰Π΅Π³ΠΎ состояния ΠΊΠΎΠ΄Π°. Но, слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄, содСрТащий Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½Π΅ Π²ΡΠ΅Π³Π΄Π° являСтся Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ, ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π°Π½Π°Π»ΠΈΠ· ΠΊΠ°ΠΊ самого ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊ ΠΈ Π΅Π³ΠΎ контСкста для вынСсСния ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎ Π½Π΅ΠΎΠ±Ρ…одимости Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° [4, 6]. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ «Π»ΠΎΠΆΠ½ΠΎ-ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ» ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ высокооптимизированный ΠΊΠΎΠ΄, ΠΊΠΎΠ³Π΄Π° Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π΅ Π½Π°Π΄ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒΡŽ, Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚ΠΎΠΉ находится быстродСйствиС ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ рСсурсов Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ ПО, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Ρ€ΠΎΠΆΠ΄Π΅Π½Π½Ρ‹Π΅ случаи (ΠΏΠΎΡ€Π°Π·ΠΌΡ‹ΡˆΠ»ΡΠΉΡ‚Π΅ Π½Π°Π΄ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ мСстами ΠΎΠ½ΠΎΠ³ΠΎ [ΠΏΡ€ΠΈΠΌ. Π°Π²Ρ‚ΠΎΡ€Π°]).

НС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ» поиска «Π»ΠΎΠΆΠ½ΠΎ-ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ» ΠΊΠΎΠ΄Π°, Ρ‚.ΠΊ., ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, само это понятиС ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Скста. Π’ Ρ€Π°Π±ΠΎΡ‚Π΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½ ΠΎΠ±Ρ‰ΠΈΠΉ список мСст, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Ρƒ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅:

Π”ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° — ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ структуры ΠΊΠΎΠ΄Π° Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… мСстах. ОбъСдинСниС этих структур ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄.

Π”Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ — Ρ‡Π΅ΠΌ Π΄Π»ΠΈΠ½Π½Π΅Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄, Ρ‚Π΅ΠΌ слоТнСС Π΅Π³ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Π°Ρ‰Π΅ всСго, Ссли Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Ρ‚ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ Ρ‚Π΅Π»ΠΎ.

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

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

РасходящиСся ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ — ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ мСсто, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎ являСтся слСдствиСм ΠΏΠ»ΠΎΡ…ΠΎΠΉ структурированности ΠŸΠž ΠΈΠ»ΠΈ программирования ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ копирования-вставки.

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

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Ρ‚ΠΈΠΏΠ° switch — Ссли ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π±Π»ΠΎΠΊ switch оказываСтся разбросанным ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ мСстам ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π² ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° приходится ΠΈΡΠΊΠ°Ρ‚ΡŒ всС эти Π±Π»ΠΎΠΊΠΈ switch ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ² Π±Π»ΠΎΠΊ switch, слСдуСт ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ΅.

Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ — это поля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ…. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Ρ‰Π΅ΠΉ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ для понимания, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ оТидаСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π½ΡƒΠΆΠ½Ρ‹ всС Π΅Π³ΠΎ поля.

Π¦Π΅ΠΏΠΎΡ‡ΠΊΠ° Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² — появляСтся Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ Ρ‚. Π΄. Π’Π°ΠΊΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ связан с Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅ классов. Π›ΡŽΠ±Ρ‹Π΅ измСнСния ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… связСй ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

НСумСстная Π±Π»ΠΈΠ·ΠΎΡΡ‚ΡŒ — ΠΊΠΎΠ³Π΄Π° классы Ρ‡Π°Ρ‰Π΅, Ρ‡Π΅ΠΌ слСдовало Π±Ρ‹, ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Π² Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ части Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°.

НСполнота Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΠΎΠ³ΠΎ класса — Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°ΡŽΡ‚ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ трСбованиям ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ЕстСствСнноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ — ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…, Π½ΠΎ ΡΡ‚ΠΈ классы Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для этой Ρ†Π΅Π»ΠΈ.

ΠžΡ‚ΠΊΠ°Π· ΠΎΡ‚ Π½Π°ΡΠ»Π΅Π΄ΡΡ‚Π²Π° — Ссли наслСдник ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ лишь ΠΌΠ°Π»ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ унаслСдованных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π² родитСля это являСтся ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ — часто ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ€ΠΎΠ»ΡŒ «Π΄Π΅Π·ΠΎΠ΄ΠΎΡ€Π°Π½Ρ‚Π°» ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появляСтся Π² Π½Π΅ΠΌ лишь ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ ΠΏΠ»ΠΎΡ…ΠΎΠΉ. ΠŸΠΎΡ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Π² ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ структуру ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡŽΠ±Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ стали излишними.

Π’Ρ‹ΡˆΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ лишь основныС Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Ρ‚Ρ‹ «ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ» ΠΊΠΎΠ΄Π°, Π·Π° Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΊΠ°ΠΊ ΠΏΠΎ «ΠΏΠ»ΠΎΡ…ΠΎΠΌΡƒ» ΠΊΠΎΠ΄Ρƒ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, примСняСмым для Π΅Π³ΠΎ устранСния, ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ [4, 6, 7].

1.4 ВСстированиС ΠΏΡ€ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ тСстированиС ΠΏΡ€ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅, Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: «Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ (Π°Π½Π³Π». refactoring) — ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ структурС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ Ρ†Π΅Π»ΡŒΡŽ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ, Π½Π΅ Π·Π°Ρ‚рагивая наблюдаСмого повСдСния».

Π’.Π΅. Π²Π°ΠΆΠ½Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лСксСмы «ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅» ΠΈ «ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ», Π½ΠΎ ΠΈ «Π½Π΅ Π·Π°Ρ‚рагивая наблюдаСмого повСдСния». Как достигаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ повСдСния? Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ внСсСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ? На ΡΡ‚ΠΈ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вопросы ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ тСстированиС.

ΠŸΡ€ΠΈ Π·Ρ€Π΅Π»ΠΎΠΌ Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ инвариантности повСдСния прСдставляСтся тСстированиС. Как ΠΏΠΈΡˆΠ΅Ρ‚ М. Π€Π°ΡƒΠ»Π΅Ρ€ Π² [4]: «ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ условиСм являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… тСстов». Из ΡΡ‚ΠΎΠ³ΠΎ слСдуСт, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ Π΄ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ° Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΊΠΎΠ΄ ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ тСсты, Ρ‚.ΠΊ. ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ коррСктности вносимых ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

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

ΠŸΡ€ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅ тСсты ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния ΠΈ, соотвСтствСнно Π»Π΅Π³ΠΊΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ошибки. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, развивая Π΄Π°Π½Π½ΡƒΡŽ ΠΌΡ‹ΡΠ»ΡŒ, ΠΌΡ‹ Π΅ΡΡ‚СствСнным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π°ΠΊΡƒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠ°ΠΊ Test Driven Development.

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

2. ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ исходным ΠΊΠΎΠ΄ΠΎΠΌ. ΠšΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠΌ. Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ ΠšΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠΌ — это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² «Π­ΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования» (XP), Π³ΠΈΠ±ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠŸΠž. Π‘ΡƒΡ‚ΡŒ Π΅Π³ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚ΠΈΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ идСями для всСх частСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² ΡΠ²ΠΎΠ΅ΠΉ Π·ΠΎΠ½Π΅ отвСтствСнности. А Ρ‚Π°ΠΊΠΆΠ΅ любой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ любой ΠΊΠΎΠ΄ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, исправлСния ошибок ΠΈΠ»ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

К ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡŽ, Π°Π²Ρ‚ΠΎΡ€Ρƒ Π½Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π»ΠΈΡΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, способныС ΡƒΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² Π³ΠΎΠ»ΠΎΠ²Π΅ вСсь ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ систСмы. Π­Ρ‚ΠΎ Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΡ… Π½Π΅Ρ‚, просто Ρ„Π°ΠΊΡ‚Ρ‹ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ рассСянности ΠΈ Π·Π°Π±Ρ‹Π²Ρ‡ΠΈΠ²ΠΎΡΡ‚ΠΈ, ΠΈ, Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡ‚ΠΎΠΌΡƒ, способСн ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ ошибки. Благодаря ΠΆΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌΡƒ владСнию ΠΊΠΎΠ΄ΠΎΠΌ сниТаСтся риск принятия Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (Π³Π»Π°Π²Π½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ) ΠΈ ΡƒΡΡ‚раняСтся Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, Ρ‚.ΠΊ. Ρ‡Π΅ΠΌ большС ΠΊΠΎΠ»Π»Π΅Π³ ознакомится с ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚Π΅ΠΌ большС ΠΌΠ½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π»ΡƒΠ±ΠΆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ смысл понятия «ΠšΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠΌ», Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΊΠΎΠ½Ρ‚СкстС самого XP. Π Π°Π±ΠΎΡ‚Π° c ΠΊΠΎΠ΄ΠΎΠΌ начинаСтся с ΡΠΎΠ·Π΄Π°Π½ΠΈΡ тСстов модуля, Ρ‚. Π΅. тСсты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ модуля. ВСсты ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊΠΎΠ΄ΠΎΠ² вмСстС с ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‚. ВСсты Π΄Π΅Π»Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ созданиС ΠΊΠΎΠ΄Π° ΠΈ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ Π·Π°Ρ‰ΠΈΡ‰Π°ΡŽΡ‚ ΠΊΠΎΠ΄ ΠΎΡ‚ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ обнаруТСния ошибки Ρ‚Π°ΠΊΠΆΠ΅ создаСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ тСст, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π΅Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ появлСниС. ВсС это общСизвСстныС истины.

ΠšΡ€ΠΎΠΌΠ΅ тСстов ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π²Π°ΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Ρ‚Ссты ΠΏΡ€ΠΈΠ΅ΠΌΠΊΠΈ, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… историях. Π­Ρ‚ΠΈ тСсты ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ систСму ΠΊΠ°ΠΊ «Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ ящик» ΠΈ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ систСмы.

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

ВсС ΠΊΠΎΠ΄Ρ‹ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠΈ программистов, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ Π·Π° ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ. ΠŸΠ°Ρ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ качСства Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. А ΡΡ‚ΠΎ, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ расходы Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ сопровоТдСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ систСмы.

Π’ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ всСх сотрудников ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ Π½Π° Π½ΠΎΠ²Ρ‹Π΅ участки Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’Π°ΠΊΠΈΠ΅ пСрСмСщСния ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ Π·Π½Π°Π½ΠΈΠΉ ΠΈ «ΡƒΠ·ΠΊΠΈΠ΅ мСста». ОсобСнно ΠΏΠΎΠ»Π΅Π·Π½Π° смСна ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠ°Ρ€Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

Π’ΠΎΠΎΠ±Ρ‰Π΅, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ программисты — консСрваторы. Они ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π²ΡΠ΅ Π΅Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ («Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½Π΅ Ρ‚Ρ€ΠΎΠΆΡŒ!» [ΠΏΡ€ΠΈΠΌ. Π°Π²Ρ‚ΠΎΡ€Π°]). Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½ΠΈΡŽ ΠΎΠ±Ρ‰Π΅ΠΉ эффСктивности систСм. Π’ Π₯Π  ΠΆΠ΅ считаСтся, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π½ΡƒΠΆΠ½ΠΎ постоянно ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ — ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ лишниС части, ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ процСсс Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠΎΠ΄Π° (refactoring, cΠΌ. Π³Π»Π°Π²Ρƒ «ΠŸΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π°»). РСорганизация ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, обСспСчиваСт Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, исправлСниС ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅. На Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Π΅ΠΌ Π½Π° ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°.

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

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

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

Π˜Π½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ нСобходимости Π² Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅ являСтся «ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄», Π½ΠΎ, слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄, содСрТащий Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½Π΅ Π²ΡΠ΅Π³Π΄Π° являСтся Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ, ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π°Π½Π°Π»ΠΈΠ· ΠΊΠ°ΠΊ самого ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊ ΠΈ Π΅Π³ΠΎ контСкста для вынСсСния ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎ Π½Π΅ΠΎΠ±Ρ…одимости Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° [4, 6].

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ совСтуСтся ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° добавляСтся новая функция, исправляСтся ошибка ΠΈΠ»ΠΈ проводится Ρ€Π°Π·Π±ΠΎΡ€ ΠΊΠΎΠ΄Π°. БущСствуСт Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, Π·Π½Π°Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π΅Π³ΠΎ примСнСния [4, 6]. МногиС срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ содСрТат срСдства Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

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

Достоинства провСдСния Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°: ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½ΠΈΠ΅ понимания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ошибок, ускорСниС написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, сохранСниС работоспособности ΠΈ Ρ‚СрпСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

НСдостатки провСдСния Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°: Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… тСстов, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ измСнСния ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… интСрфСйсов, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ провСдСния Ρ€Π΅Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ отсутствия Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ коррСктности ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· тСстированиС).

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

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ XP, TDD, Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡƒΡΠ»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ критСриями ΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ зависят ΠΎΡ‚ ΠΎΠ±Π»Π°ΡΡ‚ΠΈ примСнСния ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π‘Π΅Π·Π΄ΡƒΠΌΠ½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ€Π°ΠΆΠ°Π½ΠΈΠ΅ «ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ стилям» ΠΈ «Π½ΠΎΠ²Π΅ΠΉΡˆΠΈΠΌ мСтодологиям» являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΡΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… качСствСнноС Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π·Π½Π°Π½ΠΈΠΉ ΠΈ Π½Π°Π²Ρ‹ΠΊΠΎΠ² сообщСства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π½ΠΎ ΠΏΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½ΠΎΠ΅ ΠΈ Π²Π΄ΡƒΠΌΡ‡ΠΈΠ²ΠΎΠ΅ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… стилСй ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

1. ВикипСдия / Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. — Π Π΅ΠΆΠΈΠΌ доступа: https://en.wikipedia.org/wiki/Code_refactoring. — Π”Π°Ρ‚Π° доступа: 25.11.2013.

2. ВикипСдия / ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. — Π Π΅ΠΆΠΈΠΌ доступа: https://ru.wikipedia.org/wiki/ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ_ΠΊΠΎΠ΄Π°. — Π”Π°Ρ‚Π° доступа: 25.11.2013.

3. ВикипСдия / Π Π΅ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. — Π Π΅ΠΆΠΈΠΌ доступа: https://ru.wikipedia.org/wiki/Π Π΅ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. — Π”Π°Ρ‚Π° доступа: 25.11.2013.

4. Π€Π°ΡƒΠ»Π΅Ρ€ М., Π‘Π΅ΠΊ К., Π‘Ρ€Π°Π½Ρ‚ Π”., РобСртс Π”., Апдайк Π£. Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³: ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° / Refactoring: Improving the Design of Existing Code (2000). — Π‘ΠΏΠ±: Π‘ΠΈΠΌΠ²ΠΎΠ»-Плюс, 2009. — 432 с. — 3000 экз.

5. ВикипСдия / ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΊΠΎΠ΄Π° [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. — Π Π΅ΠΆΠΈΠΌ доступа: https://ru.wikipedia.org/wiki/ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€_ΠΊΠΎΠ΄Π°. — Π”Π°Ρ‚Π° доступа: 25.11.2013.

6. Π”ΠΆΠΎΡˆΡƒΠ° ΠšΠ΅Ρ€ΠΈΠ΅Π²ΡΠΊΠΈ Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ шаблонов / Refactoring to Patterns. — Π’ΠΈΠ»ΡŒΡΠΌΡ, 2008. — 400 с.

7. Π‘ΠΊΠΎΡ‚Ρ‚ Π’. Π­ΠΌΠ±Π»Π΅Ρ€, ΠŸΡ€Π°ΠΌΠΎΠ΄ΠΊΡƒΠΌΠ°Ρ€ Π”ΠΆ. Π‘Π°Π΄Π°Π»Π°Π΄ΠΆ Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…: ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ / Refactoring Databases: Evolutionary Database Design (Addison-Wesley Signature Series). — Πœ.: «Π’ΠΈΠ»ΡŒΡΠΌΡ», 2007. — 368 с.

8. Microsoft Developer Networks / Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ (Π‘#) [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. — Π Π΅ΠΆΠΈΠΌ доступа: http://msdn.microsoft.com/ru-ru/library/719exd8s.aspx. — Π”Π°Ρ‚Π° доступа: 25.11.2013.

9. IBM / Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ для всСх [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. — Π Π΅ΠΆΠΈΠΌ доступа: http://www.ibm.com/developerworks/ru/library/os-ecref/

10. Microsoft Developer Networks / ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. — Π Π΅ΠΆΠΈΠΌ доступа: http://msdn.microsoft.com/ru-ru/library/dd264975.aspx. — Π”Π°Ρ‚Π° доступа: 25.11.2013.

11. IBM / ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ тСстированиС Π² Eclipse [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. — Π Π΅ΠΆΠΈΠΌ доступа: http://www.ibm.com/developerworks/ru/library/os-eclipse-rmock/. — Π”Π°Ρ‚Π° доступа: 25.11.2013.

12. Codingcraft / Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ (Temporary Field) [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. — Π Π΅ΠΆΠΈΠΌ доступа: http://codingcraft.ru/resources/REFACTORING/TemporaryField.htm. — Π”Π°Ρ‚Π° доступа: 25.11.2013.

13. ΠšΠ΅Π½Ρ‚ Π‘Π΅ΠΊ: Π­ΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ / Extreme Programming Explained. — Π˜Π·Π΄.: «ΠŸΠΈΡ‚Π΅Ρ€», 2002. — 224 с.

14. 2programmer / ΠŸΡ€ΠΎΡ†Π΅ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ — ΠšΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠΌ [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. — Π Π΅ΠΆΠΈΠΌ доступа: http://2programmer.ru/tehnolog6?start=16. — Π”Π°Ρ‚Π° доступа: 25.11.2013.

15. ВикипСдия / Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· тСстированиС [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. — Π Π΅ΠΆΠΈΠΌ доступа: https://ru.wikipedia.org/wiki/Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· тСстированиС. — Π”Π°Ρ‚Π° доступа: 25.11.2013.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ