Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ написания ΠΊΠΎΠ΄Π°

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ кодирования

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‚Π°ΠΊΠΈΡ… стайл-Π³Π°ΠΉΠ΄ΠΎΠ²:
1. ΠŸΠ»ΠΎΡ…ΠΎ обоснована ΠΈΡ… Ρ†Π΅Π»Π΅ΡΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ
2. Они Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, вмСсто ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ².
3. Π­Ρ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΠ»ΠΎΡ…ΠΎ обоснованы ΠΈ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ построСны Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡Π°Ρ‰ΠΈΡ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ….

Π’ упомянутой ΡΡ‚Π°Ρ‚ΡŒΠ΅ всё обоснованиС нСобходимости стандартизации Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π²:

Π₯ΠΎΡ€ΠΎΡˆΠ΅Π΅ руководство ΠΏΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ:
1. УстановлСниС стандарта качСства ΠΊΠΎΠ΄Π° для всСх исходников;
2. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ согласованности ΠΌΠ΅ΠΆΠ΄Ρƒ исходниками;
3. Π‘Π»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ стандартам всСми Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ;
4. Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ продуктивности.

1. [Ρ‚ΡƒΡ‚ располагаСтся ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ стандарт] Β«Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ Π½ΡƒΠΆΠ΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π» стандарт» β€” Π½Π΅ обосновываСт Π΅Π³ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅.
2. Π’ любом Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΡƒΡ‡Π° ΠΊΠΎΠ΄Π°, Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ вСяниям ΠΌΠΎΠ΄Ρ‹ оформлСния: измСнСния стайл-Π³Π°ΠΉΠ΄Π° со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, лСгаси ΠΊΠΎΠ΄, ΠΊΠΎΠ΄ сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π°Π²Ρ‚ΠΎΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ ΠΈ Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΈ ΠΏΠ»ΠΎΡ…ΠΎ, ΠΊΠ°ΠΊ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ.
3. Π’ΠΎ ΠΆΠ΅ Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚.
4. Π£ΠΆΠ΅ Ρ‚Π΅ΠΏΠ»Π΅Π΅, Π½ΠΎ ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, Π½Π΅ обосновываСтся ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ этого Π΄ΠΎΠ»ΠΆΠ½Π° вырасти, ΠΈ Π³Π»Π°Π²Π½ΠΎΠ΅ β€” Π½Π° сколько.

По своСму ΠΎΠΏΡ‹Ρ‚Ρƒ ΠΌΠΎΠ³Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ самоС Ρ…ΡƒΠ΄ΡˆΠ΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠΌ стилС, ΠΎΡ‚ Ρ‡Π΅Π³ΠΎ любой ΠΊΠΎΠ΄ написанный Β«Π½Π΅ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΒ» Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‚Ρ€Π΅Π²ΠΎΠ³Ρƒ, Π³Π½Π΅Π² ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π½Π°Π²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΠΌ свои ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠΈ. ΠšΡƒΠ΄Π° ΠΏΠΎΠ»Π΅Π·Π½Π΅Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ исходники, игнорируя ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅. И для этого Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ€Π°Π·Π½ΠΎΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. Π― Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΡŽ, Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ Ρ€Π°ΡΡΠ»Π°Π±ΠΈΡ‚ΡŒΡΡ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ всё Π² ΠΎΠ΄Π½Ρƒ строку, Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°ΠΊ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ, Π΅ΡΡ‚ΡŒ ΠΊΡƒΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, Ρ‡Π΅ΠΌ «стандарт Π½ΡƒΠΆΠ΅Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всё Π±Ρ‹Π»ΠΎ стандартно».

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π³Ρ€Π°ΠΌΠΎΡ‚Π½Ρ‹ΠΉ стандарт:
1. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΡΡ с цСлями
2. Π‘Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΏΡ€ΠΎΠ²Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° соотвСтствиС цСлям
3. Π‘Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΏΡ€Π°Π²ΠΈΠ», для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этих ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ²

Π˜Ρ‚Π°ΠΊ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ

ЦСль: ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡƒΡ‚Ρ‘ΠΌ налоТСния Π½Π° сСбя ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ.

