Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Ρ‡ΠΈΡ‰Π΅ ΠΈ понятнСС.

Π’ срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠ»Ρ‹ΡˆΠ°Ρ‚ΡŒ: «МнС Π½ΡƒΠΆΠ΅Π½ Π³ΠΎΠ΄ Π½Π° Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Β» (ΠΏΠΎΠ»Π³ΠΎΠ΄Π°, мСсяц, нСдСля, хотя Π±Ρ‹ Π΄Π΅Π½Ρ‘ΠΊ). Π§Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΈ Π·Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ β€” Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ.

На ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠ°Ρ„Π΅

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ Ρ‚Π°ΠΊΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ: ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ ΠΊΠ°Ρ„Π΅, построили Ρ‚Π°ΠΌ ΠΊΠ»Π°ΡΡΠ½ΡƒΡŽ ΠΊΡƒΡ…Π½ΡŽ ΠΈ наняли ΡˆΠ΅Ρ„-ΠΏΠΎΠ²Π°Ρ€Π°. Когда ΠΊΠ°Ρ„Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Π»ΠΎΡΡŒ, Π² мСню Π±Ρ‹Π»ΠΈ самыС простыС блюда, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·ΠΎΠ³Ρ€Π΅Ρ‚ΡŒ Π² ΠΌΠΈΠΊΡ€ΠΎΠ²ΠΎΠ»Π½ΠΎΠ²ΠΊΠ΅. Π’Ρ‹ ΠΊΡƒΠΏΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠ²ΠΎΠ»Π½ΠΎΠ²ΠΊΡƒ ΠΈ поставили Π½Π° ΠΊΡƒΡ…Π½Π΅. Рядом размСстили стСллаТ для всСго Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ.

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

Π•Ρ‰Ρ‘ Ρ‡Π΅Ρ€Π΅Π· мСсяц поставили Ρ„Ρ€ΠΈΡ‚ΡŽΡ€Π½ΠΈΡ†Ρƒ ΠΈ миксСр для тСста. К Π½ΠΈΠΌ Ρ‚ΠΎΠΆΠ΅ протянули ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ рядом ΡˆΠΊΠ°Ρ„Ρ‹ для ΡƒΡ‚Π²Π°Ρ€ΠΈ ΠΈ наняли Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π°Ρ€Π°. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π½Π° ΠΊΡƒΡ…Π½Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π±Π°Ρ€Π΄Π°ΠΊ, всё Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚, Π° блюда Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Если ΠΌΡ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ»ΠΈΡ‚Ρƒ, Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ слоТно: мСста Π½Π΅Ρ‚, хотя ΠΏΠΎ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ…ΠΎΡ‚ΡŒ Π΄Π²Π΅ Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ»ΠΈΡ‚Ρ‹.

Π’ этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΊΡƒΡ…ΠΎΠ½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΈ рисуСт всё Π·Π°Π½ΠΎΠ²ΠΎ: Π³Π΄Π΅ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡ‚ΠΎΡΡ‚ΡŒ.

Π§Π΅Ρ€Π΅Π· нСдСлю Π½Π° ΠΊΡƒΡ…Π½Π΅ всё ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ: ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ стоит Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ ΠΏΠΎΠ²Π°Ρ€Π°ΠΌ, ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° спрятаны Π² ΠΊΠΎΡ€ΠΎΠ±Π°, Π° стойки с ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ Π·Π°Π³ΠΎΡ€Π°ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹Ρ…ΠΎΠ΄. ΠŸΡ€ΠΈ этом мСню Π² ΠΊΠ°Ρ„Π΅ Π½Π΅ измСнилось: посСтитСли Π΄Π°ΠΆΠ΅ Π½Π΅ Π·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρƒ нас Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ происходило Π½Π° ΠΊΡƒΡ…Π½Π΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ процСссы, Π° Π½Π΅ мСню. Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ β€” ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ мСняСм Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ снаруТи это Π½Π΅Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ дальшС становится ΠΏΡ€ΠΎΡ‰Π΅.

Когда Π½ΡƒΠΆΠ΅Π½ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π•ΡΡ‚ΡŒ Π΄Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Ρƒ: ΠΏΠ»Π°Π½ΠΎΠ²Ρ‹ΠΉ ΠΈ ΠΏΠΎ нСобходимости.

