Π’ΠΎΠ²Π° ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠ°Π·ΠΊΠ°Π· Π·Π° Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡΡΠ° ΠΎΡ ΠΊΠ½ΠΈΠ³Π°ΡΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠ°Π·Π³Π»Π΅Π΄Π°Π½ΠΈ Π½ΡΠΊΠΎΠΈ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΈ Π·Π½Π°Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π° ΡΠ° Π±ΠΈΠ»ΠΈ Π½Π°ΡΡΠ΅Π½ΠΈ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ, ΡΠ΅ΡΠ΅ΠΉΠΊΠΈ ΡΠ°Π·ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ, Π΄Π° Π΄Π°Π΄Π΅ΡΠ΅ ΡΡΠ΅Π½ ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π½Π° Π²ΡΠΏΡΠΎΡΠ° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°? ΠΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ? ΠΠ°ΠΊΠ²Π° ΡΠΎΠ»Ρ ΠΈΠ³ΡΠ°Π΅ ΡΡ? ΠΠΌΠ° Π΄ΠΎΡΡΠ° Π½Π΅ΡΡΠ½ΠΎΡΠΈ ΠΎΠΊΠΎΠ»ΠΎ ΡΠΎΠ·ΠΈ ΡΠ΅ΡΠΌΠΈΠ½. ΠΡΠΈΡΠΊΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΡΠ½ΠΎ, Π½ΠΎ Π΅ Π½ΡΠΊΠ°ΠΊ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎ ΠΈ Π±Π΅Π· ΡΠΎΡΠ½ΠΎΡΡ. ΠΠ°ΡΡΠΈΠ½ ΡΠΌΡΡΠ°, ΠΈ Π°Π· ΡΡΠΌ ΡΡΠ³Π»Π°ΡΠ΅Π½ Ρ Π½Π΅Π³ΠΎ, ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠΌΠ° Π΄Π²Π΅ ΡΡΡΡΠ°Π²ΠΊΠΈ:
- ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (behavior) β ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΠΈ Π·Π°Π΄Π°ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡΡ, ΡΡΠ»ΡΠ³Π°ΡΠ°) ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°.
- ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° β ΡΠΎΠ·ΠΈ ΡΠ΅ΡΠΌΠΈΠ½ Π² Π³ΠΎΠ»ΡΠΌΠ° ΡΡΠ΅ΠΏΠ΅Π½ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ Π΄ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
ΠΠΎ Π΄ΠΎΡΠΈ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ΅ Π·Π°Π΄Π°ΡΠ°ΡΠ°, Π·Π° ΠΊΠΎΡΡΠΎ Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ, ΡΠΎΠ²Π° ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠΎ ΠΈΠΌΠ° Π΄ΠΎΠ±ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π΅ Π΅ Π·Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π΅ Π·Π° Π»Π΅ΠΊΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΎΡΡ, Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π΅ Π·Π° Π»Π΅ΠΊΠΎΡΠ°ΡΠ° Π½Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅, Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π΅ Π·Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π΅ Π·Π° ΡΠΊΠΎΡΠΎΡΡΡΠ°, Ρ ΠΊΠΎΡΡΠΎ Π½ΠΎΠ² ΡΠΎΠ²Π΅ΠΊ Π² Π΅ΠΊΠΈΠΏΠ° ΡΠ°Π·Π±ΠΈΡΠ° Π½Π΅ΡΠ°ΡΠ°.
Π Π΅ΡΠΎ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌ ΡΠ°Π·ΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π°Π²ΠΈΠΌ ΠΎΡ Π³Π»Π°Π²ΠΎΠ±ΠΎΠ»ΠΈΡΡΠ° ΠΏΡΠΈ ΠΌΠ°Π»ΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° ΠΎΡ PM-Π° ΠΈΠ»ΠΈ ΠΎΡ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½ΠΎΡΠΎ Π»ΠΈΡΠ΅: Π·Π° ΡΠΎΠ²Π° ΡΠ΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ ΠΊΠ½ΠΈΠ³Π°ΡΠ°.
ΠΠ° Π°Π²ΡΠΎΡΠΈΡΠ΅
ΠΡΠ΅Π΄ΠΈ Π΄Π° ΠΊΠ°ΠΆΠ° Π½Π΅ΡΠΎ Π·Π° ΡΠ°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π°, ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ° ΠΌΠ°Π»ΠΊΠΎ Π·Π° ΡΠ΅Π±Π΅ ΡΠΈ.
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΡΠΌ Strong Junior Developer, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΡΠ΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΡΠ»ΡΠ³ΠΈ ΡΡΠ΅Π· ASP .NET CORE.
ΠΠ΅ΡΠ΅ Π³ΠΎΠ΄ΠΈΠ½Π° ΡΠ°Π±ΠΎΡΡ Π² Π΅Π΄Π½Π° "Π³Π°Π»Π΅ΡΠΈΡ" ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ΅ ΡΠΏΡΠ°Π²ΡΠΌ.
Π’Π°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π° Ρ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π²Π΅ΡΠ΅ 2 ΠΏΡΡΠΈ ΠΈ Ρ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π½Π° Π²ΡΠΈΡΠΊΠΈ:
- ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ;
- ΡΡΠΎΠ½ΡΠ΅Π½Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ;
- Π±Π΅ΠΊΠ΅Π½Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ;
- ΠΈ Π΄ΠΎΡΠΈ Π΄Π΅Π²ΠΎΠΏΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΈ.
ΠΡΡΡΠ½ΠΎΡΡ Π½Π° Π²ΡΠΈΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠΎΡΡΡΠ΅Ρ, ΠΈΠΌΠ°ΠΌ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΏΡΡΠΊΠ°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π±Π΅Π· Π΄Π° Π²ΠΊΠ»ΡΡΠ²Π°ΠΌΠ΅ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ; (Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π° Π·Π½Π°Π΅ΠΌ Π·Π°ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΏΡΠ΅ΠΊΠ°ΡΠ²Π°Ρ Π΄Π²Π° ΠΏΡΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π·Π° Π·Π°Π΄Π°ΡΠ°), ΡΡΠ²Π΅ΡΠ²Π°ΠΌ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΠ°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π°.
Π‘Π΅Π³Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌ Π΄Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈΡΠ°ΠΌ Π·Π°ΡΠΎ ΡΠ°ΠΊΠ° ΡΠΌΡΡΠ°ΠΌ.
ΠΡΠΊΠΎΠ»ΠΊΠΎ Π΄ΡΠΌΠΈ Π·Π° Π°Π²ΡΠΎΡΠ° Π½Π° ΡΠ°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π° (Π·Π°ΡΠΎΡΠΎ Π·Π° ΠΌΠ΅Π½ Π°Π²ΡΠΎΡΠΈΡΠ΅ΡΡΡ Π½Π° ΠΏΠΈΡΠ΅ΡΠΈΡ ΠΈΠ³ΡΠ°Π΅ Π³ΠΎΠ»ΡΠΌΠ° ΡΠΎΠ»Ρ). ΠΠΈΡΠ»Ρ, ΡΠ΅ ΡΠ΅ ΠΌΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅, ΠΌΠ°ΠΊΠ°Ρ ΡΠ΅ ΡΠΎΠ²Π° Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, Π½ΠΎ Π°ΠΊΠΎ Π°Π²ΡΠΎΡΠΈΡΠ΅ΡΠ΅Π½ ΡΠΎΠ²Π΅ΠΊ Π² ΡΡΠ΅ΡΠ°ΡΠ° ΠΊΠ°ΠΆΠ΅ Π½Π΅ΡΠΎ β Π²ΠΈΠ΅ ΠΏΡΠΎΡΠ²ΡΠ²Π°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π΄ΠΎΠ²Π΅ΡΠΈΠ΅ ΠΊΡΠΌ ΠΊΠ°Π·Π°Π½ΠΎΡΠΎ ΠΎΡ Π½Π΅Π³ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΈΡΠ»Ρ, ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ²ΡΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π° Π΄ΠΈΠ°Π³Π½ΠΎΠ·Π°ΡΠ°, ΠΏΠΎΡΡΠ°Π²Π΅Π½Π° ΠΎΡ Π»Π΅ΠΊΠ°Ρ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π½Π° Π΄ΠΈΠ°Π³Π½ΠΎΠ·Π°ΡΠ° ΠΎΡ Π½ΡΠΊΠΎΠΉ ΠΎΡ ΡΡΠ»ΠΏΠ°ΡΠ° (ΠΊΠΎΠΉΡΠΎ Π΅ ΡΡΡΡΠΈΠ» ΡΠΈΠΌΠΏΡΠΎΠΌΠΈ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ).
Π ΠΎΠ±ΡΡΡ ΠΠ°ΡΡΠΈΠ½ β ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΡΠΎ ΠΠ½ΠΊΡΠ» ΠΠΎΠ± (Π΄ΡΠ΄ΠΎ ΠΠΎΠ±) β ΡΠ°Π±ΠΎΡΠΈ Π² ΡΡΠ΅ΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ, Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ (ΠΎΡ ΡΠ΅Π± ΡΡΠ»ΡΠ³ΠΈ Π΄ΠΎ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ) ΠΎΡ 1970 Π³ΠΎΠ΄ΠΈΠ½Π°. Π’ΠΎΠΉ Π΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠ½ΡΡΠ»ΡΠ°Π½Ρ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡ, ΠΏΠΈΡΠ°Π» Π΅ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΡ, ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠΈ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ΅Π½ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡ ΠΈ ΡΠΎΠ²Π΅ΠΊ, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΈΠ·ΠΈΠ³ΡΠ°Π» ΠΊΠ»ΡΡΠΎΠ²Π° ΡΠΎΠ»Ρ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ SOLID (ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠ°ΠΆΠ΅, ΡΠ΅ Π΅ ΡΡΠ·Π΄Π°ΡΠ΅Π»). Π‘ΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΈΡΠΊΠ°ΠΌ Π΄Π° Π΄ΠΎΠ±Π°Π²Ρ, ΡΠ΅ ΡΠ°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π° ΠΌΠΈ Π±Π΅ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ°Π½Π° ΠΎΡ ΠΌΠΎΡ ΡΠΈΠΌΠ»ΠΈΠ΄Π΅Ρ Ρ Π½Π°Π΄ 15 Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΎΠΏΠΈΡ.
ΠΠ° ΠΊΠ½ΠΈΠ³Π°ΡΠ°
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
ΠΡΠ΅Π΄ΠΈ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ° ΠΊΠ½ΠΈΠ³Π°ΡΠ°, ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π΄ΠΎΡΡΠ° ΡΡΠ°ΡΠΈΠΈ Π½Π° ΡΡΡΠΈΡ Π₯Π°Π±ΡΡ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π°ΡΠ΅ Π΄ΡΠΌΠ°ΡΠ° "Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ". ΠΠ°ΠΊΠ²ΠΎ Π΅ ΡΠΎΠ²Π°, ΠΊΠΎΠΉ ΠΎΡ ΠΊΠΎΠ³ΠΎ Π΅ Π·Π°Π²ΠΈΡΠΈΠΌ, ΠΊΠ°ΠΊΠ²ΠΎ ΡΠΎΡΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π° "Π·Π°Π²ΠΈΡΡ" ΠΈ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ ΠΊΠ»Π°Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°Π²ΠΈΡΠΈ ΠΎΡ Π΄ΡΡΠ³?
Π ΡΠ°ΠΊΠ°, ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ΅ΡΠ΅Π½Π΅ΡΠΎ Π½Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ° ΡΡΠ²ΠΎΠΈΡ Π΄Π²Π° ΠΌΠΎΠΌΠ΅Π½ΡΠ°:
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡ β ΡΠ΅ΡΠΌΠΈΠ½, Π·Π½Π°ΡΠ΅Ρ, ΡΠ΅ Π½ΡΠΊΠΎΠΉ ΠΊΠ»Π°Ρ (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΡΡΠ»ΡΠ³Π°) Π·Π½Π°Π΅ Π·Π° Π΄ΡΡΠ³ ΠΊΠ»Π°Ρ (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΡΡΠ»ΡΠ³Π°), ΠΈ ΡΠΎΠ²Π° Π·Π½Π°Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄Π° Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ (ΡΠ΅Π³Π° Π΄ΠΆΠ°Π²ΠΈΡΡΠΈΡΠ΅, ΡΠ°ΡΠΏΠΈΡΡΠΈΡΠ΅ ΠΈ ΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ ΡΠ΅ ΠΌΠ΅ ΡΠ°Π·Π±Π΅ΡΠ°Ρ) Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΈΠΌΠΏΠΎΡΡ Π½Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π°. Π‘ Π΄ΡΡΠ³ΠΈ Π΄ΡΠΌΠΈ: ΠΈΠΌΠ°ΡΠ΅ ΠΊΠ»Π°Ρ Π Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½Π° Default.Classes ΠΈ ΠΊΠ»Π°Ρ B Another.Classes. Π’Π°ΠΊΠ°, Π°ΠΊΠΎ Π² ΡΠΎΡΡ ΠΊΠΎΠ΄Π° Π½Π° ΠΊΠ»Π°Ρ Π ΡΠΈΠ³ΡΡΠΈΡΠ° using Another.Classes; β ΡΠΎ ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΊΠ»Π°Ρ Π Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΠΊΠ»Π°Ρ B.
ΠΠ° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΏΠΎ ΡΡ
Π΅ΠΌΠ°ΡΠ°, ΠΊΡΠ΄Π΅ Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΈΡΡ ΠΊΠ»Π°Ρ ΠΈ ΠΊΡΠ΄Π΅ Π½Π΅ Π΅ β Π³Π»Π΅Π΄Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΎΠΊΠ°ΡΠ° Π½Π° ΡΡΡΠ΅Π»ΠΊΠ°ΡΠ°: Π² 1) ΡΡΡΠ΅Π»ΠΊΠ°ΡΠ° ΡΠ΅ ΡΠΎΡΠΈ ΠΎΡ ΠΊΠ»Π°Ρ Π Π² ΠΏΠΎΡΠΎΠΊΠ° Π½Π° ΠΊΠ»Π°Ρ B. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΊΠ»Π°Ρ B Π΅ ΠΏΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΠΎΡ ΠΊΠ»Π°Ρ Π. Π ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡΠ° Π² ΠΊΠ»Π°Ρ Π Π½ΡΠΌΠ° Π΄Π° Π½Π°Π½Π΅ΡΠ°Ρ "Π²ΡΠ΅Π΄Π°" Π½Π° ΠΊΠ»Π°Ρ B.