Π’ Ρ‡Ρ‘ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°:
1. написаниС нового кода
2. ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ, Π² Ρ‚ΠΎΠΌ числС ΠΈ автоматичСская
3. поиск Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ участка ΠΊΠΎΠ΄Π°
4. Π°Π½Π°Π»ΠΈΠ· Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠ΄Π°
5. поиск источника Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ повСдСния
6. сравнСниС Ρ€Π°Π·Π½Ρ‹Ρ… вСрсий ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
7. пСрСнос ΠΊΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ

КакиС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ поставлСнной Ρ†Π΅Π»ΠΈ:

1. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Ρ„Π°ΠΉΠ»Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ максимально нСзависимы.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° проста: Ссли ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ строки трСбуСтся ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ…, Ρ‚ΠΎ это ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ риск ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ слиянии Π²Π΅Ρ‚ΠΎΠΊ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ β€” это Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ½ΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя Π½Π° Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ эта простая идСя проскакиваСт Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ» упомянутой Π² Π½Π°Ρ‡Π°Π»Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ явно ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡Π°Ρ‰ΡƒΡŽ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΡŽ:

Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ β€” это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ красиво, Π½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:
1. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ строки с Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, icon—person-premium) ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ измСнСнию всСх строк Π² Π³Ρ€ΡƒΠΏΠΏΠ΅.
2. АвтоматичСскоС ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Ρ‹Π²Π°Π½ΠΈΠ΅ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΡΠΎΠ±ΡŒΡ‘Ρ‚ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ icon—person Π½Π° icon—user Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ инструмСтов).
3. Иногда ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ становятся Π½Π΅ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π½ΠΎ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ, ΠΎΡ‚ Ρ‡Π΅Π³ΠΎ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ становится слоТнСС.

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

Если Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π° javascript ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ сСбС ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ie8, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…Π²ΠΎΡΡ‚ΠΎΠ²ΡƒΡŽ ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΈ Π² Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°Ρ…:

Π”Ρ€ΡƒΠ³ΠΎΠΉ аспСкт этого ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… строках Ρ‚Π΅ сущности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ нСзависимо. ИмСнно поэтому ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ css-свойства Π½Π΅ стоит Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½Ρƒ строку. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ стоит ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚ΡŒΡΡ ΠΈ комплСксными свойствами.

Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ яркий ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ этого ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° β€” Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

Π’ΡƒΡ‚ ΠΌΡ‹ ΠΏΠΎΡΡ‚Π°Ρ€Π°Π»ΠΈΡΡŒ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π²Π΅Π½ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ строкС, Ρ‡Ρ‚ΠΎ позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ/ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ/ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ звСнья Π½Π΅ трогая сосСдниС строки, Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ всё Ρ€Π°Π²Π½ΠΎ остаётся сильная связь ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ придётся Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Π½Π° Π΄Π²Π΅ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π°Ρ‡Π°Π»Π°:

А Π²ΠΎΡ‚ ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΉ записи ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΠΏΠΎΠ»Π½ΡƒΡŽ свободу дСйствий:

2. НС ΡΠ²Π°Π»ΠΈΠ²Π°Ρ‚ΡŒ всС яйца (ΠΊΠΎΠ΄) Π² ΠΎΠ΄Π½Ρƒ ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ (Ρ„Π°ΠΉΠ»/Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ).

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

Часто ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΡ€Π·ΠΈΠ½Π°Ρ…: «всС ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈΒ», «всС скрипты», «всС стили». И ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ роста ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… появляСтся иСрархия, частично одинаковая, Π½ΠΎ ΠΈ с Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹ΠΌΠΈ отличиями. Π—Π°Π΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ΡΡŒ: Π° Ρ‚Π°ΠΊ Π»ΠΈ Π²Π°ΠΆΠ΅Π½ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π°? ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½ ΠΊΡƒΠ΄Π° Π²Π°ΠΆΠ½Π΅Π΅. Π’Π°ΠΊ Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ эти Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹? НС Π»ΡƒΡ‡ΡˆΠ΅ Π»ΠΈ всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ модуля Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ рядом, Π² ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, ΠΊΠ°ΠΊΠΈΠΌΠΈ Π±Ρ‹ Π½ΠΈ Π±Ρ‹Π»ΠΈ ΠΈΡ… Ρ‚ΠΈΠΏΡ‹? Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ. Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅:

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

3. Π―Π·Ρ‹ΠΊ программирования β€” ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ СстСствСнный язык.

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