ΠŸΠ»Π°Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ сразу Π·Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ врСмя Π½Π° Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π² Ρ†ΠΈΠΊΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. НапримСр, ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ спринта ΠΈΠ»ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ ΠΏΠΎΠ»Π³ΠΎΠ΄Π°.

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… компаниях, Π³Π΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ лСгаси-ΠΊΠΎΠ΄Π°, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ ΡΡ‚Π°Ρ€ΡŒΡ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ быстрСС ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Π½Ρ‘ΠΌ происходит ΠΈ ΠΊΠ°ΠΊ ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΠΎ нСобходимости, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй тормозится ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΡ… слоТно ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² старый ΠΊΠΎΠ΄. Π’ΠΎΠ³Π΄Π° ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Β«Π‘Ρ‚ΠΎΠΏ машина» ΠΈ Π±Π΅Ρ€Ρ‘ΠΌ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя Π½Π° Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ всСго, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ.

На Ρ‡Ρ‚ΠΎ смотрят ΠΏΡ€ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅ ΠΊΠΎΠ΄Π°

Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° β€” послС Π½Π΅Π³ΠΎ ΠΊΠΎΠ΄ стал Ρ‡ΠΈΡ‰Π΅, ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ понятнСС.

НапримСр, Ссли пСрСмСнная Z Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° количСство ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π΅Ρ‘ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° customerCount β€” Ρ‚Π°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ΄Π΅ ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ происходит.

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

Π•Ρ‰Ρ‘ программисты ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ классов. Если функция получаСтся слишком большой, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ экранС, β€” Π΅Ρ‘ Ρ€Π°Π·Π±ΠΈΠ²Π°ΡŽΡ‚ Π½Π° Π΄Π²Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°.

Иногда, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΡ‰Π΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ выносят Ρ‡Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΊ основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

А ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°?

Π–ΠΈΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π±Π΅Π· Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, Π½ΠΎ Ρ‡Π΅ΠΌ дальшС Π±Π΅Π· Π½Π΅Π³ΠΎ β€” Ρ‚Π΅ΠΌ тяТСлСС Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ β€” это ΠΊΠ°ΠΊ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠ΅ порядка Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ мСстС. Если Π΄ΠΎΠ»Π³ΠΎ ΠΈΠΌ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ, со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ становится Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ. РСгулярный Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π΅ Π·Π°ΠΌΠ΅Π΄Π»ΡΡ‚ΡŒ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ….

Π‘Π΅Π· Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.

Π§Ρ‚ΠΎ дальшС

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ эти знания Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΈ ΠΎΡ‚Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ· Π½Π°ΡˆΠΈΡ… старых ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ измСнится ΠΊΠΎΠ΄ ΠΈ Ρ‡Ρ‚ΠΎ получится Π² ΠΈΡ‚ΠΎΠ³Π΅.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π°? ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ Β«Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°Β» (refactoring) Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π² ΠΊΡ€ΡƒΠ³Π°Ρ…, связанных со Smalltalk, Π½ΠΎ вскорС нашла сСбС Π΄ΠΎΡ€ΠΎΠ³Ρƒ ΠΈ Π² лагСря ΠΏΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Ρ†Π΅Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ являСтся составной Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ структуры ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (framework development), этот Ρ‚Π΅Ρ€ΠΌΠΈΠ½ сразу появляСтся, ΠΊΠΎΠ³Π΄Π° «структурщики» Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ свои Π΄Π΅Π»Π°. Он Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡƒΡ‚ΠΎΡ‡Π½ΡΡŽΡ‚ свои ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ классов ΠΈ Π²ΠΎΡΡ‚ΠΎΡ€Π³Π°ΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌ, Π½Π° сколько строк ΠΈΠΌ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‰ΠΈΠΊΠΈ Π·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ структуру удаСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅ сразу β€” ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ накоплСния ΠΎΠΏΡ‹Ρ‚Π°. Им Ρ‚Π°ΠΊΠΆΠ΅ извСстно, Ρ‡Ρ‚ΠΎ Ρ‡Π°Ρ‰Π΅ приходится Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π° Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ. Π’ основС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ читаСмости ΠΈ модифицируСмости ΠΊΠΎΠ΄Π° Π»Π΅ΠΆΠΈΡ‚ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ β€” ΠΊΠ°ΠΊ Π² частном случаС структур (frameworks), Ρ‚Π°ΠΊ ΠΈ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π² Ρ†Π΅Π»ΠΎΠΌ.
Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π€ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