SOLID
ΠΠ΄Π½Π° ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΏΡΠΈΡΠΈΠ½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠ΅ Π½Π°ΠΊΠ°ΡΠ°Ρ
Π° Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ° ΡΠ°Π·ΠΈ ΠΊΠ½ΠΈΠ³Π° β Π΅ ΠΎΠ±ΡΡΠ½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ SΠLID ΠΎΡ ΠΏΡΡΠ²ΠΈΡ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ, Π·Π°ΡΠΎΡΠΎ Π΄ΡΠ΄ΠΎ Π ΠΎΠ± Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π» ΡΠ΅Π·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠ°ΠΆΠ΅, ΡΠ΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½Π΅Π³ΠΎ ΡΡΠ²Π°ΠΌΠ΅ ΡΠΎΠ²Π° Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ β SOLID.
ΠΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ β ΡΠ΅Π·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ Π³ΠΎΠ²ΠΎΡΡΡ ΠΈ ΡΡΠ²Π΅ΡΠ²Π°Ρ Π΄Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΡΠΈ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ 5 ΠΏΡΠ°Π²ΠΈΠ»Π°:
S β SRP (ΠΡΠΈΠ½ΡΠΈΠΏ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ½Π°ΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ)
O β OCP (ΠΡΠΈΠ½ΡΠΈΠΏ Π½Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΎΡΡ ΠΈ Π·Π°ΡΠ²ΠΎΡΠ΅Π½ΠΎΡΡ)
L β LSP (ΠΡΠΈΠ½ΡΠΈΠΏ Π½Π° Π·Π°ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΠΈΡΠΊΠΎΠ²)
I β ISP (ΠΡΠΈΠ½ΡΠΈΠΏ Π½Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°)
D β DIP (ΠΡΠΈΠ½ΡΠΈΠΏ Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅)
ΠΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΠΊΠ»Π°ΡΠΎΠ²Π΅ ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ, Π½Π° Π½ΠΈΠ²ΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ»ΠΎΠ΅Π²Π΅ (ΡΡΠ»ΡΠ³ΠΈ).
ΠΠΊΠΎ ΡΠΌΡΡΠ°ΡΠ΅, ΡΠ΅ ΠΡΠΈΠ½ΡΠΈΠΏΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ½Π°ΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΊΠ»Π°Ρ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ» ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ°Π²ΠΈ ΡΠ°ΠΌΠΎ Π΅Π΄Π½ΠΎ Π½Π΅ΡΠΎ β Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ½Π΅ Π³Π»Π°Π²Π° Π·Π° SOLID. ΠΠ°ΡΠΎΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ, Π΄Π°Π΄Π΅Π½ΠΎ ΠΏΠΎ-Π³ΠΎΡΠ΅ β Π΅ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, Π½ΠΎ Π½Π΅ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΌΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ.
ΠΠ° ΠΠ½Π²Π΅ΡΡΠΈΡ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅
ΠΡΠΎΠ±Π΅Π½ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΎΡΠ΄Π΅Π»Ρ Π½Π° ΠΎΠ±ΡΡΠ½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΡΠΈΠ½ΡΠΈΠΏΠ° Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ (ΡΠΎΠ·ΠΈ, ΠΊΠΎΠΉΡΠΎ Π΅ D ΠΎΡ SOLID). Π Ρ ΠΎΠ΄Π° Π½Π° ΡΠ΅ΡΠ΅Π½Π΅ΡΠΎ Π½Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ° ΠΎΡΡΠ·Π½Π°Π²Π°Ρ , ΡΠ΅ ΡΠΎΠ²Π° Π½Π΅ Π΅ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ, Π° ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠΎΡΠΎΠΊΠ°ΡΠ° Π½Π° Π²Π°ΡΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° (DOMAIN) Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ° ΠΎΡ Π΄Π΅ΡΠ°ΠΉΠ»ΠΈΡΠ΅ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΠ»ΠΎΡ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ (DAL).

ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠ°ΠΌΠΈΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π½Π°ΡΠ΅Π΄ Ρ ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ Π² SOLID ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΠΌΠ°Π»ΠΊΠΎ Π½Π΅ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΡΠΌ, ΡΠ°ΠΌΠΈΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΡΠΌ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠ΅Π· ΡΡΠ»Π°ΡΠ° ΠΊΠ½ΠΈΠ³Π°, ΠΈ ΡΠΎΠ²Π° Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΏΠΎΡΠΎΠΊΠ°ΡΠ° Π½Π° Π²Π°ΡΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΠΉΡΠΎ, ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² DDD.
ΠΠ° Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΎ Π² ΠΊΠ½ΠΈΠ³Π°ΡΠ° ΡΠ΅ ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΡΡ Π·Π° Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° Π²Π°ΠΆΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ: ΠΊΠ°ΠΊΠ²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, ΠΊΠ°ΠΊΡΠ² ΡΡΠ΅ΠΉΠΌΡΡΡΠΊ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, ΠΊΠ°ΠΊΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π° Π²ΠΊΠ»ΡΡΠΈΡΠ΅, ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ ΡΡΡΡΠ°ΡΠΊΠ° ΠΈ Ρ.Π½.
Π’Π°ΠΊΠ° ΡΠ΅, Π°Π²ΡΠΎΡΡΡ ΡΠΌΡΡΠ°: ΡΡΡΠ±Π²Π° Π΄Π° Π²Π·Π΅ΠΌΠ°ΡΠ΅ ΠΠΠ ΠΠΠΠ ΠΠ-ΠΠΠΠΠ ΡΠ°ΠΊΠΈΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ°ΡΠΎΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡΠ° ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΡΡΠΎ, ΡΠ°ΠΌΠ°ΡΠ° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΡΠ΅ΡΠΊΠ° ΡΡΡΡΠ°Π²ΠΊΠ° ΠΈΠΌΠ° ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ. ΠΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°, Π½ΡΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΎ, ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΎ. Π ΡΠΈΠ»Π°ΡΠ° Π½Π° Π²Π°ΡΠ°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ ΠΊΠΎΠ»ΠΊΠΎ Π±ΡΡΠ·ΠΎ ΠΈ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ Π΅Π΄Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Ρ Π΄ΡΡΠ³Π° (Π·Π° ΡΠΎΠ²Π° ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈ OCP).
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·Π²Π΅Π΄Π½ΡΠΆ ΡΠ΅ΡΠΈΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ Postgresql MongoDb, ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠΈΠΌΡΠ»ΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°. Π ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ β ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΊΠ°ΡΠ° Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ΅ ΠΏΠΎΡΡΠΈ ΡΡΠ»Π°ΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ°.
ΠΠ° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π½ΡΠΊΠΎΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΎΡΠ»ΠΎΠΆΠ°Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠ΄ΠΈΠ½ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡΡΠ°.
Π‘ΠΏΡΠ°Π²ΠΊΠΈ Π·Π° DDD
DDD β Domain Driven Design β ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΡΠ»ΡΠ³ΠΈ Ρ ΡΠ»ΠΎΠΆΠ½Π° Π±ΠΈΠ·Π½Π΅Ρ Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΊΡΠΈΡΠΈΡΠ½Π° ΠΊΡΠΌ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, Π½Π°ΡΠΎΡΠ΅Π½ ΠΊΡΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΎΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° (PMs, ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΈ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠΈ ΠΈ Π΄Ρ.), Π·Π°Π΅Π΄Π½ΠΎ Ρ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ. Π’ΠΎΠ΅ΡΡ, ΡΠ΅Π»ΡΠ° Π΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠΈΡΠΊΠΈ ΡΠ»Π΅Π½ΠΎΠ²Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄Π° ΠΈΠΌΠ° ubiquitous language, ΡΠ°ΠΊΠ° ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ Π΄ΡΡΠ³ΠΈΡ ΠΈ Π΄Π° ΠΌΠΈΡΠ»ΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ Π΄ΠΎΠΌΠ΅ΠΉΠ½ Ρ Π΅Π΄Π½ΠΈ ΠΈ ΡΡΡΠΈ Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°.
ΠΠΊΠΎ ΡΡΠ΅ ΠΏΡΠΈΠ²ΡΡΠΆΠ΅Π½ΠΈΠΊ Π½Π° DDD, ΠΈΠ»ΠΈ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ°ΠΊΡΠ², ΠΈΠ»ΠΈ Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ Π½Π΅ΡΠΎ, Π½ΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ β ΠΊΠ½ΠΈΠ³Π°ΡΠ° Π΅ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½Π° Π·Π° ΠΏΡΠΎΡΠΈΡ, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π²ΡΠΎΡΠ°ΡΠ° ΡΠ°ΡΡ.
Π’ΡΠΊ Π°Π²ΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠ²Π° Π·Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Dependency Rule ΠΈ Π·Π°ΡΠΎ, ΡΠ»Π΅Π΄Π²Π°ΠΉΠΊΠΈ Π³ΠΎ, ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠ°ΡΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π½Π°ΡΠΎΡΠ²Π°Ρ ΠΊΡΠΌ High Policy ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅, Π·Π°ΡΠΎ Π΄ΠΎΠΌΠ΅ΠΉΠ½ (High Policy ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ) ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ ΠΎΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° ΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ²Π° ΡΠ΅ ΡΠ»Π΅ΡΠ½ΠΈ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°.