JS частично ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, поэтому Π² Π½Ρ‘ΠΌ сСмиколоны Π² ΠΊΠΎΠ½Ρ†Π΅ строк ΡΠ²Π»ΡΡŽΡ‚ΡΡ тавтологиями:

А Π²ΠΎΡ‚ CSS Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, поэтому Π² Π½Ρ‘ΠΌ, Π±Π΅Π· Π½ΠΈΡ… Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ:

Для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ восприятия Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² языка, ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ расставлСны совсСм Π½Π΅ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ письмСнной Ρ€Π΅Ρ‡ΠΈ:

Для Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ, слова ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ свой порядок, Π²Ρ‹ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡΡΡŒ ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΊ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΈ ΠΎΠ±Ρ‰ΠΈΠΌ:

А ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ имСнования ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ с постфиксом Β«sΒ» (Ρ‡Ρ‚ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π΄Π°Ρ‘Ρ‚ ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ слова) Π² цСлях Сдинообразия Π΄Π°Ρ‘Ρ‚ Π±Π΅Π·Π³Ρ€Π°ΠΌΠΎΡ‚Π½Ρ‹Π΅ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния английского языка слова:

Но это мСньшСС Π·Π»ΠΎ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ программиста Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ знания всСх английских словоформ.

5. ΠŸΠΎΠ»Π½Ρ‹Π΅ ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΎΠ΄Π½ΠΎΠΉ сущности Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах

Поиск ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ β€” довольно частая опСрация ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½Π΅Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, поэтому Π²Π°ΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ мСсто, Π³Π΄Π΅ ΠΎΠ½ΠΎ опрСдСляСтся. НапримСр, Π²Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ страничку ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ Ρ‚Π°ΠΌ класс Β«b-user__compactΒ». Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ½ Ρ‚Π°ΠΌ появился. Поиск ΠΏΠΎ строкС Β«b-user__compactΒ» Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹Π΄Π°Ρ‘Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ имя этого класса Π½ΠΈΠ³Π΄Π΅ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π½Π΅ встрСчаСтся β€” ΠΎΠ½ΠΎ склСиваСтся ΠΈΠ· кусочков. А всё ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Ρ€Π΅ΡˆΠΈΠ» ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ копипасту Ρ†Π΅Π½ΠΎΠΉ услоТСния Π΄Π΅Π±Π°Π³Π°:

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

По ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌΡƒ классу Β«my-user__my-block-compactΒ» сразу Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ склССн ΠΈΠ· Π΄Π²ΡƒΡ… кусков: ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Β«my/blockΒ», Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π² Β«my/userΒ» ΠΈ ΠΎΠ±Π° Π»Π΅Π³ΠΊΠΎ находятся ΠΏΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ подстрокам. Аналогичная Π»ΠΎΠ³ΠΈΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΈ ΠΏΡ€ΠΈ использовании css-прСпроцСссоров, Π³Π΄Π΅ ΠΌΡ‹ встрСчаСмся с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ:

Если ΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ css-прСпроцСссоры, Ρ‚ΠΎ Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅:

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

Чистый ΠΊΠΎΠ΄: ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΈ слСдствия

Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. . Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ„ΠΎΡ‚ΠΎ. Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚-. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° . Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‚Π°ΠΊΠΈΡ… стайл-Π³Π°ΠΉΠ΄ΠΎΠ²: 1. ΠŸΠ»ΠΎΡ…ΠΎ обоснована ΠΈΡ… Ρ†Π΅Π»Π΅ΡΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ 2. Они Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, вмСсто ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ². 3. Π­Ρ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΠ»ΠΎΡ…ΠΎ обоснованы ΠΈ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ построСны Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡Π°Ρ‰ΠΈΡ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ….

Автор: Π’ΠΈΠΊΡ‚ΠΎΡ€ Бвирский, Senior Python Developer / Team Lead, DataArt

Бколько программистов, ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ чистый ΠΊΠΎΠ΄. Часто, проводя собСсСдованиС, я ΡΠ»Ρ‹ΡˆΡƒ, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄ β€” это Ρ‚Π°ΠΊΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»Π΅Π³ΠΊΠΎ читаСтся. БогласСн, Π½ΠΎ ΠΊΠ°ΠΊ подсказываСт ΠΌΠΎΠΉ Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚, это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½Π° айсбСрга.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ чистый ΠΊΠΎΠ΄?

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ чистый ΠΈ систСма спроСктирована Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ, Π»Π΅Π³ΠΊΠΎΠ³ΠΎ чтСния ΠΊΠΎΠ΄Π° нСдостаточно. Он Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ качСствами:

Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ чистый ΠΊΠΎΠ΄?

ΠžΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ стоит! Но Π½Π΅ всСгда ΠΈ Π½Π΅ Π²Π΅Π·Π΄Π΅ стоит ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒ чистотС слишком ΠΌΠ½ΠΎΠ³ΠΎ внимания.

НС стоит Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΎ цСлСсообразности ΠΈ срокС ΠΆΠΈΠ·Π½ΠΈ вашСго ΠΊΠΎΠ΄Π°. НапримСр, Ссли ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ стоит Π·Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ β€” PoC (Proof of concept), ΠΈ Π²Ρ‹ Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ стСк Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ выполняСт ΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, ваш ΠΊΠΎΠ΄ станСт Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ ΡƒΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· нСдСлю ΠΈΠ»ΠΈ Π΄Π²Π΅. НС стоит Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ силы Π½Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ этого Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°.

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

Π§Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ваш ΠΊΠΎΠ΄?

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

Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. fsjgzaluqud0uqfnqquxkg7 9uo. Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ„ΠΎΡ‚ΠΎ. Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚-fsjgzaluqud0uqfnqquxkg7 9uo. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° fsjgzaluqud0uqfnqquxkg7 9uo. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‚Π°ΠΊΠΈΡ… стайл-Π³Π°ΠΉΠ΄ΠΎΠ²: 1. ΠŸΠ»ΠΎΡ…ΠΎ обоснована ΠΈΡ… Ρ†Π΅Π»Π΅ΡΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ 2. Они Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, вмСсто ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ². 3. Π­Ρ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΠ»ΠΎΡ…ΠΎ обоснованы ΠΈ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ построСны Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡Π°Ρ‰ΠΈΡ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ….

Бамоорганизация

Рассмотрим нСсколько Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ качСство ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡƒΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ любого уровня.

НС ΡΠΏΠ΅ΡˆΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ Π² Π»ΠΎΠ±. Π—Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ вопросы ΡΡ‚Π°Ρ€ΡˆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ самому сСбС. ВсСгда Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π½ΠΎ-ΡΠ»Π΅Π΄ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ связь Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π₯ΠΎΡ€ΠΎΡˆΠΎ понимая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π²Ρ‹ смоТСтС эффСктивно Π΅Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ.

Π›ΡŽΠ±ΠΎΠΉ ΠΎΠΏΡ‹Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ Π΅Π³ΠΎ отсутствиС.

Командная Ρ€Π°Π±ΠΎΡ‚Π°

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π·Π°Π΄Π°Ρ‡ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅. ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° качСство ΠΌΠ΅ΠΆΠ΄Ρƒ Π΅Π΅ участниками. Π§Π΅ΠΌ большС ΠΊΠΎΠΌΠ°Π½Π΄Π°, Ρ‚Π΅ΠΌ слоТнСС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π² Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌ состоянии. Рассмотрим нСсколько ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² удСрТания ΠΊΠΎΠ΄Π° Π² Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… условиях.

Π’ΠΎ врСмя ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ нСсколько Π²Π΅Ρ‰Π΅ΠΉ:

Π‘ΡƒΡ‚ΡŒ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° позволяСт быстро ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ мноТСство ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ состоянии ΠΊΠΎΠ΄Π°.

НСпрСрывная интСграция Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ слСдуСтС Π΄Π²ΡƒΠΌ простым ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ:

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

Π‘ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ список соглашСний ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚Π΅ Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒΡΡ, соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… ΠΈ Ρ‚. Π΄. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΡ€Π°Π²ΠΈΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² этот список, Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для вас ΠΈ вашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. НС ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π² список соглашСний, Ссли ΠΊΠΎΠΌΠ°Π½Π΄Π΅ это ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚. Π­Ρ‚ΠΎ ΠΆΠ΅ касаСтся ΠΈ удалСния соглашСний ΠΈΠ· списка.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ свой список соглашСний ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈΡ…. НаиболСС ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ способ β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ соглашСния ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ статичСских Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Ρ€ΡƒΡ‡Π½Ρ‹Ρ… дСйствий.