Π’Π°ΠΊ Π² Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°? Волько Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ с Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ связан извСстный риск. Он Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ внСсти измСнСния Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ появлСнию Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ошибок Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ осущСствляя Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ Π΄Π½ΠΈ ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅Π΄Π΅Π»ΠΈ. Π•Ρ‰Π΅ большим риском Ρ‡Ρ€Π΅Π²Π°Ρ‚ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, осущСствляСмый Π±Π΅Π· Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΈΠ»ΠΈ эпизодичСски. Π’Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ ΠΊΠΎΠΏΠ°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ΄Π΅. ВскорС ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ возмоТности ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΈ Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ ΠΊΠΎΠΏΠ°Ρ‚ΡŒ Π³Π»ΡƒΠ±ΠΆΠ΅. Π§Π΅ΠΌ большС Π²Ρ‹ ΠΊΠΎΠΏΠ°Π΅Ρ‚Π΅, Ρ‚Π΅ΠΌ большС вскрываСтся Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ Ρ‚Π΅ΠΌ большС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², получится яма, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π½Π΅ смоТСтС Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒΡΡ. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ€Ρ‹Ρ‚ΡŒ самому сСбС ΠΌΠΎΠ³ΠΈΠ»Ρƒ, слСдуСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° систСматичСской основС. Π’ ΠΊΠ½ΠΈΠ³Π΅ Β«Design PatternsΒ» сообщаСтся, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ для Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. Однако ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ†Π΅Π»ΡŒ β€” лишь ΠΎΠ΄Π½Π° Ρ‡Π°ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ; ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ этой Ρ†Π΅Π»ΠΈ, β€” другая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³?

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

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

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

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

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

Π‘Π°ΠΌΡ‹ΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, это Ρ€ΠΈΡ‚ΠΌ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°: тСстированиС, ΠΌΠ°Π»Ρ‹Π΅ измСнСния, тСстированиС, ΠΌΠ°Π»Ρ‹Π΅ измСнСния, тСстированиС, ΠΌΠ°Π»Ρ‹Π΅ измСнСния. ИмСнно Ρ‚Π°ΠΊΠΎΠΉ Ρ€ΠΈΡ‚ΠΌ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ быстрым ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°

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

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π΅ мСняСт Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ повСдСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Оно ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€Π΅ΠΆΠ½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Никто β€” Π½ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Π½ΠΈ программист β€” Π½Π΅ смоТСт ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ измСнилось.

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³?

Когда слСдуСт ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³?

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ слСдуСт Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ постоянно ΠΏΠΎΠ½Π΅ΠΌΠ½ΠΎΠ³Ρƒ. Надо Π½Π΅ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅, Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π² этом Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ приносит Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

Из-Π·Π° Ρ‡Π΅Π³ΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ? Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠ½Π΅ приходят Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹:

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

Когда Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π΅ Π½ΡƒΠΆΠ΅Π½?

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π½ΡƒΠΆΠ΅Π½. Основной ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с нуля. Иногда ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ ΠΊΠΎΠ΄ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΡƒΡ‚Π°Π½, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Ρƒ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ всС с самого Π½Π°Ρ‡Π°Π»Π°.

Π―Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ нСобходимости ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ β€” Π΅Π³ΠΎ Π½Π΅Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ обнаруТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π΅Π³ΠΎ тСстировании, ΠΊΠΎΠ³Π΄Π° ошибок оказываСтся Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ устойчивым Π½Π΅ удаСтся. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² основном ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