ΠΠ±ΡΡΡΠ°Ρ ΠΈΡΠ°Π½Π΅
Π§ΠΈΡΠΎ Π ΠΎΠ± ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ°Π·ΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊ Π΄Π΅ΡΠ°ΠΉΠ»ΠΈΡΠ΅ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π½Π°Π²ΡΠ΅Π΄ΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π²ΠΈ ΠΈ Π΄Π° ΠΏΠΎΠΏΡΠ΅ΡΠ°Ρ Π½Π° Π΅Π²ΠΎΠ»ΡΡΠΈΡΡΠ° ΠΉ Π±Π΅Π· Π±ΠΎΠ»ΠΊΠ° Π² Π±ΡΠ΄Π΅ΡΠ΅.
ΠΠΎΠΌΠ½Π΅ΡΠ΅!
ΠΠ β ΡΠΎΠ²Π° Π΅ Π΄Π΅ΡΠ°ΠΉΠ» Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ°.
ΠΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ (Web, Mobile ΠΈ Π΄Ρ.) β ΡΠ° Π΄Π΅ΡΠ°ΠΉΠ»ΠΈ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ°.
Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΡΠΈΡΠ΅ β ΡΠ° Π΄Π΅ΡΠ°ΠΉΠ»ΠΈ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ°.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ Π΄Π° ΡΠ΅ Π°Π±ΡΡΡΠ°Ρ ΠΈΡΠ°ΡΠ΅ ΠΎΡ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΈ Π΄Π° Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Dependency Inversion Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ ΠΈ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, Dependency Rule ΠΈ Π΄ΡΡΠ³ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ.
ΠΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ
Π’Π°Π·ΠΈ ΡΠ°ΡΡ ΠΌΠΈ Ρ Π°ΡΠ΅ΡΠ° ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΊΠ°ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° ΡΡΠ»ΡΠ³ΠΈ Π² ASP .NET CORE. ΠΠ°ΡΠΎΡΠΎ ΡΡΠΊ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° ΠΎΡ Π³ΠΎΡΠΎΠ²ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ.
Π ΠΎΠ±Π΅ΡΡ ΠΎΠΏΠΈΡΠ° 4 Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΡΡ Π΅ΠΌΠΈ Π·Π° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ»ΠΎΠ΅Π²Π΅ΡΠ΅.
Π’ΠΎΠΉ ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ° Π·Π°ΡΠΎ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΠ΅ΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π½Π° ΡΡΠΈΡΡΠ΅ΠΏΠ΅Π½Π½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°: UI (ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ), ΡΡΠ»ΡΠ³ΠΈ (Π΄ΠΎΠΌΠ΅ΠΉΠ½), DAL (Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ) Π΅ Π΄ΠΎΡΡΠ° Π»ΠΎΡ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΈΡΠ΅. ΠΠΈΠΆΠ΄Π°Π» ΡΡΠΌ Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, Π½ΠΎ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΈΠΊΡΠΎ-ΡΠ΅ΡΠ²ΠΈΠ·, Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈΡΠ»ΠΎΠΉΠ½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ°, Π΄ΠΎΡΡΠ° ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π΅Π΄ΠΈΠ½-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ-Π΅Π΄Π½Π°-ΡΡΠ»ΡΠ³Π°. ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ ΠΈ Π΄Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ° Π»ΠΎΡΠΈ, Π½ΠΎ ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊΡΠΎ ΡΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° DDD, ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΡΠΈ ΠΊΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ.
Π ΠΎΠ±ΡΠΈ Π»ΠΈΠ½ΠΈΠΈ, ΡΠΎΠ²Π° Π΅ ΠΊΡΠ°ΡΡ Π½Π° ΠΏΡΠ΅Π³Π»Π΅Π΄Π° Π½Π° ΠΊΠ½ΠΈΠ³Π°ΡΠ°. Π‘Π°ΠΌΠ°ΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΌΠΈ Ρ
Π°ΡΠ΅ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ, Π½Π΅ ΡΡΠΆΠ°Π»ΡΠ²Π°ΠΌ Π·Π° ΠΏΡΠΎΡΠ΅ΡΠ΅Π½ΠΎΡΠΎ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π° Π°Π²ΡΠΎΡΠ°. ΠΠ° Π²Π°Ρ, ΡΠΊΡΠΏΠΈ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΡΠΎ, Π½Π΅ ΡΡΠ΄ΠΈΡΠ΅ ΡΡΡΠΎΠ³ΠΎ β ΡΠ°Π·ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π΅ Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡΡΠ° ΠΎΡ ΠΊΠ½ΠΈΠ³Π°ΡΠ° ΠΈ ΠΌΠΎΡΡ Π»ΠΈΡΠ΅Π½ Π΅Π½ΡΡΡΠΈΠ°Π·ΡΠΌ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