Π§Π΅ΠΌ мСньшС ошибок Π² ΠΊΠΎΠ΄Π΅, Ρ‚Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ Π΅Π³ΠΎ качСство. Π’Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ тСстированиС ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ критичСскиС ошибки ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ.

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

НаличиС ошибок Π² вашСм ΠΊΠΎΠ΄Π΅, вСроятно, Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π°Π½Π°Π»ΠΈΠ· ΠΈ способ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этих ошибок ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ свои Π½Π°Π²Ρ‹ΠΊΠΈ, Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° собствСнных ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….

Когда Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка, ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… вопросов:

Π•ΡΡ‚ΡŒ нСсколько ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для количСствСнной ΠΎΡ†Π΅Π½ΠΊΠΈ качСства вашСго ΠΊΠΎΠ΄Π°. Π‘ Ρ‚Π°ΠΊΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π»Π΅Π³ΠΊΠΎ справляСтся SonarQube. Он с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ:

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ тСстировании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Она ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π² процСссС тСстирования. Π—Π°Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ»Π°Π½ΠΊΡƒ, Π½ΠΈΠΆΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π½ΠΎΠ΅ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π²Π°ΡˆΠΈΡ… тСстов Π½Π΅ опускаСтся.

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

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

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

Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ практичСского ΠΊΠΎΠ΄Π°, Ρ‡Π°ΡΡ‚ΡŒ 3 β€” Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ

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

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ аспСктами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΠ²Π»ΡΡŽΡ‚ΡΡ: логичСская Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ (Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ логичСский ΠΏΠΎΡ‚ΠΎΠΊ ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования), ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ инкапсуляция.

ЛогичСская Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ

1. Π‘Π»Π΅Π΄ΡƒΡŽΡ‚ Π»ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π° Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ логичСскому ΠΏΠΎΡ‚ΠΎΠΊΡƒ?

Когда Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π΄Π΅Π»ΠΎ с нСбольшими логичСскими ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ конструкции (Ссли, for, foreach, while ΠΈ Ρ‚. Π”.). Под Β«ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ конструкциями» я ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ ΠΈ ΠΎΠ±Ρ‰Π΅ΠΏΡ€ΠΈΠ½ΡΡ‚ΡƒΡŽ ΡΠ·Ρ‹ΠΊΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. НапримСр, Ρ†ΠΈΠΊΠ» ΠΏΠΎ простым массивам Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ foreach; это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ использованиС Ρ†ΠΈΠΊΠ»Π° for для Ρ‚Π°ΠΊΠΎΠΉ простой ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ являСтся Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π² языкС, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ PHP. ИспользованиС while Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΡƒΠΆΠ΄ΠΎ для Ρ‚Π°ΠΊΠΎΠΉ простой Π·Π°Π΄Π°Ρ‡ΠΈ. Π£ вас ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ свои ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΈ Π² этом случаС ΠΎΡ‚Π·ΠΎΠ²ΠΈΡ‚Π΅ΡΡŒ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ части ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ любой Ρ‚Π°ΠΌΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, ΠΈ Π²Ρ‹ Π² порядкС.

2. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π»ΠΈ слоТныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ стандартным шаблонам проСктирования?

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

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

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ конструкция

1. Π‘Π»Π΅Π΄ΡƒΡŽΡ‚ Π»ΠΈ структуры ΠΊΠΎΠ΄Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΌΡƒ Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ?

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ конструкция ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»ΠΈΡ‚Π΅ своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, состоящСС ΠΈΠ· Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π»Π΅Π³Ρ‡Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΊΡƒΡ‡Ρƒ связанных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

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

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

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

2. ЯвляСтся Π»ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ минимальной?

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

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ мСньшС ΠΌΠ΅ΠΆΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… зависимостСй, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ свою ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ТСсткиС зависимости ΠΌΠ΅ΠΆΠ΄Ρƒ модулями. ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚Π΅ ΠΈΡ…, Ссли ΠΌΠΎΠΆΠ΅Ρ‚Π΅, Π° Ссли Π½Π΅Ρ‚, Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΎΠ±Π° модуля Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. НапримСр, Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ элСктронной ΠΊΠΎΠΌΠΌΠ΅Ρ€Ρ†ΠΈΠΈ Ρƒ вас ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Β«ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹Β» ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Β«Π˜Π½Π²Π΅Π½Ρ‚Π°Ρ€ΠΈΠ·Π°Ρ†ΠΈΡΒ», Π° классы ΠΈΠ· инвСнтаря интСнсивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ классы ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ² ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π― Π±Ρ‹ слил ΠΎΠ±Π° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π» ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Β«Π˜Π½Π²Π΅Π½Ρ‚Π°Ρ€ΡŒΒ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°ΠΌΠΈ.

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ инкапсуляция