Π”Ρ€ΡƒΠ³ΠΎΠΉ случай, ΠΊΠΎΠ³Π΄Π° слСдуСт Π²ΠΎΠ·Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, это Π±Π»ΠΈΠ·ΠΎΡΡ‚ΡŒ Π΄Π°Ρ‚Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Рост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, достигаСмый благодаря Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Ρƒ, проявит сСбя слишком ΠΏΠΎΠ·Π΄Π½ΠΎ β€” послС истСчСния срока. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π° Π² этом смыслС Ρ‚ΠΎΡ‡ΠΊΠ° зрСния Π£ΠΎΡ€Π΄Π° КаннингСма (Ward Cunningham). ΠΠ΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΎΠ½ сравниваСт с Π·Π°Π»Π΅Π·Π°Π½ΠΈΠ΅ΠΌ Π² Π΄ΠΎΠ»Π³ΠΈ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ для Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½ΡƒΠΆΠ½Ρ‹ ΠΊΡ€Π΅Π΄ΠΈΡ‚Ρ‹. Однако вмСстС с Π΄ΠΎΠ»Π³Π°ΠΌΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Ρ‹, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ обслуТивания ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, обусловлСнная Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ΄Π°. Π’Ρ‹ΠΏΠ»Π°Ρ‚Ρƒ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‚Π΅Ρ€ΠΏΠ΅Ρ‚ΡŒ, Π½ΠΎ Ссли ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ слишком Π²Π΅Π»ΠΈΠΊΠΈ, Π²Ρ‹ Ρ€Π°Π·ΠΎΡ€ΠΈΡ‚Π΅ΡΡŒ. Π’Π°ΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своими Π΄ΠΎΠ»Π³Π°ΠΌΠΈ, выплачивая ΠΈΡ… Ρ‡Π°ΡΡ‚ΡŒ посрСдством Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

Однако ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ срока окончания Ρ€Π°Π±ΠΎΡ‚ β€” СдинствСнный случай, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, ΡΡΡ‹Π»Π°ΡΡΡŒ Π½Π° нСдостаток Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠžΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ нСсколькими ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ росту ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Ρ€ΡƒΠ΄Π°. НСхватка Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ сигнализируСт ΠΎ нСобходимости Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

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

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΠΎΡΠΎΠ±ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² качСствС дополнСния ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Если Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ дорогостоящСй ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. МногиС ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π°ΠΆΠ½Π΅Π΅ всСго, Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ прСдставляСт собой мСханичСский процСсс. АналогиСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° слуТит тСхничСский Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆ, Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΠ΅ΠΉ ΠΊΠΎΠ΄Π° β€” ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π°. Но ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° вСсьма отличаСтся ΠΎΡ‚ физичСского ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°. Она Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Π°Ρ‚Π»ΠΈΠ²Π° ΠΈ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ связана с ΠΎΠ±Π΄ΡƒΠΌΡ‹Π²Π°Π½ΠΈΠ΅ΠΌ. Как Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ЭлистСр ΠšΠΎΠΊΠ±Π΅Ρ€Π½ (Alistair Cockburn):
Β«ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° я Π΄ΡƒΠΌΠ°ΡŽ ΠΎΡ‡Π΅Π½ΡŒ быстро, Π½ΠΎ Π² ΠΌΠΎΠ΅ΠΌ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²Β».

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

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

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

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

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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° тСстов

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ условиСм являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… тСстов.

ΠŸΡ€Π°Π²ΠΈΠ»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСстов

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ тысячСй Ρ€Π°Π·Π½Ρ‹Ρ… способов, ΠΈ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Но ΠΊΠΎΠ΄ придётся ΠΏΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ.

Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π€ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π€ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ β€” это ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ стал Π±ΠΎΠ»Π΅Π΅ простым ΠΈ понятным.

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π΅ мСняСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π΅ исправляСт ошибки ΠΈ Π½Π΅ добавляСт Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Он Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ понятным ΠΈ ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ.

НапримСр, Π²ΠΎΡ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π½Π° Python, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΉ список ΠΈΠ· строки:

ΠŸΡ€ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² конструктор списков:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ измСнился, Π½ΠΎ ΠΊΠΎΠ΄ стал ΠΏΡ€ΠΎΡ‰Π΅, ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π΅Π΅ ΠΈ понятнСС.

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ сильно ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ качСство ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π€ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚, ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Π½Ρ‚, спСциалист ΠΏΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π›Π΅Π³ΠΊΠΎ ΠΈ доступно рассказываСт ΠΎ слоТных Π²Π΅Ρ‰Π°Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅.

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³

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

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

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ всС эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, дСлаСтся Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ Π½ΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹:

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

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°ΠΆΠ΅ идСальная ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ участки ΠΊΠΎΠ΄Π°.

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

Π§Π΅ΠΌ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ отличаСтся ΠΎΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ β€” Π½Π΅ оптимизация, хотя ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ с нСю связан. Часто Π΅Π³ΠΎ проводят ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, поэтому понятия каТутся синонимами. Но Ρƒ этих процСссов Ρ€Π°Π·Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ.

