ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠΊΡΡΠ³ Π½Π°Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΎ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅. ΠΠ°ΠΆΠ΅ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , Π³Π΄Π΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΈΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΌΡ ΠΈΠ· Π΅Π΅ Π²ΠΈΠ΄ΠΎΠ², Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π²ΠΈΠ΄ΠΎΠ² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ. ΠΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠΎΠ΄ΡΠΌΡΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠ°ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ΅Π΄Ρ ΡΠ΅ΡΠΊΠΎ ΠΏΡΠΎΠ΄ΡΠΌΠ°Π½Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° β ΡΡΠΎ Π·Π°Π»ΠΎΠ³ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π±ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π Π΅Π°ΠΊΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ Π²ΡΡΠΎΠΊΠΈΠΌΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠ°ΠΌΠΈ, Π·Π°Π²ΠΈΡΠ°Π½ΠΈΡ β Π²ΡΠ΅ ΡΡΠΎ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ΄ΡΠΌΠ°Π»ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΆΠ΄ΠΎΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊ ΠΎ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΡ Π»ΠΈΡ:
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ β Π² Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°Ρ , ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ, ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ;
Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β Π² Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°Ρ , ΡΡΠΎΠ±Ρ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ»Π° ΠΏΠΎΠ½ΡΡΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ;
Π‘ΠΠ-ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ° ΠΈ ΠΌΠ°ΡΠΊΠ΅ΡΠΎΠ»ΠΎΠ³Π° β Π² ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°Ρ , ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°Π΄Π°Π»ΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈ Π±ΡΠ»ΠΎ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΡΠΌ;
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° β Π² Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°Ρ , ΡΡΠΎΠ±Ρ ΠΊ ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ²Π»ΡΠ»ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ ΠΈ Π½Π΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ²ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ;
Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ° ΠΈΠ»ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ β Π² ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°Ρ , ΡΡΠΎΠ±Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ» ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ, ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΈ ΡΠΎΡΠ½ΡΠΌ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: Π²ΡΠ±ΠΎΡ ΠΈ Π²ΠΈΠ΄Ρ
Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΡ Π»ΠΈΡΠ°Ρ : Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°Ρ , ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡ , ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Ρ ΠΈ Π΄Ρ.;
ΠΌΠΈΡΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β ΠΎΡΡΡΠ΄Π° Π²ΡΡΠ΅ΠΊΠ°ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ : Π½Π° Π½Π°Π»ΠΈΡΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΈΠ·ΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌ Π΅ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ Π΅ ΡΡΡΡΠΎΠΉΡΡΠ², Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Ρ.
ΠΠ°ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΡ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅
Π‘ΡΠ°ΡΡΠΈΠΉ iOS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠ· Β«ΠΠΠΎΠ½ΡΠ°ΠΊΡΠ΅Β» ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΏΠΎΡΠ΅ΠΌΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π΅ Π³Π»Π°Π²Π½ΠΎΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΌ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠΌ.
ΠΠ°ΡΡ ΠΠ°Π²Π»ΠΎΠ²ΡΠΊΠ°Ρ Π΄Π»Ρ Skillbox Media
ΠΠ²Π³Π΅Π½ΠΈΠΉ ΠΠ»ΡΠ΅Π²
Π‘ΡΠ°ΡΡΠΈΠΉ iOS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΠΎ Β«ΠΠΠΎΠ½ΡΠ°ΠΊΡΠ΅Β». Π Π°Π½ΡΡΠ΅ Π±ΡΠ» ΡΡΠ»ΡΡΠ΅ΠΊΠΎΠΌ, Π±ΡΠΊΠ΅Π½Π΄Π΅ΡΠΎΠΌ ΠΈ DevOps, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΠ» ΠΎΡΠ΄Π΅Π»ΠΎΠΌ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΡΠΈ Π³ΠΎΠ΄Π° ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°Π» iOS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π² GeekBrains, Π±ΡΠ» Π΄Π΅ΠΊΠ°Π½ΠΎΠΌ ΡΠ°ΠΊΡΠ»ΡΡΠ΅ΡΠ°. Π‘ΠΎΡΡΠΎΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Podlodka iOS Crew, Π²Π΅Π΄ΡΡ YouTube-ΠΊΠ°Π½Π°Π» Ρ Π²ΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊΠ°ΠΌΠΈ ΠΏΠΎ Flutter. Π Twitter ΠΏΠΈΡΠ΅Ρ ΠΏΠΎΠ΄ Π½ΠΈΠΊΠΎΠΌ @tygeddar.
Π― Π»ΡΠ±Π»Ρ ΡΠΏΠΎΡΠΈΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π»ΡΡΡΠ΅. ΠΠΎΠΆΠ΅Ρ, ΠΈΠ·-Π·Π° ΡΠ²ΠΎΠ΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΏΠ΅ΡΡΠ΅ΠΊΡΠΈΠΎΠ½ΠΈΡΡΠ° ΠΈΠ»ΠΈ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, Π° ΠΌΠΎΠΆΠ΅Ρ, ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΌΠ½Π΅ Π»Π΅Π½Ρ ΠΊΠΎΠΏΠ°ΡΡΡΡ Π² ΠΏΠ»ΠΎΡ ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ .
Π‘ΠΏΠΎΠΉΠ»Π΅Ρ: Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Ρ Π»ΡΠ±Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ MVC. ΠΠ°Π»ΡΡΠ΅ ΡΠ°ΡΡΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΠ½Π΅ Π½Π΅ Π½ΡΠ°Π²ΡΡΡΡ Π²ΡΡΠΊΠΈΠ΅ MVVM, MVP ΠΈ VIPER. ΠΡΡΠ°ΡΠΈ, Π½Π΅Π΄Π°Π²Π½ΠΎ Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΡΡ Π²ΠΎ Flux ΠΈ Π΅Ρ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Redux ΠΈ ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ ΠΈΡ Ρ ΡΠΎΠΆΠ΅ Π½Π΅Π΄ΠΎΠ»ΡΠ±Π»ΠΈΠ²Π°Ρ.
Π ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ°ΡΡΠΈ β ΡΡΠ΅Π΄ Π°Π²ΡΠΎΡΠ° Π² Twitter.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° MVC
Π― ΡΠΎΠ³Π΄Π° Π±ΡΠ» ΡΡΡΠ΄Π΅Π½ΡΠΎΠΌ, Π΄Π΅Π»Π°Π» ΠΊΡΡΡΠΎΠ²ΡΠ΅ ΠΈ ΠΏΠ΅Ρ-ΠΏΡΠΎΠ΅ΠΊΡΡ. Π£ Π½ΠΈΡ Π±ΡΠ»Π° ΡΠ»ΠΎΠΆΠ½Π°Ρ Π²ΡΡΡΡΠΊΠ° ΠΈ Π½Π΅ΠΏΡΠΎΡΡΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΠ, Π½ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°. ΠΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠ°Π»ΡΡ ΠΏΡΠΎΡΡΡΠΌ, Π½ΠΎ Π² ΡΠ΅Π»ΠΎΠΌ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΡΡΡΠ°ΠΈΠ²Π°Π».
ΠΠ½Π΅ Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌ ΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π½Π° ΡΠΎΡΡΠΌΠ°Ρ . Π― Π±ΡΠ» ΡΡΠ°ΡΡΠ»ΠΈΠ² ΠΈ Π½Π΅ Π·Π°Π±ΠΈΠ²Π°Π» Π³ΠΎΠ»ΠΎΠ²Ρ ΡΠ΅ΠΏΡΡ ΠΎΠΉ.
Π― ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π² ΡΠ²ΠΎΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ β ΠΏΠ΅ΡΠ΅Π½ΡΡ Π΅Ρ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² Π΄ΡΡΠ³ΠΎΠΉ, Π½ΠΎ ΡΠ°Π·Π½ΠΈΡΡ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠΈΠ». ΠΠΎ ΡΠ°ΠΊΡΡ Π½ΠΈΡΠ΅Π³ΠΎ ΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ, ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ΄ ΡΠ΅ΠΏΠ΅ΡΡ Π»Π΅ΠΆΠ°Π» Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅.
ΠΠ·ΡΡΠ°Ρ Π΄ΠΈΡΠΊΡΡΡΠΈΠΈ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΈ ΡΠ°ΡΡΡΠΆΠ΄Π°Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Ρ ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ Β«ΡΠΎΠ»ΡΡΠ°ΡΒ» ΠΌΠΎΠ΄Π΅Π»Ρ ΠΌΠ½Π΅ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ. ΠΡΡΡΡ Π»ΡΡΡΠ΅ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΎΡΡΠ°ΡΡΡΡ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΈ Π΄Π°Π»ΡΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ.
Π‘ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡ Π²ΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΠΏΡΡ Π»Π΅Π΅ (ΠΏΡΠ°Π²Π΄Π°, Π½Π΅ ΠΊΠ°ΠΊ UIViewController Π² iOS). Π― ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» Ρ ΡΡΠΈΠΌ Π±ΠΎΡΠΎΡΡΡΡ, Π²ΡΠ½ΠΎΡΠΈΠ» Π»ΠΎΠ³ΠΈΠΊΡ Π² ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ°Π» Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ, Π½ΠΎ ΡΡΠΎ ΠΌΠ°Π»ΠΎ ΡΡΠΎ ΠΌΠ΅Π½ΡΠ»ΠΎ: Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠΎΡ ΡΠ°Π½ΡΠ»Π°ΡΡ, ΠΏΡΠΎΡΡΠΎ ΠΊΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠ»ΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² Π΄ΡΡΠ³ΠΎΠΉ.
ΠΠΎΡΠ΅ΠΌΡ MVC Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»Π° Π² ΠΌΠΎΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
Π 2013 Π³ΠΎΠ΄Ρ Ρ ΠΏΠ΅ΡΠ΅ΡΠ΅Π» Π½Π° Laravel, ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΡΡ Ρ Π°Π²ΡΠΎΠ·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡΠΎΠ² Π² PHP, Π½Π°ΡΠ°Π» ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ ΠΠΠ ΠΈ ΠΏΡΠΎΡΠΈΡΠ°Π» Β«Π‘ΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄Β» Π‘ΡΠΈΠ²Π° ΠΠ°ΠΊΠΊΠΎΠ½Π½Π΅Π»Π»Π°.
Π‘ΡΠ°Π»ΠΎ ΡΡΠ½ΠΎ, ΡΡΠΎ Π½Π΅ ΡΡΠΎΠΈΡ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π²ΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» β ΠΊΠΎΠ΄ ΠΈ ΠΊΠ»Π°ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ, Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π° Π»ΡΡΡΠ΅ ΡΠ±ΡΠ°ΡΡ ΠΈΠ· MVC ΠΈ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π² ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Ρ Π½Π°ΡΠ°Π» ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ. Π Π½ΠΈΡ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΠΊΡ, Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΡ ΡΠ΄Π΅Π» β ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π» Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ Π±Π°Π·Ρ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π» ΠΈΡ Π² ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΏΠΎΠ»ΡΡΠ°Π» ΠΎΡ Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ» Π½Π° HTML-ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π΅ Π±ΡΠ»Π° ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ΄ΠΎΡΠ»Π° Π±Ρ Π½ΠΈ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎ Π΄Π»Ρ ΠΌΠΎΠΈΡ ΡΠ΅Π»Π΅ΠΉ ΠΎΠ½Π° Π±ΡΠ»Π° ΠΊΡΡΡΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ: ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠ°Π»ΡΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΉ, Π° Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΎΡΡΠ°Π²Π°Π»ΠΈΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡ.
ΠΠ°ΠΊ Ρ Π΄Π΅Π»Π°Π» ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
VDS-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ
Π ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π» Π²Π΅Π±- ΠΈ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΈ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ, Π²ΡΠ½Π΅ΡΠ΅Π½Π½ΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΡΠ°ΠΊ: HTML β· JavaScript (ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ API) β· API β· ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ β· Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ. ΠΡΡ ΡΡΠΎ Π½Π΅ Π±ΡΠ»ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° MVC.
ΠΠΎΡΠ΅ΠΌΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π΅ Π³Π»Π°Π²Π½ΠΎΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅
ΠΠΎΠ³Π΄Π° Ρ ΡΠ²ΠΈΠ΄Π΅Π», ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ Π² Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ , ΡΠΎ ΠΎΡΠΎΠ·Π½Π°Π» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΆΠ½ΡΡ Π½ΡΠ°Π½ΡΠΎΠ².
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π΅ Π΄Π°ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ². ΠΠΈ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π΅ Π±ΡΠ»Π° Π»ΡΡΡΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ Π΄Π΅Π»Π°Π» Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅. ΠΠ° Π²ΡΡ Π²ΡΠ΅ΠΌΡ Ρ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠ³ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΈΡ ΠΏΠΎΠ»ΡΠ·Ρ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠΎ ΠΌΠ΅ΠΆΠ΄Ρ MVC ΠΈ MVP Π½Π΅ Π±ΡΠ»ΠΎ ΡΠ°Π·Π½ΠΈΡΡ β ΠΊΡΠΎΠΌΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΏΡΠ°Π²ΠΈΠ» Π²ΡΠΎΠ΄Π΅ ΡΠ΅Ρ , ΠΊΠΎΠ³Π΄Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°.
ΠΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ. ΠΠ΄Π½ΠΈ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ MVVM, Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ MVC. Π― Π²ΠΈΠ΄Π΅Π» ΠΏΡΡΡ MVVM-ΡΠΈΡΡΠ΅ΠΌ, ΠΈ Π²ΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ°Π·Π½ΡΠΌΠΈ. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ β VIPER, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΠ³ΠΎΡΡ Π’ΠΎΠ»ΡΡΠΎΠΌΡ Π΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ². ΠΠΎ Π΄Π°ΠΆΠ΅ ΡΠ°ΠΌ Π±ΡΠ»ΠΈ ΠΎΡΠ»ΠΈΡΠΈΡ.
ΠΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π΅ Π·Π½Π°ΡΠΈΡ Π»ΡΡΡΠ°Ρ. ΠΡΠ±ΠΈΡΠ°ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈΠ·-Π·Π° ΠΌΠ΅ΠΉΠ½ΡΡΡΠΈΠΌΠ½ΠΎΡΡΠΈ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΠΎ. ΠΡΠΎ-ΡΠΎ ΡΠ΅ΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ MVVM, Π½ΠΎ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΊΠ»Π°Π΄ΡΡ Π² ΡΠ°Π·Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π΅ ΡΠΏΠ°ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ. Π‘Π°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΎΠ½Π° Π½Π΅ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΡΠΏΠ΅Ρ Π°.
Π§ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΊΠΎΠ΅ MVC Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅
Π― ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΈΠ·ΡΡΠ°Π» Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΡΠΈΡΠ°Π» ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ ΡΠΏΠΎΡΠΈΠ» Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΏΠ΅ΡΠ΅ΡΠΌΠ°ΡΡΠΈΠ²Π°Π» ΠΈΠ΄Π΅Ρ MVC Π² ΡΠ·ΡΠΊΠ΅ Smalltalk ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΌΠ΅Π½ΡΠ» ΠΊ Π½Π΅ΠΉ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅.
Π ΠΈΡΠΎΠ³Π΅ Ρ ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ MVC β ΡΡΠΎ Π½Π΅ ΡΡΠΈ ΡΠ°ΠΉΠ»Π°, ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠΎΠ² Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠΎΠ΄Π΅Π»Ρ β Π½Π΅ ΠΏΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π½Π΅ ΠΏΡΠΎ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ, Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π΄Π°Π²Π½ΠΎ Π½Π΅ Π½ΡΠΆΠ΅Π½, ΠΈ ΠΏΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ MV.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ ΠΈ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π±ΡΠ»ΠΈ ΠΈ Π΄ΠΎ MVC, ΠΈΠΌ Π½Π΅ Ρ Π²Π°ΡΠ°Π»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ»Π°Π²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° MVC β ΡΠ²ΡΠ·Π°ΡΡ UI ΡΠΎ Π²ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ ΠΎΡ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ β ΠΏΡΠΈ Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ View ΡΠ²ΠΎΠΉ ΡΠ°ΡΠ°Π΄ Π΄Π»Ρ Model ΠΈ ΡΠ»ΡΡΠ°ΡΡ Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΡΠ΅ΡΠ½-Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Ρ.
View β ΡΡΠΎ ΠΈ Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Model β ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ°Π΄Π°ΡΠ° Controller β Π½Π΅ Π±ΡΡΡ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΎΠΉ ΠΌΠ΅ΠΆΠ΄Ρ V ΠΈ M, Π° Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠΈΠ½ΡΠΈΠΏ MVC β Π½Π΅ ΠΌΠ΅ΡΠ°ΡΡ UI Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ, Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°ΡΡΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ, ΡΠΆΠ΅ ΠΏΡΡΠΊΠ°ΠΉ Π΄ΡΠΌΠ°Π΅Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡ. ΠΡΠΎ Π½Π΅ ΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡ.
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ MVP, MVVM ΠΈΠ»ΠΈ VIPER Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΡΡ MVC, Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡ Π΅Ρ. ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠΆΠ΅ Π½Π΅ Π½ΡΠΆΠ΅Π½, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π·Π° Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ View, ΡΡΠΎ ΡΡΠ°Π»ΠΎ Π΅Π³ΠΎ Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΡΠ°ΡΡΡΡ.
ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΡΡΠΎ MVC Π² Apple, MVVM ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ β ΡΡΠΎ MV, Π³Π΄Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠ±ΡΠ°Π»ΠΈ Π·Π° Π½Π΅Π½Π°Π΄ΠΎΠ±Π½ΠΎΡΡΡΡ. ΠΠ· Π²ΡΠ΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ MV(x) ΠΈΠΌΠ΅Π½Π½ΠΎ MVVM Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΡΡ MVC.
ΠΡΠ΅ ΡΡΠΈ ΡΠ΅ΡΠΌΠΈΠ½Ρ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΠ½ΠΎΠ³Π΄Π° ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΠΎ ΡΡΠΌ ΡΠ΅Π±Π΅ Π³ΠΎΠ²ΠΎΡΡΡ, Ρ ΠΎΡΡ Π·Π°Π΄Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²ΡΡ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΠ΅ ΠΈ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅.
ΠΠ°ΠΊ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² Π»ΡΠ±ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅
ΠΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅, ΠΈ ΠΈΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΡΡΠΎΠΈΡ ΡΠ΄Π΅Π»ΡΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ. ΠΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ».
ΠΠ»Π°Π²Π½ΠΎΠ΅ β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π΅ ΡΠ°ΠΊ Π²Π°ΠΆΠ½Π°, ΠΊΠ°ΠΊ Π΅Ρ Π²ΠΎΠΏΠ»ΠΎΡΠ΅Π½ΠΈΠ΅. ΠΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, Π³Π΄Π΅ Ρ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡΡ ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ. ΠΡΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ Π²Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡ, ΠΈ ΡΠΎΠ³Π΄Π° ΠΏΡΠΎΠ΅ΠΊΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ.
Model β Π²Π°ΡΠ° ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° MVC Π½Π΅ Π΄Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ°ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΡΠ° ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π½Π΅ ΡΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π² Model ΠΊΠ°ΡΡ, Π³Π΄Π΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΊΠ»Π°ΡΡΠΎΠ² β Service, Π° Π²ΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° β Helper.
ΠΡΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π°Ρ . ΠΠ΅ ΡΡΠΎΠΈΡ ΠΈΠ·ΡΡΠ°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΠΈΠ· ΡΠ΅Π³ΠΎ ΠΎΠ½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ. Π’ΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΈΡΡΠΎΡΠΈΡ, ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ, SOLID ΠΈ Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅. ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Π΄ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Β«Π‘ΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄Β» Π‘ΡΠΈΠ²Π° ΠΠ°ΠΊΠΊΠΎΠ½Π½Π΅Π»Π»Π°.
Π‘ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Ρ Π½Π°ΡΠ°Π» ΡΠ΅ΡΡΡΡΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅. Π£ ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΊΡΡΠ° ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ Ρ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, Ρ ΡΠΎΠ·Π΄Π°Π» ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄ ΡΠΊΡΠ΅Π½ΠΎΠ². Π ΠΈΡΠΎΠ³Π΅ ΡΠ°ΠΌ Π·Π°ΠΏΡΡΠ°Π»ΡΡ, ΡΡΠΎ, ΠΊΠ°ΠΊ ΠΈ Ρ ΡΠ΅ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ.
Redux Ρ ΠΎΡΠΎΡΠ° Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΠΎΡΠ»Π°ΠΉΠ½, Π³Π΄Π΅ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΊΡΡΠ° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ. Π’Π°ΠΌ ΡΡΠΎΡ Π±ΠΎΠΉΠ»Π΅ΡΠΏΠ»Π΅ΠΉΡ ΡΡΠΎΠΈΡ ΡΠ΅ΡΠΏΠ΅ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΡΠΏΠ°ΡΡΡ Π²Π°ΠΌ ΠΆΠΈΠ·Π½Ρ. ΠΠΎ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΡΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ MV ΠΈ Π½Π΅ ΠΏΠ°ΡΠΈΡΡΡΡ.
ΠΡΠ²ΠΎΠ΄: ΡΡΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΎΠ± Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅
ΠΠ° Β«Π₯Π°Π±ΡΠ΅Β» Π΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ ΠΎΠ± MVC β Β«ΠΡ ΠΎΡΠ° Π½Π° ΠΌΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ MVC. ΠΠ±Π·ΠΎΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌ ΠΈ ΠΏΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΠ°ΠΌΠΎΠΌΡΒ» ΠΈ Β«ΠΡ ΠΎΡΠ° Π½Π° ΠΌΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ MVC. ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Β». ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΠΈΡ , Π΅ΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅ΡΠ΅ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ β Π°Π²ΡΠΎΡ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈ Π½Π° Ρ ΠΎΡΠΎΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°Π», ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅.
Zend Framework β ΠΎΡΠΊΡΡΡΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ PHP 5. ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² Laminas Project.
ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΡΠΎΠ½ΠΊΠΈΠΉ, ΡΠΎ Π»ΠΎΠ³ΠΈΠΊΠ° Π·Π°Π»ΠΎΠΆΠ΅Π½Π° Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π° Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΡΡΠΉ, ΡΠΎ Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅.
UIViewController β ΡΡΠΎ ΠΊΠ»Π°ΡΡ Π²ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅ UIKit ΠΎΡ Apple. Π§ΡΠΎΠ±Ρ ΡΠΎΠ±ΡΠ°ΡΡ UI-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π»Ρ Π½Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ.
VDS-ΡΠ΅ΡΠ²Π΅Ρ β Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ, ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ VPS-ΡΠ΅ΡΠ²Π΅Ρ. ΠΠΌΡΠ»ΠΈΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡΡ root-Π΄ΠΎΡΡΡΠΏ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π½ΡΠΆΠ½ΡΠ΅ ΠΠ‘ ΠΈ ΠΠ.
Π‘ΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠ°Π·Ρ, Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ β ΡΠΎΠ»ΡΠΊΠΎ Π² Π½ΡΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π·Π°Π³ΡΡΠ·ΠΈΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡΠ²Π΅ΡΠΈΡ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ.
UIKit β ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΡΠΎΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ iOS ΠΈ tvOS.
Model-View-ViewModel β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. View ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄, ViewModel β ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρ UI ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ.
Model-View-Presenter β ΡΠ°Π±Π»ΠΎΠ½ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΎΡ MVC. Presenter Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡ ΠΆΠ΅ ΡΠΎΠ»Ρ, ΡΡΠΎ ΠΈ Controller, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄.
ΠΠ±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΠ° VIPER ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ View β Interactor β Presenter β Entity β Router. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² iOS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.
Flux β ΡΡΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π½Π° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅ React Π΄Π»Ρ JavaScript.
Redux β ΠΎΡΠΊΡΡΡΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ JavaScript. ΠΡΠΆΠ½Π°, ΡΡΠΎΠ±Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΠΈΡΠ°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Middleware β ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ΅ ΠΠ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, middleware ΠΌΠΎΠΆΠ΅Ρ ΡΠ²ΡΠ·Π°ΡΡ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎ ΡΡΠ°ΡΡΠΌ API.
Π Π΅Π΄ΡΡΠ΅Ρ (reducer) β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ (state) ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ (action) ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅. ΠΡ Π·Π°Π΄Π°ΡΠ° β ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π»ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ Π½ΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠ»ΠΈΠΊΠ°Π΅Ρ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΡΡΡΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΠΎΠΉΠ»Π΅ΡΠΏΠ»Π΅ΠΉΡ β ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΠ°Π²Π»ΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠ½ΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΊΠΎΠ΄Π° ΠΊΠΎΠΏΠΈΡΡΡΡ Π² ΡΠ°Π·Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Flutter β SDK ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΎΡ Google, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΡΠΈΠ²Π½ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ iOS ΠΈ Android.
SwiftUI β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ iOS-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π§ΠΈΡΡΠ°Ρ ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π΄Π»Ρ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Π₯ΠΎΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Ρ Π²Π°ΠΌΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ΠΎΠ³ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ , ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ, Ρ.ΠΊ. ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π²Π΅Π±Π΅ ΠΎΠ½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΎΡΠ΅Π½Ρ ΡΠΊΡΠ΄Π½ΠΎ, Ρ ΠΎΡΡ ΠΆΠ΅Π»Π°ΡΡΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ Π΅ΡΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ Π½Π° ΡΠ°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ VS Code.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π²Ρ ΠΎΡΠ²ΡΠΆΠ΅ΡΠ΅ΡΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°. Π‘ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π½ΡΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ React, Preact, Vue, Mithril Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠΈ, Π° Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π΄Π°ΠΆΠ΅ Π²ΡΡΡ ΠΈ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Angular 1, Π²Ρ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π΅Π³ΠΎ Π½Π° Angular 2+, React, Svelte, WebComponents ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ²ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Angular 2+, Π½ΠΎ Π½Π΅ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² Π΄Π»Ρ Π½Π΅Π³ΠΎ, ΡΠΎ Π²Ρ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΡ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠΈ. Π Π² ΠΈΡΠΎΠ³Π΅ Π²ΠΎΠΎΠ±ΡΠ΅ Π·Π°Π±ΡΡΡ ΠΏΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Ρ ΡΡΠ΅ΠΌΠ²ΠΎΡΠΊΠ° Π½Π° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ. Π§ΡΠΎ ΠΆΠ΅ ΡΡΠΎ Π·Π° ΠΌΠ°Π³ΠΈΡ ΡΠ°ΠΊΠ°Ρ?
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π§ΠΈΡΡΠ°Ρ ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎ Π±Ρ ΠΏΠΎΠ½ΡΡΡ ΡΡΠΎ, Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³Ρ ΠΠ°ΡΡΠΈΠ½Π° Π ΠΎΠ±Π΅ΡΡΠ° Β«Π§ΠΈΡΡΠ°Ρ ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°Β» (Robert C.Martin Β«Clean ArchitectureΒ»). ΠΡΠ°ΡΠΊΠ°Ρ Π²ΡΠ΄Π΅ΡΠΆΠΊΠ° ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΡΡΠ°ΡΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΈΠ΄Π΅ΠΈ Π·Π°Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ:
ΠΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ Π³ΠΈΠ±ΠΊΠΎΡΡΡ Π·Π° ΡΡΠ΅Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ»ΠΎΠΈ Service, Repository, Model. Π― ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΊ Π§ΠΈΡΡΠΎΠΉ ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ MVC ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ»ΠΎΠΈ:
ΠΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π§ΠΈΡΡΠ°Ρ ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
ΠΠ΅Π± ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΡΠ»Π° Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΡΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ, Π½Π°ΡΠΈΠ½Π°Ρ ΠΎΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° jquery Π΄ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΎΠ»ΡΡΠΈΡ SPA ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π ΡΠ΅ΠΉΡΠ°Ρ Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ°Π»ΠΈ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΡΠ°Π»ΠΎ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌΠΎ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅, Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΈΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡΡ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° Π²Π΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π½Π° ΡΡΠΎΠΈΠΌΠΎΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π§ΠΈΡΡΠ°Ρ ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΈ ΠΎΡΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΄ΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΎΠ².
Π ΡΠΎΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π΅ΡΠ»ΠΈ Π²Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° ΠΏΡΠΎΡΡΠΎ Π²Π΅ΡΡΡΠΊΠ° ΠΈ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ Π»Π΅Π½Π΄ΠΈΠ½Π³ΠΎΠ², ΡΠΎ Π§ΠΈΡΡΡΡ ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΊΡΠ΄Π° Π²ΡΡΠ°Π²ΠΈΡΡ. ΠΡΠ»ΠΈ Π²Π°ΡΠ° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π΅ ΠΈ Π²Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ»ΠΈΠΊ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅, ΡΠΎ Π²Ρ Π½Π΅ ΠΏΡΠΎΡΡΠ²ΡΡΠ²ΡΠ΅ΡΠ΅ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ Π§ΠΈΡΡΠΎΠΉ ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, Π½ΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΏΠ»Π°ΡΠ΄Π°ΡΠΌΠΎΠΌ Π΄Π»Ρ Π²Π·ΡΡΠ²Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ΄Π΅ ΡΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ?
Π§ΠΈΡΡΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π° ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ ΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΡ, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΠΈΠ»ΠΈ ΡΠ·ΡΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΅ΡΡΡΠΈΠ»Π΅ΡΠΈΡ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ³ΠΎ ΡΡΠ°Π»ΠΎΠ½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π²ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°Ρ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Asp.Net Core, Java Spring ΠΈ NestJS. Π’Π°ΠΊ ΠΆΠ΅ ΠΎΠ½Π° ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π° ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ iOs ΠΈ Android ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎ Π² Π²Π΅Π± ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΎΠ½ ΠΏΡΠ΅Π΄ΡΡΠ°Π» Π² ΠΊΡΠ°ΠΉΠ½Π΅ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π²ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°Ρ Angular.
Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ ΡΠ°ΠΌ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Typescript, Π½ΠΎ ΠΈ C# ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΡΠΎ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΠΎΠ·ΡΠΌΡ ΡΡΠ°Π»ΠΎΠ½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π΄Π»Ρ Asp.Net Core.
ΠΠΎΡ ΡΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΡΡΠΎ Π² Π½Π΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ ΡΡΡΠ°ΡΠ½ΠΎΠ³ΠΎ, Π΄Π°Π»ΡΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΏΠΎ ΡΠ°ΡΡΡΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ.
ΠΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π΄Π»Ρ Asp.Net Core ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ Π΄Π»Ρ Java Spring, WinForms, Android, React Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΠΊΠΎΠ΄ Π±ΡΠ΄ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ·ΡΠΊ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π²ΡΡΡ ΠΎΠΉ (Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π΅ΡΡΡ).
ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΡΠ°Π»ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π§ΠΈΡΡΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π±ΡΠ» Angular. ΠΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΆΠ°ΡΠ½ΠΎ, ΡΡΠΎ Π² 1, ΡΡΠΎ Π² 2+.
Π ΠΏΡΠΈΡΠΈΠ½ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ:
ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π§ΠΈΡΡΡΡ ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π±ΡΠ΄Π΅ΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΠ΄ΡΠΌΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ Π² ΡΡΡΠ°Ρ ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΡΡΠ°Ρ ΠΎΠ²ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠ΅ ΡΠ°ΡΠΈΡΡ ΡΡΡΠ°Ρ ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π»ΠΈΡΡ ΠΌΠ°Π»Π°Ρ ΡΠ°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°, Π½ΠΎ ΠΏΠΎ Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ Π³Π΄Π΅ ΠΈ ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π». ΠΠ°ΡΠΈΠ½Π°ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΡΠ½Π΅ΠΌ ΡΠΎ ΡΠ»ΠΎΡ Controller, Π° View ΡΠ»ΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌ Π² ΡΠ°ΠΌΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅. Π ΠΏΠΎ Ρ ΠΎΠ΄Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»ΠΎΠΉ Π΄Π΅ΡΠ°Π»ΡΠ½Π΅Π΅.
ΠΠ°ΡΡΠ΅ΡΠ½ Controller
Controller β ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ»ΠΈΠΊ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π½Π° Π²Π΅Π± ΡΡΡΠ°Π½ΠΈΡΠ΅, Π½Π°ΡΡΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π»ΠΈΠ½ΡΠΊΡΠ°, ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ Π·Π°ΠΏΡΠΎΡ, ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ IO ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡΠ΅Π΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π² ΡΠΈΡΡΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ³ΠΎ Π·Π°Π΄Π°ΡΠ° ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ. Π ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Controller Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΏΡΠΎ View, ΠΈ ΡΠΎΠ³Π΄Π° Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Web, React-Native ΠΈΠ»ΠΈ Electron.
Π ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ³ΠΎ Π·Π°Π΄Π°ΡΠ° ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΡΠ°ΡΠΈΡΡ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΉ ΡΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ:
Π£ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π±Π΅Π· ΡΠΈΡΡΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, Π΅ΡΠ»ΠΈ ΠΎΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΎΡ React.Component ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Ρ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ. Π’Π°ΠΊ ΠΏΠΈΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ². ΠΠ»Π°Π²Π½ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΠ΅Π΄Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² Π»ΠΈΡΠ½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ΅, Π½ΠΎ ΠΈ Π½Π° Π»Π΅Π½Π΄ΠΈΠ½Π³Π΅ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ Π΄ΡΡΠ³ΠΈΡ ΠΌΠ΅ΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊ ΡΡΠ»ΡΠ³Π΅.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎ Π±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ½Π΅ΡΡΠΈ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ»ΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Service.
ΠΠ°ΡΡΠ΅ΡΠ½ Service
Service β ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π²ΡΡ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Controller’Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΎ Π΄Π°Π½Π½ΡΠ΅ β ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ ΡΠ΅ΡΠ΅Π· Service. ΠΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»Π°ΡΡ ΠΎΠ΄Π½Π° ΠΈ ΡΠ° ΠΆΠ΅ Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Service. ΠΠΎ ΡΠ°ΠΌ ΡΠ»ΠΎΠΉ Service Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ ΠΎ ΡΠ»ΠΎΠ΅ Controller ΠΈ View ΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΡΠ½Π΅ΡΠ΅ΠΌ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈΠ· ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π² ΡΠ΅ΡΠ²ΠΈΡ ΠΈ Π²Π½Π΅Π΄ΡΠΈΠΌ ΡΠ΅ΡΠ²ΠΈΡ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ:
Π’Π΅ΠΏΠ΅ΡΡ Π΅ΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ»ΠΈ ΡΠ°ΡΠΈΡΡ, ΠΎΠ½ΠΈ ΡΠΌΠΎΠ³Ρ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½Ρ ΠΈ ΡΡΠΆΠ΅ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈΠ· ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². Π ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ Π³Π»Π°Π²Π½ΠΎΠ΅ Π½Π΅ Π·Π°Π±ΡΠ²Π°ΡΡ ΠΏΡΠΎ SOLID ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΈ ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ²ΠΎΡ Π·ΠΎΠ½Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΡΠ²ΠΈΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΡΠΈΠ»Π΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡ Π·Π° ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΡΠΈΡΠ°ΠΌΠΈ.
ΠΠΎ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π΅ΡΠ»ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ fetch ΠΌΠΎΠΆΠ΅Ρ ΡΠΌΠ΅Π½ΠΈΡΡΡΡ Π½Π° websocket ΠΈΠ»ΠΈ grps ΠΈΠ»ΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π° ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΠΌΠΈ? Π Π²ΠΎΠΎΠ±ΡΠ΅ Π·Π°ΡΠ΅ΠΌ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ΅ ΡΡΠΎ ΡΠΎ Π·Π½Π°ΡΡ ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ΅ Π΄Π°Π½Π½ΡΡ ? ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡΡ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ»ΠΎΠΉ Repository.
ΠΠ°ΡΡΠ΅ΡΠ½ Repository
Repository β ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ . Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΡΡΠΏΠ°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ, Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ , ΠΏΠ°ΠΌΡΡΡ, localstorage, sessionstorage ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅. ΠΠ³ΠΎ Π·Π°Π΄Π°ΡΠ° Π°Π±ΡΡΡΠ°Π³ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠΉ Service ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°.
ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΡΠ½Π΅ΡΠ΅ΠΌ ΡΠ΅ΡΠ΅Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΈΠ· ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΠΌ:
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π½Π°ΠΏΠΈΡΠ°ΡΡ Π·Π°ΠΏΡΠΎΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΈ Π»ΡΠ±ΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ Π·Π°ΠΏΡΠΎΡ. ΠΠΎΠ·ΠΆΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π΅ ΡΡΠΎΠ³Π°Ρ ΠΊΠΎΠ΄ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΈ Π²Π½Π΅Π΄ΡΠΈΡΡ ΠΌΠΎΠΊΠΎΠ²ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π ΡΠ΅ΡΠ²ΠΈΡΠ΅ UserProfilService ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΠΎ ΠΎΠ½ Π½Π΅ Π½ΡΠΆΠ΅Π½ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π·Π° Π΄Π°Π½Π½ΡΠΌΠΈ, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ. Π Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π² Π±ΠΈΠ·Π½Π΅Ρ ΡΠ»ΠΎΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΈΠ»ΠΈ ΠΎΠ±ΠΎΠ³Π°ΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅. ΠΠΎΡΡΠΎΠΌΡ Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Π² ΡΠ»ΠΎΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ° Π½Π΅ΡΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠ° Controller β Service β Repository Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ. ΠΡΠΎ Π²ΠΊΠ»Π°Π΄ Π² Π²Π°ΡΠ΅ Π·Π°Π²ΡΡΠ°.
ΠΠ°ΡΡΠ°Π»ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΡΡΠΎ Π·Π° Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ Π»ΠΈ ΠΎΠ½ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅. ΠΠ° ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠ»ΠΎΠΉ Models.
ΠΠΎΠ΄Π΅Π»ΠΈ: DTO, Entities, ViewModels
Models β ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡ Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π½ΠΎΠ²ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎΠ½ΡΡΡ Ρ ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ Π΅Π³ΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΉ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΉ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ°Π½ΡΡΠΈΡ ΡΡ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ.
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈ ΡΠΎΠΎΠ±ΡΠΈΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ»ΠΎΡΠΌ ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π΅ Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, Π° Ρ Π²ΠΏΠΎΠ»Π½Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠΈΠ»Π΅ΠΌ:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±ΡΡΠ΅ΡΠΊΡ
ΠΠ·ΡΠ²ΡΠΈΡΡ Π·Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ, Π½ΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΡΠ°ΡΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΌΡ Β«Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠΊΡΡΠ΅Β» ΡΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΆΠ½ΠΎ ΡΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π»Π°, Π½ΠΎ ΠΈ Π±ΡΠ»Π° Ρ ΠΎΡΠΎΡΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π°. ΠΠ΅ Π²Π΅ΡΡΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠ΄ΡΠΌΠ°Π½Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½ΡΠΆΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ (ΠΏΡΠΎΡΡΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Β«ΡΠΌΠ΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΡΒ» ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°). Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°ΡΡΠ΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΡΡΡΡΠ΅Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π Π΅ΡΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎΠ± ΡΡΠΎΠΌ Π·Π°ΡΠ°Π½Π΅Π΅, ΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ Π½Π°ΡΡΡΠΏΠ°Π΅Ρ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π΅ΡΡ Π΅Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ. ΠΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΠ», Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΄Π΅Π½Π΅Π³. Π Π½Π΅ΡΠ΅Π΄ΠΊΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎ, Π²ΡΠΆΠΈΠ²Π΅Ρ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΠ»ΠΈ Π½Π΅Ρ. Π Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎ Β«ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΡΠ°Π±ΡΡΠ΅ΡΠΊΠΈΒ» Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π²Π½Π°ΡΠ°Π»Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΅Π΅ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ.
Π ΠΌΠΎΠ΅ΠΌΡ ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΡ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ Π½Π° Π²ΡΠΎΠ΄Π΅ Π±Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ: Β«ΠΠ°ΠΊ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Ρ ΠΎΡΠΎΡΡΡ/ΠΊΡΠ°ΡΠΈΠ²ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΠ?Β» β Π½Π΅ ΡΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡΠΈ ΠΎΡΠ²Π΅Ρ. ΠΠ΅ ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ½ΠΈΠ³ ΠΈ ΡΡΠ°ΡΠ΅ΠΉ, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΡ ΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ SOLID (ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠΏΠΈΡΠ°Π½Ρ ΡΡΡ, ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΈ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΡ, ΡΡΡ ΠΈ ΡΡΡ) ΠΈ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠΎΡΠΌΠ»ΡΡΡ ΠΊΠΎΠ΄, Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΎΡΡΠ°Π²Π°Π»ΠΎΡΡ ΡΡΠ²ΡΡΠ²ΠΎ, ΡΡΠΎ ΡΠ΅Π³ΠΎ-ΡΠΎ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ. ΠΡΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ Π²Π°ΠΌ Π΄Π°Π»ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², Π½ΠΎ Π·Π°Π±ΡΠ»ΠΈ Π³Π»Π°Π²Π½ΠΎΠ΅ β ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ, Π° ΠΊΠ°ΠΊ ΠΆΠ΅ Β«ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π±ΡΡΠ΅ΡΠΊΡΒ».
Π₯ΠΎΡΠ΅Π»ΠΎΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π² ΡΠ΅Π±Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ΅ΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ (ΡΡΠΎΠ±Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π»ΠΈ Π±ΡΡΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π΄ΠΎΠ³ΠΌΠ°ΠΌΠΈ, Π° ΡΡΠ°Π»ΠΈ Π±Ρ ΠΏΠΎΠ½ΡΡΠ½Ρ ΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅). Π’ΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ½ΡΡΠ½Π΅Π΅ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
ΠΠ°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠΏΡΡΠΊΠΎΠΉ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ Ρ ΠΎΡΡ Π±Ρ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΈ. ΠΠ°ΡΠ΅ΡΠΈΠ°Π» ΡΠΎΠ±ΠΈΡΠ°Π»ΡΡ Π΄Π»Ρ ΡΠ΅Π±Ρ, Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ, ΠΎΠ½ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΊΠΎΠΌΡ-ΡΠΎ Π΅ΡΠ΅. ΠΠ½Π΅ Π΄Π°Π½Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ·Π½Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ, Π½ΠΎ ΠΈ Π² ΠΈΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΠΊΠ°ΠΆΡΡΠΈΠ΅ΡΡ ΡΠΆΠ΅ ΠΏΠΎΡΡΠΈ Π±Π°Π½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΠΠ ΠΈ ΠΏΠΎ Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΈΡ Π²Π°ΠΆΠ½ΠΎΡΡΡ.
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π»ΠΈΡΡ ΠΎΠ±ΡΠ°Ρ ΠΈΠ΄Π΅Ρ ΠΈ ΠΊΡΠ°ΡΠΊΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, Π΄Π°ΡΡΠΈΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ΅ΠΌΠ΅ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π³Π΄Π΅ ΠΈΡΠΊΠ°ΡΡ Π΄Π°Π»ΡΡΠ΅.
ΠΡΠΈΡΠ΅ΡΠΈΠΈ Ρ ΠΎΡΠΎΡΠ΅ΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ
ΠΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π° Β«Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡΒ». Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ, ΡΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΡΠ°ΠΊ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌ, Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠ»ΠΎΡ ΠΈΠΌ. Π₯ΠΎΡΠΎΡΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΡΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π²ΡΠ³ΠΎΠ΄Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, Π΄Π΅Π»Π°ΡΡΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ Ρ ΠΎΡΠΎΡΠ΅ΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Π»Π΅Π³ΡΠ΅ ΡΠ°ΡΡΠΈΡΡΡΡ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ. Π’ΠΎ Π΅ΡΡΡ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ°Π·ΡΠΌΠ½ΡΡ ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π²:
ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ΅ΡΠ°ΡΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΈ Ρ ΠΎΡΠΎΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ . Π‘ΡΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½Π΅ΡΡΠΈ ΡΠ°ΠΊΠΈΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ, ΠΊΠ°ΠΊ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°Π³ΡΡΠ·ΠΊΠΈ (ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ) ΠΈ Ρ.ΠΏ.
ΠΠΈΠ±ΠΊΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠ±ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ΅Π½ΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ β ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π½ΠΎΠ²ΡΠ΅. Π§Π΅ΠΌ Π±ΡΡΡΡΠ΅Π΅ ΠΈ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π», ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΡΠΎ Π²ΡΠ·ΠΎΠ²Π΅Ρ β ΡΠ΅ΠΌ Π³ΠΈΠ±ΡΠ΅ ΠΈ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΡΠΏΠΎΡΠΎΠ±Π½Π΅Π΅ ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠΎΡΡΠΎΠΌΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π°ΠΌ ΡΡΠΎ ΠΏΠΎΡΠΎΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΌΠ΅Π½ΡΡΡ. Π‘ΠΏΡΠΎΡΠΈΡΠ΅ Ρ ΡΠ΅Π±Ρ: Β«Π ΡΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅Π²Π΅ΡΠ½ΡΠΌ?Β», Β«ΠΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π½Π΅ΡΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ?Β». ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Π»ΠΈΡΡΡ Π½Π° Π΅Π΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ. ΠΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Β«Π²ΡΡΡΠ±Π°ΡΡΡΡ Π² ΠΊΠ°ΠΌΠ½Π΅Β», ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π² ΡΠ°Π·ΡΠΌΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ. «Π₯ΠΎΡΠΎΡΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΠ’ΠΠΠΠΠ«ΠΠΠ’Π¬ ΠΏΡΠΈΠ½ΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ» (ΠΠΎΠ± ΠΠ°ΡΡΠΈΠ½) ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Β«ΡΠ΅Π½ΡΒ» ΠΎΡΠΈΠ±ΠΎΠΊ.
Π Π°ΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π΅ Π½Π°ΡΡΡΠ°Ρ Π΅Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ. ΠΠ° Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π·Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π»ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΈ ΡΠ°ΠΌΡΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» (ΠΏΡΠΈΠ½ΡΠΈΠΏ YAGNI β you ainβt gonna need it, Β«ΠΠ°ΠΌ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΒ») ΠΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΠ°ΡΠΈΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΈΡΠ΅ΠΌ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π΅ΡΠΎΡΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈΜ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΡ ΡΡΠΈΠ»ΠΈΠΈ.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ±Π»Π°Π΄Π°Π»Π° Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΡΡ (ΡΠΎ Π΅ΡΡΡ Π±ΡΠ»Π° ΡΠΏΠΎΡΠΎΠ±Π½Π° ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ ΠΈ ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ) ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΆΠ½ΡΠΌ, ΡΡΠΎ ΠΎΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° β Β«ΠΡΠΈΠ½ΡΠΈΠΏΠ° ΠΎΡΠΊΡΡΡΠΎΡΡΠΈ/Π·Π°ΠΊΡΡΡΠΎΡΡΠΈΒ» (Open-Closed Principle β Π²ΡΠΎΡΠΎΠΉ ΠΈΠ· ΠΏΡΡΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² SOLID): ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ (ΠΊΠ»Π°ΡΡΡ, ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Ρ.ΠΏ.) Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌΠΈ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ, Π½ΠΎ Π·Π°ΠΊΡΡΡΡΠΌΠΈ Π΄Π»Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ: ΠΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΡΡΠΈΡΠΈΡΡ/ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ/ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΠΈΠ³Π°Π»ΠΎΡΡ Π±Ρ Π·Π° ΡΡΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ), ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ Π±Ρ ΠΌΠ΅Π½ΡΡΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π½Π΅ ΠΏΠΎΠ²Π»Π΅ΡΠ΅Ρ Π·Π° ΡΠΎΠ±ΠΎΠΉ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ, Π° ΡΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π·Π° ΡΡΠ΅Ρ Π΅Π΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ Β«ΠΏΠ»Π°Π³ΠΈΠ½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡΒ» (Plugin Architecture). Π ΡΠΎΠΌ, Π·Π° ΡΡΠ΅Ρ ΠΊΠ°ΠΊΠΈΡ ΡΠ΅Ρ Π½ΠΈΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠΎ, Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ Π΄Π°Π»ΡΡΠ΅.
ΠΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΡΠΎΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π° ΡΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ Π½ΠΎΠ²ΡΡ Π»ΡΠ΄Π΅ΠΉ. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°ΡΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ°ΠΊ ΡΡΠΎΠ±Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ ΠΌΠΎΠ³Π»ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
Π’Π΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΡ. ΠΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π»Π΅Π³ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ, Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎ ΡΠ΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»ΡΡΡΠ°ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ, ΡΡΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Β«Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈΒ» ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΠΈΠ»ΠΎΠΉ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π΅Π΄ΡΡΠ΅ΠΉ ΠΊ Ρ ΠΎΡΠΎΡΠ΅ΠΌΡ Π΄ΠΈΠ·Π°ΠΉΠ½Ρ, ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΠΎΡΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ: «ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏ Β«ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈΒ» ΠΊΠ»Π°ΡΡΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Β«Π»Π°ΠΊΠΌΡΡΠΎΠ²ΠΎΠΉ Π±ΡΠΌΠ°ΠΆΠΊΠΈΒ» Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΊΠ»Π°ΡΡΠ°. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π½Π°ΠΏΠΈΡΠΈΡΠ΅ Π½ΠΈ ΡΡΡΠΎΡΠΊΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΎΡΠ²Π΅Ρ Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π² 90% ΡΠ»ΡΡΠ°Π΅Π² ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½ΡΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ Β«Ρ ΠΎΡΠΎΡΠΎΒ» ΠΈΠ»ΠΈ Β«ΠΏΠ»ΠΎΡ ΠΎΒ» Ρ Π΅Π³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ» (ΠΠ΄Π΅Π°Π»ΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°).
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ΅Π»Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΠΊ ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ β Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (Test-Driven Development, TDD).
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π‘ΠΈΡΡΠ΅ΠΌΡ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π΅Π΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
Π₯ΠΎΡΠΎΡΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ, ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΊΠΎΠ΄. Π‘ΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΡΡΡ. ΠΠ°Π΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ β ΠΎΠ΄Π½ΠΈ ΡΡ ΠΎΠ΄ΡΡ, ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Π½ΠΎΠ²ΡΠ΅. ΠΠΎΡΠ»Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΎΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π»ΡΠ΄ΡΠΌ, Π½Π΅ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π²ΡΠ΅ΠΌ Π² Π΅Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. ΠΠΎΡΡΠΎΠΌΡ Ρ ΠΎΡΠΎΡΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π΄Π°Π²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈ Π±ΡΡΡΡΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½ΠΎΠ²ΡΠΌ Π»ΡΠ΄ΡΠΌ. ΠΡΠΎΠ΅ΠΊΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Ρ ΠΎΡΠΎΡΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½, Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΠΌΠ΅ΡΡ Ρ ΠΎΡΠΎΡΠΎ ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. Π ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π»ΡΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅, ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ². Π§Π΅ΠΌ ΡΠΊΠ·ΠΎΡΠΈΡΠ½Π΅Π΅ ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Π΅Π΅ ΠΏΠΎΠ½ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ (ΠΡΠΈΠ½ΡΠΈΠΏ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΡ β Principle of least astonishment. ΠΠ±ΡΡΠ½ΠΎ, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΈ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°).
ΠΠΎΠ΄ΡΠ»ΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°. ΠΠ΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π°
ΠΠ΅ ΡΠΌΠΎΡΡΡ Π½Π° ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π², Π²ΡΠ΅ ΠΆΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π·Π°Π΄Π°ΡΠ° ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ. Π Π΄Π»Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π½ΠΈΡΠ΅Π³ΠΎ, ΠΊΡΠΎΠΌΠ΅ Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° ΡΠ°ΡΡΠΈ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½ΠΎ. ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠΌ Β«ΡΠ°Π·Π΄Π΅Π»ΡΠΉ ΠΈ Π²Π»Π°ΡΡΠ²ΡΠΉΒ» (divide et impera), Π½ΠΎ ΠΏΠΎ ΡΡΡΠΈ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎΠ± ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ. Π‘Π»ΠΎΠΆΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡΡΠΎΠΈΡΡΡ ΠΈΠ· Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ , Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΡΡΠΎΠΈΡΡΡ ΠΈΠ· ΡΠ°ΡΡΠ΅ΠΉ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΠΈ Ρ.Π΄., Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΠ°ΠΌΡΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ°ΡΡΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΡ Π΄Π»Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ.
Π£Π΄Π°ΡΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ, Π½ΠΎ ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ. ΠΠΎΠΌΠΈΠΌΠΎ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΎΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, Π΄Π°Π΅Ρ Ρ ΠΎΡΠΎΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ²ΡΡΠ°ΡΡ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ Π·Π° ΡΡΠ΅Ρ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ.
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π΅Π΅ ΡΡΡΡΠΊΡΡΡΡ, ΠΏΠΎΠ΄ ΡΡΠΈΠΌ, Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ (ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΠ΅ΡΠ²ΠΈΡΡ, ΡΠ»ΠΎΠΈ, ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ) ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΌΠΈΡΠΎΠΌ. ΠΡΠΈΡΠ΅ΠΌ, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ΅ΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π΅Π΅ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡΡ .
«ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ Π³Π»Π°Π²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ. Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎ Π²ΡΠ±ΠΎΡ ΡΠ°ΠΊΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡΡΠΈΠ΅ ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.«
«ΠΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° β ΡΡΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ, Π²ΠΎΠΏΠ»ΠΎΡΠ΅Π½Π½Π°Ρ Π² Π΅Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
, ΠΈΡ
ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΡ
ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈ Ρ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
Π‘ΠΈΡΡΠ΅ΠΌΠ° β ΡΡΠΎ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ
Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.«
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Ρ ΠΎΡΠΎΡΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΡΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΌΠΎΠ΄ΡΠ»ΡΠ½Π°Ρ/Π±Π»ΠΎΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΎΡΠΎΡΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π½Π°Π΄ΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ. Π Π·Π½Π°ΡΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ β ΠΊΠ°ΠΊΠ°Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ Β«ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉΒ» ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΅Π΅ Π»ΡΡΡΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ?
Β«ΠΡΠ°Π²ΠΈΠ»ΡΠ½Π°ΡΒ» Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ
1. ΠΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠ°Ρ
ΠΠ΅ ΡΡΠΎΠΈΡ ΡΡ ΠΎΠ΄Ρ ΡΡΠ±ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΡΠ½ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ, Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π½Π°Π΄ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΈ β ΡΠ½Π°ΡΠ°Π»Π° ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π½Π° ΠΊΡΡΠΏΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ/ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠ΅ Π΅Π΅ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ°ΠΌΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅. ΠΠ°ΡΠ΅ΠΌ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΠΈ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π΄Π΅Π»ΡΡΡΡ Π½Π° ΠΏΠΎΠ΄-ΠΌΠΎΠ΄ΡΠ»ΠΈ Π»ΠΈΠ±ΠΎ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ.
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π²ΡΠ΄Π΅Π»ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΌΡΡΠ»ΠΎΠ²ΡΠ΅ Π±Π»ΠΎΠΊΠΈ Ρ ΠΎΡΡ Π±Ρ ΠΌΡΡΠ»Π΅Π½Π½ΠΎ. ΠΠ»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π²ΡΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΡΠ°ΡΡΠΎ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ β ΡΠΈΡΡΠ΅ΠΌΠ° Π²Π½Π°ΡΠ°Π»Π΅ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ/ΠΏΠ°ΠΊΠ΅ΡΡ, Π° ΠΏΠ°ΠΊΠ΅ΡΡ Π΄Π΅Π»ΡΡΡΡ Π½Π° ΠΊΠ»Π°ΡΡΡ.
ΠΡΠ° ΠΌΡΡΠ»Ρ, ΠΏΡΠΈ Π²ΡΠ΅ΠΉ ΡΠ²ΠΎΠ΅ΠΉ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΡΡΠΈ, Π½Π΅ ΡΠ°ΠΊ Π±Π°Π½Π°Π»ΡΠ½Π° ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΅ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ΅ΠΌ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠ³ΠΎ Β«Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°Β» ΠΊΠ°ΠΊ ΠΠΎΠ΄Π΅Π»Ρ-ΠΠΈΠ΄-ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ (MVC)? ΠΡΠ΅Π³ΠΎ Π½Π°Π²ΡΠ΅Π³ΠΎ Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ, ΡΠΎ Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π»ΡΠ±ΠΎΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π½Π°ΡΠ°Π»Π΅ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° Π΄Π²Π° ΠΌΠΎΠ΄ΡΠ»Ρ β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ°ΠΌΠΎΠΉ Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠΈ (ΠΠΎΠ΄Π΅Π»Ρ), Π° Π²ΡΠΎΡΠΎΠΉ β Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ (ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ»ΠΈ ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅). ΠΠ°ΡΠ΅ΠΌ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ, ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΠΎΡΠ»Π°Π±Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° Β«ΠΠ°Π±Π»ΡΠ΄Π°ΡΠ΅Π»ΡΒ» (ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎ ΡΠΏΠΎΡΠΎΠ±Π°Ρ ΠΎΡΠ»Π°Π±Π»Π΅Π½ΠΈΡ ΡΠ²ΡΠ·Π΅ΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ Π΄Π°Π»ΡΡΠ΅) ΠΈ ΠΌΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΌΠΎΡΠ½ΡΡ ΠΈ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΡ Β«ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²Β», ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ.
Π’ΠΈΠΏΠΈΡΠ½ΡΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΠ΅ ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ) ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ ΡΠ²Π»ΡΡΡΡΡ β Β«Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ°Β», Β«ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΒ», Β«Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΠΒ», Β«ΡΠ²ΡΠ·Ρ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΠ‘Β».
ΠΠ»Ρ ΠΎΠ±ΠΎΠ·ΡΠΈΠΌΠΎΡΡΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ Π²ΡΠ΄Π΅Π»ΡΡΡ ΠΎΡ 2 Π΄ΠΎ 7 ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
2. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ
ΠΠ΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ/ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠ΅Ρ Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠ°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΡΠ½ΠΎΠ²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Π΅Π΅ ΠΏΠΎΠ΄Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ΅ΡΠ°ΡΡΡΡ/Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΠΎΠ΄Π·Π°Π΄Π°ΡΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π±ΠΎΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ , Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΅ΠΌΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎ Π΅ΡΡΡ:
ΠΠΎΠ΄ΡΠ»Ρ = Π€ΡΠ½ΠΊΡΠΈΡ + ΠΠ°Π½Π½ΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΡΠΈΡΠ΅ΠΌ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠ³ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π±Π΅Π· ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π»ΠΈΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ²ΠΎΠΈΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠ΄ΡΠ»Ρ β ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΠΊΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, Π° ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΎΡΠΌΡΡΠ»Π΅Π½Π½Π°Ρ ΠΈ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ° (ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΈ Π² ΠΈΠ΄Π΅Π°Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΈ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ. ΠΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π΅ΠΊΠΎΠΉ «ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡΡ, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠΉ ΠΊ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠΈ» (ΠΡΠΈΡΡΠΎΡΠ΅Ρ ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Π΅Ρ).
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π³ΡΠ°ΠΌΠΎΡΠ½Π°Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, Π½Π° Π°Π½Π°Π»ΠΈΠ·Π΅ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π°Π½Π½ΡΡ .
3. High Cohesion + Low Coupling
Π‘Π°ΠΌΡΠΌ ΠΆΠ΅ Π³Π»Π°Π²Π½ΡΠΌ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅ΠΌ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΈΡ
Π·Π°Π΄Π°Ρ ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΡΠΎΡΠΌΡΠ»ΠΈΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: «ΠΠΎΠ΄ΡΠ»ΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΎΠΏΡΡΠΆΠ΅Π½Π½Ρ Π²Π½ΡΡΡΠΈ (high internal cohesion) ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½Ρ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ (low external coupling).«
Π‘Π»Π΅Π΄ΡΡΠ²ΠΈΠ΅ΠΌ High Cohesion ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ (Single Responsibility Principle β ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈΠ· ΠΏΡΡΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² SOLID), ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π»ΡΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ/ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π»ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΡ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Ρ Π΄Π»Ρ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΠ΅Π»Π°Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°Π²Π°Ρ ΡΠ΅Π±Π΅ Π²ΠΎΠΏΡΠΎΡΡ: «ΠΠ°ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ?«, βΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ?β, βΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ?β, βΠΠ°ΠΊ ΡΠΈΠ»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ ΠΎΡΡΠ°Π·ΡΡΡΡ Π½Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ?β
Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΡΡΡΠ΅ΠΌΠΈΡΡΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π±ΡΠ»ΠΈ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½Ρ. ΠΠ°ΠΊ ΠΈ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ»Π°Π±ΠΎ Π·Π°Π²ΠΈΡΠ΅Π»ΠΈ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π°. ΠΠΎ ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΡΠ΄ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΈΠΊ ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΎΡΠ»Π°Π±ΠΈΡΡ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»ΡΡΠ°Π΅ MVC Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΠ°Π±Π»ΠΎΠ½ Β«ΠΠ°Π±Π»ΡΠ΄Π°ΡΠ΅Π»ΡΒ», Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Β«ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡΠ°Β». Π’ΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ Π²ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΈ ΠΎΡΠ»Π°Π±Π»ΡΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ Π½Π° Π²ΡΠ΅Ρ ΡΡΠΎΠ²Π½ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ, ΡΠΎ Π΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅.
ΠΠ°ΠΊ ΠΎΡΠ»Π°Π±Π»ΡΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ
ΠΠ»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ, ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° ΠΈΠ· Π½Π΅ΠΏΠ»ΠΎΡ ΠΎΠΉ ΡΡΠ°ΡΡΠΈ «Decoupling of Object-Oriented Systems», ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠ°Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΈΠ΄ΡΠΈ ΡΠ΅ΡΡ.
1. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. Π€Π°ΡΠ°Π΄
ΠΠ»Π°Π²Π½ΡΠΌ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅ ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ (ΠΈ ΡΡΠΎΡΡΠΈΠΉ Π·Π° Π½ΠΈΠΌΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ + ΠΠ±ΡΡΡΠ°ΠΊΡΠΈΡ + ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ):
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΡ, ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΡΡ ΠΊΠΎΠ΄, Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ (Open-Closed Principle). ΠΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π² Π²ΠΈΠ΄Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΈ Π½Π΅ Π·Π°Π²ΡΠ·Π°Π½ΠΎ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Β«Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎΒ» Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π° Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ. ΠΡΠΎ ΠΊΠ°ΠΊ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΈΠ»ΠΈ Β«ΠΏΠ»Π°Π³ΠΈΠ½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅Β» (plugin architecture) β ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ»ΡΠΆΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΠΊΠΎΠ½Π½Π΅ΠΊΡΠΎΡΠΎΠΌ, ΠΊΡΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ ΡΠ°Π·ΡΠ΅ΠΌΠΎΠΌ. ΠΠΈΠ±ΠΊΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ/Β«Π΄Π΅ΡΠ°Π»ΠΈΒ» Π½Π° Π΄ΡΡΠ³ΠΈΠ΅, Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ ΡΠ°Π·ΡΠ΅ΠΌΠ°ΠΌΠΈ (Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ), Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ Π½ΠΎΠ²ΡΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ (ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»ΡΠ²Π°ΡΡΡΡ). ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΡΠΎ Open-Closed Principle ΠΈ ΠΏΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΡΡΡ + Ρ ΠΎΡΠΎΡΠ°Ρ ΡΡΠ°ΡΡΡ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΡΡΠΎΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΡΡ Π΅Π΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ. ΠΠ½ΠΈ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°ΡΡ ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°Π½ΠΈΡ, ΡΠ²Π»ΡΡΡΠ΅ΠΉΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ ΡΠ»Π°Π±ΠΎΠΉ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ. ΠΡΠΈΡΠ΅ΠΌ, ΡΠ΅ΠΌ Π² Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ΅ΠΉ/Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ ΠΎΠ½ΠΈ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΡΠ΅ΠΌ Π³ΠΈΠ±ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΡΡΡΠ΄Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² SOLID β ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (Interface Segregation Principle), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΡΡΠΏΠ°Π΅Ρ ΠΏΡΠΎΡΠΈΠ² Β«ΡΠΎΠ»ΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²Β» ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ΅, ΠΎΠ±ΡΠ΅ΠΌΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π½Π°Π΄ΠΎ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠ΅ ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² (Π·Π°Π²ΠΈΡΡΡΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ) Π·Π½Π°Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ ΠΈΠΌ Π² ΡΠ°Π±ΠΎΡΠ΅. Π€ΠΎΡΠΌΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΎΠ½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: «ΠΠ»ΠΈΠ΅Π½ΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² (Π·Π½Π°ΡΡ ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ» ΠΈΠ»ΠΈ βΠΠ½ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉβ.
ΠΡΠ°ΠΊ, ΠΊΠΎΠ³Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π»ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΡΠ΅ Π΅ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ, Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π·Π½Π°Π½ΠΈΠΉ ΠΎΠ± ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΈ ΡΡΡΡΠΊΡΡΡΠ΅, ΡΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ, ΠΏΠ»ΡΡ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΡΡΠΈΡΡΡΡ/ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Π·Π° ΡΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ, ΡΠΎ Π΅ΡΡΡ Π·Π° ΡΡΠ΅Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ°. ΠΠ· ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΈ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΠΎΠ±ΠΎΠ±ΡΠ°Π΅Ρ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΠΠ β ΠΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ, ΠΠ±ΡΡΡΠ°ΠΊΡΠΈΡ, ΠΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ. ΠΠΎ ΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ Π²ΠΎΠΏΡΠΎΡ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ΄Π΅Ρ Π½Π΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΌΠΈ ΠΆΠ΅ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, Π° Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΡΠΎ ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΌΠΎΠ΄ΡΠ»Ρ? ΠΡΠ²Π΅Ρ: Π΅ΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΡΠ·ΡΠΊΠΎΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², ΡΠΎ ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ, Π·Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ β Π€Π°ΡΠ°Π΄.
Π€Π°ΡΠ°Π΄ β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π°ΠΊΠΊΡΠΌΡΠ»ΠΈΡΡΡΡΠΈΠΉ Π² ΡΠ΅Π±Π΅ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ Π½Π°Π±ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΡΠΊΡΡΠ²Π°ΡΡΠΈΠΉ Π·Π° ΡΠΎΠ±ΠΎΠΉ Π΅Π΅ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΈΡΡΠΈΠ½Π½ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ. ΠΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ. Π‘Π»ΡΠΆΠΈΡ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ Π²Ρ ΠΎΠ΄Π° β «Π²Ρ ΠΏΠΈΠ½Π°Π΅ΡΠ΅ ΡΠ°ΡΠ°Π΄, Π° ΠΎΠ½ Π·Π½Π°Π΅Ρ, ΠΊΠΎΠ³ΠΎ ΡΠ°ΠΌ Π½Π°Π΄ΠΎ ΠΏΠ½ΡΡΡ Π² ΡΡΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½ΡΠΆΠ½ΠΎΠ΅».
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ, ΡΠ°ΠΌΡΠΉ Π²Π°ΠΆΠ½ΡΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΎΡΠ»Π°Π±Π»ΡΡΡ ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΡ β Β«Π€Π°ΡΠ°Π΄Β». ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ Β«Π€Π°ΡΠ°Π΄Β» Π²ΠΎΠΎΠ±ΡΠ΅ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π²ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΈ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π₯ΠΎΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π²Π°ΠΆΠ½ΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² (ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²), ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΠ΄Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠΎΠΆΠ΄Π°Π΅ΡΡΡ. ΠΠ½Π΅ Π²ΡΡΡΠ΅ΡΠΈΠ»ΠΎΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ ΡΡΠ°ΡΠ΅ΠΉ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π³Π΄Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΠΈΡΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π±Π»Π΅Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ/ΡΠ»ΠΎΡΠΌΠΈ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π±Ρ ΠΏΠ°ΡΡΠ΅ΡΠ½ Β«Π€Π°ΡΠ°Π΄Β». ΠΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΈΠ΄Π΅Π» Β«Π€Π°ΡΠ°Π΄Β» Π½Π° ΡΡ Π΅ΠΌΠ°Ρ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π²ΡΠ΅Π³ΠΎΡΡ Β«Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°Β» ΠΠΎΠ΄Π΅Π»Ρ-ΠΠΈΠ΄-ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΠΈΠ»ΠΈ Ρ ΠΎΡΡ Π±Ρ ΡΠ»ΡΡΠ°Π» Π΅Π³ΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΡΡΠ΅Π΄ΠΈ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ², Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² ΡΠΎΡΡΠ°Π² MVC (Π½Π°ΡΡΠ΄Ρ Ρ Observer ΠΈ Composite)? Π Π²Π΅Π΄Ρ ΠΎΠ½ ΡΠ°ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΠΎΠ΄Π΅Π»Ρ ΡΡΠΎ Π½Π΅ ΠΊΠ»Π°ΡΡ, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΡΠΈΡΠ΅ΠΌ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ. Π Ρ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ MVC Π’ΡΡΠ³Π²Π΅ Π Π΅Π΅Π½ΡΠΊΠ°ΡΠ³Π° ΠΎΠ½, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, Π±ΡΠ» (ΡΠΌΠΎΡΡΠΈΠΌ Β«The Model-View-Controller (MVC ). Its Past and PresentΒ», ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ, ΡΡΠΎ ΡΡΠΎ ΠΏΠΈΡΠ°Π»ΠΎΡΡ Π² 1973 Π³ΠΎΠ΄Ρ ΠΈ ΡΠΎ, ΡΡΠΎ ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ β Presentaition/UI ΡΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°Π»ΠΎΡΡ Editior). Π‘ΡΡΠ°Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Β«Π€Π°ΡΠ°Π΄Β» ΠΏΠΎΡΠ΅ΡΡΠ»ΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π³ΠΎΠ΄Ρ ΠΈ Π²Π½ΠΎΠ²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ Π΅Π³ΠΎ ΠΌΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π»ΠΈΡΡ Π½Π΅Π΄Π°Π²Π½ΠΎ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, Π² ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ MVC ΠΎΡ Microsoft (Β«Microsoft Application Architecture GuideΒ»). ΠΠΎΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ»Π°ΠΉΠ΄Ρ:
Π ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π·Π°Π½ΠΎΠ²ΠΎ Β«ΠΏΠ΅ΡΠ΅ΠΎΡΠΊΡΡΠ²Π°ΡΡΒ» ΠΈΠ΄Π΅Ρ, ΡΡΠΎ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΠΎΠ΄Π΅Π»ΠΈ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ΅ΠΉ Π·Π° Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π½Π΅ Π½Π°ΠΏΡΡΠΌΡΡ Π° ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠΎ Π΅ΡΡΡ Β«Π€Π°ΡΠ°Π΄Β», ΠΊΠ°ΠΊ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΠΎΡΠΊΡΠ΄Π° Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ Π²Π·ΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π°ΠΉΠ΄:
2. Dependency Inversion. ΠΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
ΠΠ΅ ΡΠΌΠΎΡΡΡ Π½Π° ΡΠ²ΠΎΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΠΊΠ°ΠΆΡΡΡΡΡΡ ΠΏΡΠΎΡΡΠΎΡΡ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π½Π°ΡΡΡΠ°Π΅ΡΡΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ. Π ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠΎΠ΄Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ/ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΡΠΎ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π²ΠΌΠ΅ΡΡΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π³Π΄Π΅-ΡΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ. ΠΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π½ΡΠΆΠ½ΠΎ ΡΠ²Π΅ΡΡΠΈ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΡ, Π³Π΄Π΅ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΈ Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΊΠ»Π°ΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π½Π΅ Π±ΡΠ»ΠΈ ΡΠ°Π·Π±ΡΠΎΡΠ°Π½Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ β ΡΠ°Π±ΡΠΈΠΊ, ΡΠ΅ΡΠ²ΠΈΡ Π»ΠΎΠΊΠ°ΡΠΎΡΠΎΠ², IoC-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ².
Π ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΡΠΌΡΡΠ»Π΅ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΡΠΈΠ½ΡΠΈΠΏΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ±ΠΎΡΠ° (Single Choice Principle), ΠΊΠΎΡΠΎΡΡΠΉ Π³ΠΎΠ²ΠΎΡΠΈΡ: «Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ², ΠΈΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΈΡΡΠ΅ΠΌΡ«. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ (ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠ°ΠΊ Π² ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΌ Π½Π°ΠΌΠΈ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²), ΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΎΡΡΠ°Π½ΡΡΡΡ Π½Π΅Π·Π°ΡΡΠΎΠ½ΡΡΡΠΌΠΈ ΠΈ ΡΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ.
ΠΡ Π° ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΈ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²ΠΎΠΈ Β«Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΒ», Π½Π΅ Π½Π°ΡΡΡΠ°Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Dependency Inversion.
ΠΠΎ, ΠΊΠ°ΠΊ ΠΈ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π°ΠΏΡΡΠΌΡΡ β Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ Π±ΡΠ΄Π΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ Π½Π΅ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π° ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π Π΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π±Π»ΠΎΠ½ Π€Π°Π±ΡΠΈΡΠ½ΡΠΉ ΠΠ΅ΡΠΎΠ΄ (Factory Method).
«Π‘ΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠ΅ΡΠ΅Π· new, ΠΌΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΡ-ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π² ΠΌΠΎΠ΄ΡΠ»ΡΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ».
Π ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π³ΡΡΠΏΠΏΡ ΠΈΠ»ΠΈ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π²ΠΌΠ΅ΡΡΠΎ Π€Π°Π±ΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΠ΅ΡΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΠ±ΡΡΡΠ°ΠΊΡΠ½Π°Ρ Π€Π°Π±ΡΠΈΠΊΠ° (Abstract factory).
ΠΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ ΠΠΎΠΊΠ°ΡΠΎΡ Π‘Π΅ΡΠ²ΠΈΡΠΎΠ² (Service Locator), ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, Π·Π½Π°ΡΡΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (ΡΠ΅ΡΠ²ΠΈΡΡ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ.
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ°Π±ΡΠΈΠΊ Π² ΡΠΎΠΌ, ΡΡΠΎ Service Locator Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ (ΠΈΠ»ΠΈ Π·Π½Π°Π΅Ρ Π³Π΄Π΅/ΠΊΠ°ΠΊ ΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ, Π° Π΅ΡΠ»ΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ, ΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ). Π€Π°Π±ΡΠΈΠΊΠ° ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π² ΠΏΠΎΠ»Π½ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ Ρ Π½ΠΈΠΌ ΡΡΠΎ Ρ ΠΎΡΠΈΡΠ΅. ΠΠΎΠΊΠ°ΡΠΎΡ ΠΆΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π²ΡΠ΄Π°Π΅Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅, ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠΎΡΡΠΎΠΌΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, Π²ΡΠ΄Π°Π½Π½ΡΠΌΠΈ Service Locator, Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ Π²Π°ΠΌΠΈ ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΡΠΎ-ΡΠΎ Π΅ΡΠ΅.
ΠΠ±ΡΠ΅ΠΊΡΡ Π² Service Locator ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½Π°ΠΏΡΡΠΌΡΡ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ», Π΄Π° ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π»ΡΠ±ΡΠΌ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. Π‘Π°ΠΌ Service Locator ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ Ρ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠΈΠ½Π³Π»Π΅ΡΠΎΠ½ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄.
ΠΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Service Locator ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°ΡΡ Π°Π½ΡΠΈΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠΌ ΠΈ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ (Π³Π»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π΅ΡΠ²Π½ΡΠ΅ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ ΠΈ Π΄Π°Π΅Ρ Π»ΠΈΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ Ρ
ΠΎΡΠΎΡΠ΅Π³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π°). ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ Ρ ΠΠ°ΡΠΊΠ° Π‘ΠΈΠΌΠ°Π½Π°:
Service Locator is an Anti-Pattern
Abstract Factory or Service Locator?
ΠΡΠΎ ΡΠ°ΠΊ ΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ β ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ (Dependency Injection). ΠΠ±ΡΡΠ½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π»ΠΈΠ±ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° (Constructor Injection), Π»ΠΈΠ±ΠΎ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° (Setter injection).
Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΠ½Π²Π΅ΡΡΠΈΡΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ β Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ ΠΊΡΠΎ-ΡΠΎ ΠΈΠ·Π²Π½Π΅. ΠΠΎΠ΄ΡΠ»Ρ ΠΈΠ· Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠ°ΡΡΠΈΠ²Π½ΡΠΌ β Π½Π΅ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ, Π° Π΄Π»Ρ Π½Π΅Π³ΠΎ Π΄Π΅Π»Π°ΡΡ. Π’Π°ΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΠ½Π²Π΅ΡΡΠΈΡ ΠΠΎΠ½ΡΡΠΎΠ»Ρ (Inversion of Control), ΠΈΠ»ΠΈ ΠΡΠΈΠ½ΡΠΈΠΏ ΠΠΎΠ»Π»ΠΈΠ²ΡΠ΄Π° β Β«ΠΠ΅ Π·Π²ΠΎΠ½ΠΈΡΠ΅ Π½Π°ΠΌ, ΠΌΡ ΡΠ°ΠΌΠΈ Π²Π°ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΠΌΒ».
ΠΡΠΎ ΡΠ°ΠΌΠΎΠ΅ Π³ΠΈΠ±ΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π΄Π°ΡΡΠ΅Π΅ ΠΌΠΎΠ΄ΡΠ»ΡΠΌ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΡΡ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΡΡΡ. ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΎ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Β«ΠΡΠΈΠ½ΡΠΈΠΏ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈΒ» β ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°Π½ Π½Π° ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Ρ ΠΎΡΠΎΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π½Π΅ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ Π½ΠΈ ΠΎ ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠΌ. ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π²ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Β«ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΒ» (ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ ΠΈ ΠΈΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡΠΌΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ Π½Π΅ΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ β IoC-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ).
ΠΠΎ ΡΡΡΠΈ, Π·Π΄Π΅ΡΡ Π²ΡΠ΅ ΠΊΠ°ΠΊ Π² ΠΆΠΈΠ·Π½ΠΈ: Π² Ρ ΠΎΡΠΎΡΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡΡ, Π° ΡΡΠΎΠ»Ρ, ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΠΈ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΈΠΌ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠΊΡΠΏΠ°Π΅Ρ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΊΠ»Π°Π΄ΠΎΠ²ΡΠΈΠΊ. ΠΠ»ΠΈ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° β ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄ΡΠΌΠ°ΡΡ ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄Π°Ρ , ΡΠ±ΠΎΡΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΡΠΎ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ, Π° Π½Π΅ ΡΠ°ΠΌΠΈ Π΄Π΅ΡΠ°Π»ΠΈ.
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΈ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΎ ΡΠΏΠΎΡΠΎΠ±Π°Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ (ΡΠΎΠ»ΡΠΊΠΎ Π½Π°Π΄ΠΎ ΠΈΠΌΠ΅ΡΡ Π²Π²ΠΈΠ΄Ρ, ΡΡΠΎ Ρ ΠΎΡΡ Π°Π²ΡΠΎΡ ΠΏΠΈΡΠ΅Ρ ΠΎ Dependency Inversion, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅ΡΠΌΠΈΠ½ Inversion of Control; Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π² ΡΡΡΡΠΊΠΎΠΉ Π²ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° ΠΈ ΡΡΠΈΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°ΠΌ Π΄Π°Π½Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ). Π ΠΏΡΠΈΠ½ΡΠΈΠΏ Inversion of Control (Π²ΠΌΠ΅ΡΡΠ΅ Ρ Dependency Injection ΠΈ Service Locator) Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΡΡΡ ΠΠ°ΡΡΠΈΠ½ΠΎΠΌ Π€Π°ΡΠ»Π΅ΡΠΎΠΌ ΠΈ Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ ΠΎΠ±Π΅ΠΈΡ Π΅Π³ΠΎ ΡΡΠ°ΡΠ΅ΠΉ: «Inversion of Control Containers and the Dependency Injection pattern» ΠΈ βInversion of Controlβ.
ΠΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ (Dependency Inversion) + ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ (ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Dependency Injection) ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ/Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ. ΠΠ½ΠΈ ΡΠ»ΡΠΆΠ°Ρ ΡΠ΅ΠΌ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠΎΠΌ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π΄Π΅ΡΠΆΠΈΡΡΡ ΡΠ»Π°Π±Π°Ρ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΡ ΠΊΠΎΠ΄Π°, Π΅Π³ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡΡ, ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ, ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈ Π±Π΅Π· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΈΠΌΠ΅ΡΡ ΠΌΠ°Π»ΠΎ ΡΠΌΡΡΠ»Π°. ΠΠΎ, Π΅ΡΠ»ΠΈ Ρ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠΎΠΌ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΡΠΎ Π·Π½Π°Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ΅ΠΌΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ.
3. ΠΠ°ΠΌΠ΅Π½Π° ΠΏΡΡΠΌΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π½Π° ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ
ΠΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠ΄ΡΠ»Ρ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΈΠ·Π²Π΅ΡΡΠΈΡΡ Π΄ΡΡΠ³ΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π² Π½Π΅ΠΌ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠΎΠ±ΡΡΠΈΡ/ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π΅ΠΌΡ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎ Ρ ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΡΠΎΠΌ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠ΄ΡΠ»ΡΠΌ Π²ΠΎΠ²ΡΠ΅ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Β«Π·Π½Π°ΡΡ Π΄ΡΡΠ³ ΠΎ Π΄ΡΡΠ³Π΅Β», ΡΠΎ Π΅ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΡΡΠΌΡΠ΅ ΡΡΡΠ»ΠΊΠΈ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ, Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ (messages) ΠΈΠ»ΠΈ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ (events).
Π‘Π²ΡΠ·Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π°Π±ΠΎΠΉ, ΡΠ΅ΠΌ ΠΏΡΡΠΌΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΎΠ½Π° ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ²:
ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠ°ΡΡΡΠ»ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Β«Π±ΠΎΠ½ΡΡΒ» β Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ Β«ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ²Β» Π½Π° Β«ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠ΅Β» (Ρ.Π΅. ΡΠ°ΡΡΡΠ»Π°Π΅ΠΌΡΠ΅) ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅/ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ β ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΡΠ°ΡΠΈΠΊΠ° Π² Π°ΡΡΠΎΠΏΠΎΡΡΡ. ΠΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΎΡ ΡΠ°ΠΌΠΎΠ»Π΅ΡΠΎΠ², ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π² Π±Π°ΡΠ½Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΡ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΌΠΎΠ»Π΅ΡΠ°ΠΌΠΈ Π½Π°ΠΏΡΡΠΌΡΡ. Π Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΡΠΆΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΌΠΎΠ»Π΅ΡΡ ΠΌΠΎΠ³ΡΡ Π²Π·Π»Π΅ΡΠ°ΡΡ ΠΈΠ»ΠΈ ΡΠ°Π΄ΠΈΡΡΡΡ, ΠΈ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΠΌΠΎΠ»Π΅ΡΠ°ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡ.
ΠΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅: ΠΠΎΠ΄ΡΠ»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Β«ΠΏΡΠΎΡΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ-ΠΊΠΎΠΌΠ°Π½Π΄Ρ. Π’Π°ΠΊΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌΠΠΎΠΌΠ°Π½Π΄Π° (Command). Π‘ΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ΄ΠΈΠ½ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ execute()), ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠΌ ΠΌΠΎΠ΄ΡΠ»ΡΠΌ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ-ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π»ΡΠ±ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Ρ Π½Π°Π΄ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΡΠ°ΡΠΊΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΡΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ Π³Π»Π°Π²Π° ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ Π±Π°Π½Π΄Ρ ΡΠ΅ΡΡΡΠ΅Ρ ΡΡΡ, Π΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°ΡΡΡ Π½Π°Ρ Π°Π±ΡΠ΅.
4. ΠΠ°ΠΌΠ΅Π½Π° ΠΏΡΡΠΌΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΡΠ΅Π΅ ΡΠ΄ΡΠΎ
ΠΠ°Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΎΠ±ΠΎΠ±ΡΠ°Π΅Ρ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅Ρ ΠΈΠ΄Π΅Ρ Π·Π°Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π² ΡΠ°Π±Π»ΠΎΠ½Π΅ Β«ΠΠΎΡΡΠ΅Π΄Π½ΠΈΠΊΒ». ΠΠΎΠ³Π΄Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΈΡ ΠΏΡΡΠΌΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΡΠΌ. ΠΠΎΡΡΠΎΠΌΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Β«Π²ΡΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠΈΒ» Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Β«ΠΎΠ΄ΠΈΠ½ ΡΠΎ Π²ΡΠ΅ΠΌΠΈΒ». ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡΡ Π½Π΅ΠΊΠΈΠΉ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ΅Π΅ ΡΠ΄ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈΠ»ΠΈ ΡΠΈΠ½Π° Π΄Π°Π½Π½ΡΡ , Π° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌΠΈ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ΄ΡΠ° ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉΡΡ ΡΠ°ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎΠΉ ΠΈΠ΄Π΅ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌ-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΠΎΠ±ΡΠ°ΡΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊΠ° ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½ΠΈΡΠ΅Π³ΠΎ Π΄ΡΡΠ³ ΠΎ Π΄ΡΡΠ³Π΅ Π½Π΅ Π·Π½Π°ΡΡ.
Π―Π΄ΡΠΎ-ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠ°ΠΊ Π·Π½Π°ΡΡ ΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΡ -ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Ρ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠΌΠΈ (ΠΏΡΠΈΠΌΠ΅Ρ β Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° apache ), ΡΠ°ΠΊ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ, ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Ρ Π½Π΅ Π·Π½Π°ΡΡ. Π ΡΡΡΠ½ΠΎΡΡΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Β«ΡΠ°Π±Π»ΠΎΠ½Π΅Β» ΠΠΎΠ΄Π΅Π»Ρ-ΠΠΈΠ΄-ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ (MVC), Π³Π΄Π΅ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΠΎΠ΄Π΅Π»ΡΡ (ΡΠ²Π»ΡΡΡΠ΅ΠΉΡΡ ΡΠ΄ΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠΈΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ ) ΠΌΠΎΠ³ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ Π·Π½Π°ΡΡ Π΄ΡΡΠ³ ΠΎ Π΄ΡΡΠ³Π΅, Π° ΠΠΎΠ΄Π΅Π»Ρ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΎ Π½ΠΈΡ . ΠΠΈΡΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ ΠΎΠ±ΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, Π½ΠΎ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
ΠΡΠ΅Π½Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΡΠ° ΠΈΠ΄Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΠ³Ρ, Π³Π΄Π΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠ΅ Π·Π° Π³ΡΠ°ΡΠΈΠΊΡ, Π·Π²ΡΠΊ, ΡΠΈΠ·ΠΈΠΊΡ, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΡΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ ΡΠ΅ΡΠ΅Π· ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΡΠ΄ΡΠΎ (ΠΌΠΎΠ΄Π΅Π»Ρ), Π³Π΄Π΅ Ρ ΡΠ°Π½ΡΡΡΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΈΠ³ΡΡ ΠΈ Π΅Π΅ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ°Ρ . Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ MVC, Π² ΠΈΠ³ΡΠ°Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Ρ ΡΠ΄ΡΠΎΠΌ (ΠΌΠΎΠ΄Π΅Π»ΡΡ) ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ Π·Π° ΡΡΠ΅Ρ ΡΠ°Π±Π»ΠΎΠ½Π° Β«ΠΠ°Π±Π»ΡΠ΄Π°ΡΠ΅Π»ΡΒ», Π° ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ, ΡΡΠΎ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ Π°Π½ΠΈΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΈ Β«Π±Π΅Π³ΡΡΠ΅ΠΉΒ» Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ.
5. ΠΠ°ΠΊΠΎΠ½ ΠΠ΅ΠΌΠ΅ΡΡΡ (law of Demeter)
ΠΠ°ΠΊΠΎΠ½ ΠΠ΅ΠΌΠ΅ΡΡΡ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠ²Π½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ: «ΠΠ±ΡΠ΅ΠΊΡ A Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ C, Π΅ΡΠ»ΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° A Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ B ΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° B Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ C«. Java-ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² ΠΊΠΎΠ΄Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Β«ΡΠ²Π½ΡΠΌΠΈΒ» β ΠΊΠ»Π°ΡΡΡ/ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Β«ΡΠ²ΠΎΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΒ» ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π»Π΅Π·ΡΡ ΡΠ΅ΡΠ΅Π· Π½ΠΈΡ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ. ΠΡΠ°ΡΠΊΠΎ ΡΡΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠΎΡΠΌΡΠ»ΠΈΡΡΡΡ Π΅ΡΠ΅ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: «ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΠΉ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π΄ΡΡΠ·ΡΡΠΌΠΈ, Π° Π½Π΅ Ρ Π΄ΡΡΠ·ΡΡΠΌΠΈ Π΄ΡΡΠ·Π΅ΠΉ«. Π’Π΅ΠΌ ΡΠ°ΠΌΡΠΌ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΌΠ΅Π½ΡΡΠ°Ρ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΡ ΠΊΠΎΠ΄Π°, Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΠΎΠ»ΡΡΠ°Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΡ ΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ Π΅Π³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π°.
ΠΠ°ΠΊΠΎΠ½ ΠΠ΅ΠΌΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π²ΡΠΈΠΉΡΡ Β«ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°Π½ΠΈΡΒ», ΡΠ²Π»ΡΡΡΠ΅ΠΉΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ ΡΠ»Π°Π±ΠΎΠΉ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ ΠΈ Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ/ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²/ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ΅Π³ΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ: ΠΡΠ»ΠΈ ΠΡ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠΎΠ±Π°ΠΊΠ° ΠΏΠΎΠ±Π΅ΠΆΠ°Π»Π°, Π³Π»ΡΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠ²Π°ΡΡ Π΅Π΅ Π»Π°ΠΏΠ°ΠΌΠΈ, Π»ΡΡΡΠ΅ ΠΎΡΠ΄Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΠ±Π°ΠΊΠ΅, Π° ΠΎΠ½Π° ΡΠΆΠ΅ ΡΠ°Π·Π±Π΅ΡΡΡΡΡ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ Π»Π°ΠΏΠ°ΠΌΠΈ ΡΠ°ΠΌΠ°.
6. ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ
ΠΠ΄Π½Ρ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠΈΠ»ΡΠ½ΡΡ ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π΄Π°Π΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ, ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠ΅ΠΉ. ΠΡΠ° ΡΠ΅ΠΌΠ° Ρ ΠΎΡΠΎΡΠΎ ΡΠ°ΡΠΊΡΡΡΠ° Π² ΡΡΠ°ΡΡΠ΅ ΠΠ΅ΡΠ±Π° Π‘Π°ΡΡΠ΅ΡΠ° β Β«ΠΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡΒ».
ΠΠΎΠ³Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ°Π±Π»ΠΎΠ½ ΠΠ΅Π»Π΅Π³Π°Ρ (Delegation/Delegate) ΠΈ ΠΏΡΠΈΡΠ΅Π΄ΡΠΈΠΉ ΠΈΠ· ΠΈΠ³Ρ ΡΠ°Π±Π»ΠΎΠ½ ΠΠΎΠΌΠΏΠΎΠ½Π΅Ρ (Component), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ Π² ΠΊΠ½ΠΈΠ³Π΅ Β«Game Programming PatternsΒ» (ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ Π³Π»Π°Π²Π° ΠΈΠ· ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΠΈ Π΅Π΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄).
Π§ΡΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ΄Π΅ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°Ρ , ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈΠ³Ρ. Game Programming Patterns β Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°ΠΉΡ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊ Π·Π°Π΄Π°ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ³Ρ (ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, Π΅ΡΡΡ ΡΠΆΠ΅ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ β Β«Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡΒ», ΡΠΏΠ°ΡΠΈΠ±ΠΎ strannik_k Π·Π° ΡΡΡΠ»ΠΊΡ). ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°ΡΡΡ Β«ΠΠΈΠ±ΠΊΠ°Ρ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π΄Π»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΠΈΠ³ΡΒ» (ΠΈ Π΅Π΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π». ΠΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅ΡΡ Π²Π²ΠΈΠ΄Ρ ΡΡΠΎ Π°Π²ΡΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π½Π°Π·ΡΠ²Π°Π΅Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ «ΠΠ°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Ρ»).