1. Достаточно Π»ΠΈ ΠΎΡ‚Π΄Π΅Π»Π΅Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ классы?

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

2. Достаточно Π»ΠΈ ΠΎΡ‚Π΄Π΅Π»Π΅Π½Ρ‹ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹?

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

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

РСзюмС

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

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

Π“Π»Π°Π²Π½Ρ‹Π΅ характСристики качСствСнного ΠΊΠΎΠ΄Π°

Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. f1784e490a254fc582021a28cbb33863. Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ„ΠΎΡ‚ΠΎ. Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚-f1784e490a254fc582021a28cbb33863. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° f1784e490a254fc582021a28cbb33863. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‚Π°ΠΊΠΈΡ… стайл-Π³Π°ΠΉΠ΄ΠΎΠ²: 1. ΠŸΠ»ΠΎΡ…ΠΎ обоснована ΠΈΡ… Ρ†Π΅Π»Π΅ΡΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ 2. Они Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, вмСсто ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ². 3. Π­Ρ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΠ»ΠΎΡ…ΠΎ обоснованы ΠΈ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ построСны Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡Π°Ρ‰ΠΈΡ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ….

Как часто Π²Ρ‹ ΠΏΠΎΡ€Π°ΠΆΠ°Π΅Ρ‚Π΅ΡΡŒ, читая Ρ‡ΡƒΠΆΠΎΠΉ ΠΊΠΎΠ΄, ΠΈ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅ «господи, Π½Ρƒ ΠΈ каша. Β». Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, достаточно часто. И ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π΄ΡƒΠΌΠ°Π» Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Ρ‡ΠΈΡ‚Π°Π» ваш ΠΊΠΎΠ΄? Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, насколько Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Π² чистотС своСго ΠΊΠΎΠ΄Π°? МоТно Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ понимаСшь, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ чистый ΠΊΠΎΠ΄.

Π‘Π»ΠΎΠΆΠ½ΠΎ Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ чистому ΠΊΠΎΠ΄Ρƒ, ΠΈ, скорСС всСго, сколько программистов β€” ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ. Однако, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ достаточно ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹. Π― собрал Π΄Π΅Π²ΡΡ‚ΡŒ самых Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Ρ‹Ρ… ΠΈ описал Π½ΠΈΠΆΠ΅.

1.ΠŸΠ»ΠΎΡ…ΠΎΠΉ ΠΊΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ, чистый ΠΊΠΎΠ΄ сфокусирован

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

Но я Π±Ρ‹ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ классами. Π’ свой послСднСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π Π°Π»ΡŒΡ„ ВСстфал (Ralf Westphal) прСдставил Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° СдинствСнной обязанности:

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

Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС, Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΡΡ‚Π°Ρ‚ΡŒΡŽ.

2. Π―Π·Ρ‹ΠΊ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ написали ΠΊΠΎΠ΄, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ Π΅Π³ΠΎ создали для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

НС язык Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ простой, Π° программист, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ язык выглядит просто.

(Ρ†ΠΈΡ‚Π°Ρ‚Π° Π ΠΎΠ±Π΅Ρ€Ρ‚Π° C. ΠœΠ°Ρ€Ρ‚ΠΈΠ½Π°)

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…Π°ΠΊΠΈ, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠ΄ ΠΈ язык ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выглядят Π½Π΅ΡƒΠΊΠ»ΡŽΠΆΠ΅. Если Π²Ρ‹ считаСтС, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ…Π°ΠΊΠΎΠΌ ΠΈΠ»ΠΈ Π·Π°ΠΏΠ»Π°Ρ‚ΠΊΠΎΠΉ, Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ нСдостаточно Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ Π² ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°Ρ… Π½Π°ΠΉΡ‚ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅, чистоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

3. НС Π½ΡƒΠΆΠ½ΠΎ избыточности