ЦСль ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ β€” ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° β€” ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ понятности ΠΊΠΎΠ΄Π°. ПослС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ исходный ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ слоТнСС для понимания.

ПослС Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ быстрСС, Π½ΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅ β€” Π΅Ρ‘ ΠΊΠΎΠ΄ становится ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ понятнСС.

Когда Π½ΡƒΠΆΠ½ΠΎ срочно ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄

ΠŸΡ€ΠΈΠ·Π½Π°ΠΊΠΈ, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½Π°Π·Ρ€Π΅Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅:

Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π½ΡƒΠΆΠ½ΠΎ срочно Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΡ‚ΡŒ, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΡΡ‚ΡŒ внСсСниС ΠΏΡ€Π°Π²ΠΎΠΊ.

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

Как Π΄Π΅Π»Π°ΡŽΡ‚ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ β€” это малСнькиС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°. Π§ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ всё, Π½ΠΎ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€Π°Π²ΠΊΠΈ посмотритС Π½Π° сосСдниС участки ΠΊΠΎΠ΄Π°: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΡ… Ρ‚ΠΎΠΆΠ΅ стоит ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ понятнСС. И Π½Π° Ρ‚Π΅ участки ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π²Π½ΠΎ Π½Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ, β€” ΠΎΠ½ΠΈ ΡƒΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ ΡΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ.

Код чистят ΠΈ Π½Π° этапС тСстирования, ΠΊΠΎΠ³Π΄Π° всё ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΈ провСряСтся Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ΡƒΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ выполняСт трСбования тСстировщиков ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³.

НС страдайтС ΠΏΠ΅Ρ€Ρ„Π΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΠ·ΠΌΠΎΠΌ! Если Π²Ρ‹ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ кусочСк ΠΊΠΎΠ΄Π°, Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‚Ρ€ΡΡ…ΠΈΠ²Π°Ρ‚ΡŒ всю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, разыскивая, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ. Π‘Ρ‚Ρ€Π΅ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΊ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²Ρƒ Π²Π΅Ρ‡Π½ΠΎ, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· Ρ„Π°Π½Π°Ρ‚ΠΈΠ·ΠΌΠ°.

Π’ Ρ‡Ρ‘ΠΌ опасности Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°

ΠœΡ‹ всё-Ρ‚Π°ΠΊΠΈ мСняСм Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠΎΠ΄. Π’ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ всё ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ, Π½ΠΎ ΠΈ сильно Π½Π°ΠΏΠΎΡ€Ρ‚Π°Ρ‡ΠΈΡ‚ΡŒ. НСбрСТный Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° Π΄Π½ΠΈ ΠΈ Π½Π΅Π΄Π΅Π»ΠΈ.

Опасно Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π΅ постоянно, Π° ΠΎΡ‚ случая ΠΊ ΡΠ»ΡƒΡ‡Π°ΡŽ. Π‘ΠΎΠ±Π»Π°Π·Π½ сильно ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ становится нСвыносимым. Π’Ρ‹ всё Π³Π»ΡƒΠ±ΠΆΠ΅ Π·Π°ΠΊΠ°ΠΏΡ‹Π²Π°Π΅Ρ‚Π΅ΡΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ ΠΊΠΎΠΏΠ°Π΅Ρ‚Π΅ сСбС яму, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π»Π΅Π³ΠΊΠΎ ΡƒΠ²ΡΠ·Π½ΡƒΡ‚ΡŒ.

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΡŒΡ‚Π΅ постоянно ΠΈ ΠΏΠΎ Ρ‡ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ.

Иногда Π±Ρ‹Π²Π°ΡŽΡ‚ злоупотрСблСния: Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ способом саботаТа, ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΊΠΎΠΉ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ€Π΅Π»ΠΈΠ·Ρ‹ ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΠΈΡ‡.

Но всё Ρ€Π°Π²Π½ΠΎ нСльзя ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅Π³Π°Ρ‚ΡŒ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это Π»ΡƒΡ‡ΡˆΠΈΠΉ способ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

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

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

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³

Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π€ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ β€” это ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ процСсс ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, Π±Π΅Π· написания Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° β€” это чистый ΠΊΠΎΠ΄ ΠΈ простой Π΄ΠΈΠ·Π°ΠΉΠ½.

Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π€ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

Грязный ΠΊΠΎΠ΄ являСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π»Π΅Π½ΠΈ ΠΈ нСвСТСства, Π½ΠΎ ΠΈ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ частых ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π€ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

Чистый ΠΊΠΎΠ΄ β€” это ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ просто Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ. Чистый ΠΊΠΎΠ΄ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ качСство ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π€ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

ΠŸΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ измСнСния, сопровоТдаСмыС частыми запусками тСстов β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ процСсс Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° эффСктивным ΠΈ бСзопасным.

Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π€ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

Π—Π°ΠΏΠ°Ρ…ΠΈ ΠΊΠΎΠ΄Π° β€” это ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅. Часто ΠΈΡ… Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄Π²Π΅Ρ‰Π°ΡŽΡ‚ ΠΎ Π³Π»ΡƒΠ±ΠΈΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… с ΠΊΠΎΠ΄ΠΎΠΌ.

Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π€ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

Π’Π΅Ρ…Π½ΠΈΠΊΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±ΠΎΡ€ΡŒΠ±Ρ‹ с грязным ΠΊΠΎΠ΄ΠΎΠΌ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ°ΠΊ достоинства, Ρ‚Π°ΠΊ ΠΈ нСдостатки. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ любой Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ ΠΎΠ±Π΄ΡƒΠΌΠ°Π½.

Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π€ΠΎΡ‚ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

21 Π·Π°ΠΏΠ°Ρ… ΠΊΠΎΠ΄Π°, 66 Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠ²
Π–ΠΈΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½Π° Java/C#/PHP
Никаких Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π°?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π°?

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ Β«Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°Β» Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π² ΠΊΡ€ΡƒΠ³Π°Ρ…, связанных со Smalltalk, Π½ΠΎ вскорС нашла сСбС Π΄ΠΎΡ€ΠΎΠ³Ρƒ ΠΈ Π² лагСря ΠΏΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Ρ†Π΅Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ являСтся составной Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ структуры ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (framework development), этот Ρ‚Π΅Ρ€ΠΌΠΈΠ½ сразу появляСтся, ΠΊΠΎΠ³Π΄Π° «структурщики» Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ свои Π΄Π΅Π»Π°. Он Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΡƒΡ‚ΠΎΡ‡Π½ΡΡŽΡ‚ свои ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ классов ΠΈ Π²ΠΎΡΡ‚ΠΎΡ€Π³Π°ΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌ, Π½Π° сколько строк ΠΈΠΌ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‰ΠΈΠΊΠΈ Π·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ структуру удаСтся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅ сразу β€” ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ накоплСния ΠΎΠΏΡ‹Ρ‚Π°. Им Ρ‚Π°ΠΊΠΆΠ΅ извСстно, Ρ‡Ρ‚ΠΎ Ρ‡Π°Ρ‰Π΅ приходится Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π° Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ. Π’ основС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ читаСмости ΠΈ модифицируСмости ΠΊΠΎΠ΄Π° Π»Π΅ΠΆΠΈΡ‚ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ β€” ΠΊΠ°ΠΊ Π² частном случаС структур (frameworks), Ρ‚Π°ΠΊ ΠΈ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π² Ρ†Π΅Π»ΠΎΠΌ.

Π’Π°ΠΊ Π² Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°? Волько Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ с Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ связан извСстный риск. Он Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ внСсти измСнСния Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ появлСнию Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ошибок Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ осущСствляя Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ Π΄Π½ΠΈ ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅Π΄Π΅Π»ΠΈ. Π•Ρ‰Π΅ большим риском Ρ‡Ρ€Π΅Π²Π°Ρ‚ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, осущСствляСмый Π±Π΅Π· Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΈΠ»ΠΈ эпизодичСски. Π’Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ ΠΊΠΎΠΏΠ°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ΄Π΅. ВскорС ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ возмоТности ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΈ Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ ΠΊΠΎΠΏΠ°Ρ‚ΡŒ Π³Π»ΡƒΠ±ΠΆΠ΅. Π§Π΅ΠΌ большС Π²Ρ‹ ΠΊΠΎΠΏΠ°Π΅Ρ‚Π΅, Ρ‚Π΅ΠΌ большС вскрываСтся Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ Ρ‚Π΅ΠΌ большС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², получится яма, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π½Π΅ смоТСтС Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒΡΡ. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ€Ρ‹Ρ‚ΡŒ самому сСбС ΠΌΠΎΠ³ΠΈΠ»Ρƒ, слСдуСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° систСматичСской основС. Π’ ΠΊΠ½ΠΈΠ³Π΅ Β«Design PatternsΒ» сообщаСтся, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ для Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. Однако ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ†Π΅Π»ΡŒ β€” лишь ΠΎΠ΄Π½Π° Ρ‡Π°ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ; ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ этой Ρ†Π΅Π»ΠΈ, β€” другая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³?

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈΠ»ΠΈ рСорганизация ΠΊΠΎΠ΄Π° β€” процСсс измСнСния Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ структуры ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π΅Ρ‘ внСшнСго повСдСния ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Ρ†Π΅Π»ΡŒΡŽ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½ΠΈΠ΅ понимания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ, ΠΏΡƒΡΡ‚ΡŒ ΠΈ Π½Π΅ всСгда, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

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

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

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

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

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