Код Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΡ‚ΡŒΡΡ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ DRY (Don’t repeat yourself β€” Π½Π΅ повторяйся). Если это Ρ‚Π°ΠΊ, Ρ‚ΠΎ модификация любого элСмСнта систСмы Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ измСнСния Π΄Ρ€ΡƒΠ³ΠΈΡ…, логичСски Π½Π΅ связанных элСмСнтов.

4. Π§ΠΈΡ‚Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ приятно

Когда Ρ‡ΠΈΡ‚Π°Π΅ΡˆΡŒ ваш ΠΊΠΎΠ΄, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΡˆΡŒ Β«Π“Π°Ρ€Ρ€ΠΈ ΠŸΠΎΡ‚Ρ‚Π΅Ρ€Π°Β» (Π΄Π°, знаю, я Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Ρ‰ΠΈΠ»). Π”ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ написали, Ρ‡Ρ‚ΠΎΠ±Ρ‹ любой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠ³ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π½Π΅ проводя часы Π² ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°Ρ… Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ.

Для этого Π½ΡƒΠΆΠ½ΠΎ ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ KISS (Keep It Simple, Stupid!) ΠΈ YAGNI (You Ain’t Gonna Need It β€” Π’Π°ΠΌ это Π½Π΅ понадобится). ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ KISS гласит, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ систСм Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π»ΡƒΡ‡ΡˆΠ΅ всСго Ссли ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΡ… простоту, Π° Π½Π΅ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ.

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

5. Π”Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ваш ΠΊΠΎΠ΄

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

6. НуТно ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ зависимости

7. МСньшС β€” Π»ΡƒΡ‡ΡˆΠ΅

Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ. ΠšΠ»Π°ΡΡΡ‹ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ, Π² ΠΈΠ΄Π΅Π°Π»Π΅ β€” всСго нСсколько строк ΠΊΠΎΠ΄Π°. Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ (Π² Ρ‚ΠΎΠΌ числС Π²Π½ΡƒΡ‚Ρ€ΠΈ класса). Π§Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹ Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΊΠΎΠ΄, Ρ‚Π΅ΠΌ Π»Π΅Π³Ρ‡Π΅ Π΅Π³ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ…ΠΎΡ€ΠΎΡˆΠΎ влияСт Π½Π° ΠΏΡƒΠ½ΠΊΡ‚ 4 β€” Π΄Ρ€ΡƒΠ³ΠΈΠΌ программистам Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π΅Π³ΠΎ.

8. НСобходимы ΡŽΠ½ΠΈΡ‚- ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠΎΡ‡Π½Ρ‹Π΅ тСсты

Как ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, удовлСтворяСт Π»ΠΈ наш ΠΊΠΎΠ΄ трСбованиям, Ссли Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ тСсты? Как ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Π΅Π³ΠΎ, Π½Π΅ боясь, Ρ‡Ρ‚ΠΎ всС сломаСтся? Код Π±Π΅Π· тСстов β€” просто Π½Π΅ чист. Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… ΡŽΠ½ΠΈΡ‚-тСстирования, Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ Three Pillars of Unit Tests, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΌΠΎΠΈΡ… ΠΊΠΎΠ»Π»Π΅Π³.

9. Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ

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

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ чистый ΠΊΠΎΠ΄?

Π’ Ρ†Π΅Π»ΠΎΠΌ, ΠΎΠ΄Π½ΠΎ послСднСС качСствС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΈΡ‚ΠΎΠ³ΠΎΠΌ всСго Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ:

Чистый ΠΊΠΎΠ΄ написан Ρ‚Π΅ΠΌ, ΠΊΠΎΠΌΡƒ Π½Π΅ ΠΏΠ»Π΅Π²Π°Ρ‚ΡŒ.

Ρ†ΠΈΡ‚Π°Ρ‚Π° Майкла ЀСтСрса (Michael Feathers).

Он написан Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ относится ΠΊ ΠΊΠΎΠ΄Ρƒ ΠΊΠ°ΠΊ ΠΊ искусству, ΠΈ ΠΊΡ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° всС Π΄Π΅Ρ‚Π°Π»ΠΈ.

Π’Π΅ΠΌΠ° чистого ΠΊΠΎΠ΄Π° β€” ΠΎΡ‡Π΅Π½ΡŒ слоТна, ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ описанного Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ, Ссли Π²Ρ‹ считаСтС, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ характСристики чистого ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ, поТалуйста, ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ ΠΈΠΌΠΈ Π² коммСнтариях.

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

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

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