Π‘Π°ΠΌΡ‹ΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, это Ρ€ΠΈΡ‚ΠΌ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°: тСстированиС, ΠΌΠ°Π»Ρ‹Π΅ измСнСния, тСстированиС, ΠΌΠ°Π»Ρ‹Π΅ измСнСния, тСстированиС, ΠΌΠ°Π»Ρ‹Π΅ измСнСния. ИмСнно Ρ‚Π°ΠΊΠΎΠΉ Ρ€ΠΈΡ‚ΠΌ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ быстрым ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°

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

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ (Refactor): ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ структуру ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, примСняя ряд Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠ², Π½Π΅ затрагивая Π΅Π³ΠΎ повСдСния.

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π΅ мСняСт Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ повСдСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Оно ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€Π΅ΠΆΠ½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Никто β€” Π½ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ

Π‘Π΅Π· Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½Π΅ обходится Π½ΠΈ ΠΎΠ΄ΠΈΠ½ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слоТный ΠΈ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

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

Π’ самом простом случаС, Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ осущСствляСтся Π² процСссС написания ΠΊΠΎΠ΄Π°. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», добиваСтся работоспособности, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ написанного ΠΊΠΎΠ΄Π°. К соТалСнию, слоТно Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ слоТный ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ сразу идСально: ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ взаимосвязСй, Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

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

Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… всСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ систСмы ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ стоит Π΅Ρ‰Π΅ Π·Π°Π΄Π°Ρ‡Π° ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ имСнования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, форматирования ΠΈ достиТСния соблюдСния ΠΏΡ€ΠΎΡ‡ΠΈΡ… стандартов кодирования.

НаиболСС частыС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ для Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°:

Когда слСдуСт ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³?

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

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

Как ΠΌΠ½Π΅ каТСтся, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ внимания, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ…, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ удостоСны ΠΈ Ρ‚Π΅ части ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π²Π½ΠΎ Π½Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ (Π½Π΅ Π±Ρ‹Π»ΠΈ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ Π² процСссС исправлСния ошибок ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ вряд Π»ΠΈ ΠΎΠ½ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ нСвосприимчивы ΠΊ вносимым Π²Π°ΠΌΠΈ измСнСниям, хотя ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Но это ΡƒΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‚ скорСС Π½Π΅ Π½Π° вопрос β€œΠšΠΎΠ³Π΄Π° умСстно…”, Π° Π½Π° вопрос β€œΠ“Π΄Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒβ€¦β€

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ приносит Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

Из-Π·Π° Ρ‡Π΅Π³ΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ? Π•ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, 4 ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹:

Π˜Ρ‚Π°ΠΊ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, вся Π»ΠΎΠ³ΠΈΠΊΠ° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Π΄Π°Π½Π° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌ мСстС, модификация ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ставит ΠΏΠΎΠ΄ ΡƒΠ³Ρ€ΠΎΠ·Ρƒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ простым способом.

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

Когда Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π΅ Π½ΡƒΠΆΠ΅Π½?

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π½ΡƒΠΆΠ΅Π½. Основной ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с нуля. Иногда ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ ΠΊΠΎΠ΄ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΡƒΡ‚Π°Π½, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Ρƒ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ всС с самого Π½Π°Ρ‡Π°Π»Π°.

Π―Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ нСобходимости ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ β€” Π΅Π³ΠΎ Π½Π΅Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ обнаруТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π΅Π³ΠΎ тСстировании, ΠΊΠΎΠ³Π΄Π° ошибок оказываСтся Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ устойчивым Π½Π΅ удаСтся. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² основном ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

Π”Ρ€ΡƒΠ³ΠΎΠΉ случай, ΠΊΠΎΠ³Π΄Π° слСдуСт Π²ΠΎΠ·Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, это Π±Π»ΠΈΠ·ΠΎΡΡ‚ΡŒ Π΄Π°Ρ‚Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Рост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, достигаСмый благодаря Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Ρƒ, проявит сСбя слишком ΠΏΠΎΠ·Π΄Π½ΠΎ β€” послС истСчСния срока. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π° Π² этом смыслС Ρ‚ΠΎΡ‡ΠΊΠ° зрСния Π£ΠΎΡ€Π΄Π° КаннингСма (Ward Cunningham). ΠΠ΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΎΠ½ сравниваСт с Π·Π°Π»Π΅Π·Π°Π½ΠΈΠ΅ΠΌ Π² Π΄ΠΎΠ»Π³ΠΈ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ для Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½ΡƒΠΆΠ½Ρ‹ ΠΊΡ€Π΅Π΄ΠΈΡ‚Ρ‹. Однако вмСстС с Π΄ΠΎΠ»Π³Π°ΠΌΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Ρ‹, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ обслуТивания ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, обусловлСнная Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ΄Π°. Π’Ρ‹ΠΏΠ»Π°Ρ‚Ρƒ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‚Π΅Ρ€ΠΏΠ΅Ρ‚ΡŒ, Π½ΠΎ Ссли ΠΏΠ»Π°Ρ‚Π΅ΠΆΠΈ слишком Π²Π΅Π»ΠΈΠΊΠΈ, Π²Ρ‹ Ρ€Π°Π·ΠΎΡ€ΠΈΡ‚Π΅ΡΡŒ. Π’Π°ΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своими Π΄ΠΎΠ»Π³Π°ΠΌΠΈ, выплачивая ΠΈΡ… Ρ‡Π°ΡΡ‚ΡŒ посрСдством Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

Однако ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ срока окончания Ρ€Π°Π±ΠΎΡ‚ β€” СдинствСнный случай, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, ΡΡΡ‹Π»Π°ΡΡΡŒ Π½Π° нСдостаток Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠžΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ нСсколькими ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ росту ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Ρ€ΡƒΠ΄Π°. НСхватка Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ сигнализируСт ΠΎ нСобходимости Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ vs Π Π΅ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³?

Если Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° Π½Π΅ мСняСт повСдСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚ΠΎ Ρ€Π΅ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³ Π½Π° Ρ‚Π°ΠΊΠΎΠ΅ способСн. МоТно Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³, ΠΊΠ°ΠΊ ΠΊΡ€Π°ΠΉΠ½ΡŽΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, Π½ΠΎ ΠΌΠ½Π΅ каТСтся, Ρ‡Ρ‚ΠΎ это Π½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Π‘ΠΊΠΎΡ€Π΅Π΅, Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΈΡ€ΠΈΠ½Π³ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Π»Π΅Π³ΠΊΠΎΠ³ΠΎ Ρ€Π΅ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³Π°. Рассмотрим Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° пСриодичСский Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π² процСссС интСнсивного тСстирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ€Π΅ΠΈΠ½ΠΆΠ΅Π½ΠΈΡ€ΠΈΠ½Π³Ρƒ:

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

Π’Π°ΠΊΠΆΠ΅, часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² Ρ€Π΅ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³Π΅, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅ΡŽΡ‰ΡƒΡŽΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° использованиС ΠΈΠ½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ сторонних ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, ΠΈΠ»ΠΈ Π½Π° использованиС Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Ρƒ ΠΈ Ρ‚.Π΄. ΠΈ Ρ‚.ΠΏ.

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ vs ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ

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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° тСстов

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ условиСм являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Ρ… тСстов.

ΠŸΡ€Π°Π²ΠΈΠ»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСстов

ΠŸΡ€ΠΈΠ·Π½Π°ΠΊΠΈ, Ρ‡Ρ‚ΠΎ Π’Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΎΡ‡Π΅Π½ΡŒ сущСствСнно влияСт Π½Π° ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

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

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

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

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