
Π§Π΅ΡΡΠΎ ΡΡΠ΅ΡΠ°ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΡΡΠ²Π°Π»ΠΈ Π·Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ SOLID (Π½ΠΈΠ΅ . β ΠΠ΅Ρ.) ΠΈΠ»ΠΈ ΠΎΠ±Π΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ (ΠΠΠ), ΠΈΠ»ΠΈ ΡΠ° ΡΡΠ²Π°Π»ΠΈ, Π½ΠΎ Π½Π΅ Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΡΠ°. Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ΅ ΠΎΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ Π½Π° ΠΠΠ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠΌΠ°Π³Π°Ρ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π² Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Π°ΡΠ° ΠΌΡ ΡΠ°Π±ΠΎΡΠ°. ΠΡΠΊΠΎΠΈ ΠΎΡ ΡΡΡ
ΡΠ° Π΄ΠΎΠ±ΡΠ΅ ΠΏΠΎΠ·Π½Π°ΡΠΈ, Π΄ΡΡΠ³ΠΈ β Π½Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π°, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΈ Π·Π° Π½Π°ΡΠΈΠ½Π°Π΅ΡΠΈ, ΠΈ Π·Π° ΠΎΠΏΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠΈ.
ΠΠ°ΠΏΠΎΠΌΠ½ΡΠΌΠ΅: Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ Π½Π° "Π₯Π°Π±ΡΠ°" β ΠΎΡΡΡΡΠΏΠΊΠ° ΠΎΡ 10 000 ΡΡΠ±Π»ΠΈ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΡΡΡ Π½Π° Skillbox Ρ ΠΏΡΠΎΠΌΠΎΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡ ΠΊΠΎΠ΄ "Π₯Π°Π±Ρ".
Skillbox ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°: ΠΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Π΅Π½ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΊΡΡΡ .
DRY (Donβt Repeat Yourself)
ΠΠΎΡΡΠ° ΠΏΡΠΎΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ, ΡΠΈΡΡΠΎ ΡΡΡΠ½ΠΎΡΡ Π΅ ΡΡΠ½Π° ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ: "ΠΠ΅ ΡΠ΅ ΠΏΠΎΠ²ΡΠ°ΡΡΠΉ". ΠΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠ° ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ ΠΈΠ·Π±ΡΠ³Π²Π° Π΄ΡΠ±Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ°ΡΠ°.
ΠΠΊΠΎ Π² ΠΊΠΎΠ΄Π° ΠΈΠΌΠ° Π΄Π²Π΅ ΠΏΠΎΠ²ΡΠ°ΡΡΡΠΈ ΡΠ΅ ΡΡΠ°ΡΡΡΠΊΠ°, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΡ Π² Π΅Π΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄. ΠΠΊΠΎ ΡΠΈΠΊΡΠΈΡΠ°Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π²Π΅Π΄Π½ΡΠΆ, ΡΠΎ Π΅ Π΄ΠΎΠ±ΡΠ΅ Π΄Π° Π³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°ΡΠ΅ Π² ΠΏΡΠ±Π»ΠΈΡΠ½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°.
Π’ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π° Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΎΡΡΠΈ ΠΊΠΎΠ΄ΡΡ ΠΈ Π΄Π° ΡΠ΅ ΡΠ»Π΅ΡΠ½ΠΈ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° Π½Π° ΠΠΠ. ΠΠ΅ ΡΡΡΠ±Π²Π° ΠΈ Π΄Π° ΡΠ΅ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±ΡΠ²Π° Ρ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΡΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΠΊΠΎΠ΄ Π½ΡΠΌΠ° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½ΠΈΡΠΎ Ρ OrderId, Π½ΠΈΡΠΎ Ρ SSN.
ΠΠ½ΠΊΠ°ΠΏΡΡΠ»Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅
ΠΡΠΎΠ΄ΡΠΊΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, ΠΊΠΎΠ΄ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠΈ ΠΎΠΏΡΠΎΡΡΠΈΡΠ΅ ΠΆΠΈΠ²ΠΎΡΠ° Ρ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»Π°ΡΠΈΡ. Π’ΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ°ΡΠ° Π±Π°Π·Π° ΠΎΡ ΠΊΠΎΠ΄. .
ΠΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°ΡΠ΅ Π½Π° Java, .
ΠΡΠΈΠ½ΡΠΈΠΏ Π½Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΎΡΡ/Π·Π°ΠΊΡΠΈΡΠΎΡΡ
Π’ΠΎΠ·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π»Π΅ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΠΏΡΠΎΡΠΈΡΠ°ΠΉΠΊΠΈ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΠ΅: "ΠΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½ΠΈΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΠΈ (ΠΊΠ»Π°ΡΠΎΠ²Π΅, ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Ρ.Π½.) ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ Π·Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ Π·Π°ΡΠ²ΠΎΡΠ΅Π½ΠΈ Π·Π° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ." ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ ΡΠΈ Π±Π΅Π· ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄.
ΠΡΠΈΠ½ΡΠΈΠΏΡΡ Π΅ Π²Π°ΠΆΠ΅Π½, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΏΡΠ΅ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅, ΠΌΠΎΠ΄ΡΠ»Π½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ. ΠΠΎΠ΄ΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ»Π΅Π΄Π²Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π½Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΎΡΡ/Π·Π°ΠΊΡΠΈΡΠΎΡΡ, Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅, Π·Π°ΡΠΎΠ²Π° Ρ Π½Π΅Π³ΠΎ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ Π½Π°ΡΡΡΠ°Π²Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ.

ΠΠΊΠΎ ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π½Π΅ΡΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΡΠ΅ ΠΎΡΠ½Π΅ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°ΡΡΡΡΠΈ ΠΎΡ ΠΊΠΎΠ΄Π°, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ.
ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΠΏΡΠΈΠ½ΡΠΈΠΏΡΡ Π½Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΎΡΡ-Π·Π°ΡΠ²ΠΎΡΠ΅Π½ΠΎΡΡ Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ Π½Π° SOLID.
ΠΡΠΈΠ½ΡΠΈΠΏΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π°ΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ (SRP)
ΠΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΎΡ Π½Π°Π±ΠΎΡa SOLID. Π’ΠΎΠΉ Π³Π»Π°ΡΠΈ, ΡΠ΅ "ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° ΠΏΡΠΈΡΠΈΠ½Π°, ΠΊΠΎΡΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΊΠ»Π°ΡΠ°". ΠΠ»Π°ΡΡΡ ΡΠ΅ΡΠ°Π²Π° ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° Π·Π°Π΄Π°ΡΠ°. Π’ΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, Π½ΠΎ Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΡΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°ΡΠ° Π·Π°Π΄Π°ΡΠ°. ΠΡΠΈΡΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ»ΡΠΆΠ°Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎ Π½Π° ΡΠΎΠ²Π°.

Π¦Π΅Π½Π½ΠΎΡΡΡΠ° Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π΅ Π² ΡΠΎΠ²Π°, ΡΠ΅ ΡΠΎΠΉ ΠΎΡΡΠ»Π°Π±Π²Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π° ΡΠΎΡΡΡΠ΅ΡΠ° ΠΈ ΠΊΠΎΠ΄Π°. ΠΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΅Π΄Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π² ΠΊΠ»Π°Ρ, ΡΠΎΠ²Π° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π²ΡΡΠ·ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. Π’Π°ΠΊΠ° ΡΠ΅, Π°ΠΊΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π΅Π΄Π½Π°ΡΠ° ΠΎΡ ΡΡΡ
, ΠΈΠΌΠ° Π³ΠΎΠ»ΡΠΌΠ° Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡ Π΄Π° ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡΠ΅ Π²ΡΠΎΡΠ°ΡΠ°, ΡΠ²ΡΡΠ·Π°Π½Π° Ρ ΠΏΡΡΠ²Π°ΡΠ°. Π ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΈΠΊΠ»ΠΈ Π½Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅, Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ.
ΠΡΠΈΠ½ΡΠΈΠΏΡΡ Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ (DIP)

ΠΠΎ-Π³ΠΎΡΠ΅ Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΊΠΎΠ΄, Π² ΠΊΠΎΠΉΡΠΎ AppManager Π·Π°Π²ΠΈΡΠΈΠΌ ΠΎΡ EventLogWriter, ΠΊΠΎΠΉΡΠΎ ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π° Π΅ ΡΡΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π°Π½ Ρ AppManager. ΠΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ Π΄ΡΡΠ³ Π½Π°ΡΠΈΠ½ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅, Π±ΠΈΠ»ΠΎ ΡΠΎ push, SMS ΠΈΠ»ΠΈ email, ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠ»Π°ΡΠ° AppManager.
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΅ΡΠ΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° DIP. Π’Π°ΠΊΠ° Π²ΠΌΠ΅ΡΡΠΎ AppManager, Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ EventLogWriter, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½ ΡΡΠ΅Π· ΡΠ°ΠΌΠΊΠ°.
DIP Π΄Π°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΄Π° Π·Π°ΠΌΠ΅Π½ΡΡΠ΅ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Ρ Π΄ΡΡΠ³ΠΈ, ΠΏΡΠΎΠΌΠ΅Π½ΡΠΉΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Π° Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠ°. Π’ΠΎΠ²Π° Π΄Π°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΌΠΎΠ΄ΡΠ», Π±Π΅Π· Π΄Π° Π²Π»ΠΈΡΠ΅ΡΠ΅ Π½Π° ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅.
ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π΄Π²Π° Π½Π°ΡΠΈΠ½Π° Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ ΡΠ° Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ, ΠΊΠ°ΡΠΎ Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΡΡ
ΠΈΠΌΠ° ΡΠ²ΠΎΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ ΠΎΡΠ΄Π°Π²Π° Π½Π° Π²ΡΠΎΡΠΈΡ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π΅ ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π².
ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ»Π°ΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΡΡΠ΅Π· Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ° ΠΌΡ. ΠΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΡΠΌ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π²Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
ΠΠΎΡΠΈ "Effective Java" Π½Π° ΠΠΆΠΎΡΡΠ° ΠΠ»ΠΎΡ ΡΡΠ²Π΅ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΎΡΠ΄Π°Π²Π° ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡΡΠ°, Π° Π½Π΅ Π½Π° Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ΡΠΎ.
ΠΡΠΈΠ½ΡΠΈΠΏΡΡ Π½Π° ΠΏΠΎΠ΄ΠΌΡΠ½Π°ΡΠ° Π½Π° ΠΠ°ΡΠ±Π°ΡΠ° ΠΠΈΡΠΊΠΎΠ² (LSP)
ΠΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠ° SOLID. Π’ΠΎΠΉ Π³Π»Π°ΡΠΈ, ΡΠ΅ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠ² ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ Π·Π°ΠΌΠ΅Π½ΠΈ Ρ ΡΡΠΏΠ΅ΡΡΠΈΡΠ΅. Π’ΠΎΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π±ΠΎΡΡΡ Ρ ΡΡΠΏΠ΅ΡΠΊΠ»Π°Ρ, ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ Π±Π΅Π·ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ ΠΈ Ρ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΠΎΠ²Π΅.
LSP Π΅ ΡΠ²ΡΡΠ·Π°Π½ ΠΊΠ°ΠΊΡΠΎ Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π½Π° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ, ΡΠ°ΠΊΠ° ΠΈ Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π½Π° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡΠΈΡΠ΅. ΠΠΊΠΎ ΠΊΠ»Π°ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠΈ ΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»Π°Ρ, ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ Π½ΡΠΌΠ° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π½ΡΠΊΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΡΡΡΠ°Π²Π°ΠΉΠΊΠΈ ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ.
ΠΡΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΎΡ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈ Π½Π° LSP.

ΠΠ΅ΡΠΎΠ΄ΡΡ area(Rectangle r) ΠΏΡΠ΅ΡΠΌΡΡΠ° ΠΏΠ»ΠΎΡΡΠ° Π½Π° Rectangle. ΠΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΡΠ΅ ΡΠ΅ ΡΡΠΈΠ½Π΅ ΡΠ»Π΅Π΄ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Square, ΡΡΠΉ ΠΊΠ°ΡΠΎ Square Π½Π΅ Π΅ ΡΠΈΠΏ Rectangle ΡΡΠΊ. Π‘ΠΏΠΎΡΠ΅Π΄ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° LSP, ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠΈ ΠΊΡΠΌ Π±Π°Π·ΠΎΠ²ΠΈ ΠΊΠ»Π°ΡΠΎΠ²Π΅, ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΈ ΠΊΠ»Π°ΡΠΎΠ²Π΅ Π±Π΅Π· Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
Π’ΠΎΠ·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ΄ΡΠΈΠΏ, Π±Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΎΡ ΠΠ°ΡΠ±Π°ΡΠ° ΠΠΈΡΠΊΠΎΠ² ΠΏΡΠ΅Π· 1987 Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ Ρ ΠΎΡΠ½ΠΎΠ²Π΅Π½ Π΄ΠΎΠΊΠ»Π°Π΄, ΠΎΠ·Π°Π³Π»Π°Π²Π΅Π½ βΠΠ°Π½Π½ΠΈ ΠΈ ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡβ β ΠΎΡΡΠ°ΠΌ ΠΈ ΠΈΠΌΠ΅ΡΠΎ ΠΌΡ.
ΠΡΠΈΠ½ΡΠΈΠΏ Π½Π° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (ISP)
ΠΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π½Π° SOLID. Π‘ΠΏΠΎΡΠ΅Π΄ Π½Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΠΉΡΠΎ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½. Π‘Π»Π΅Π΄Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΏΠΎΠΌΠ°Π³Π° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π΄Π° ΠΎΡΡΠ°Π½Π΅ Π³ΡΠ²ΠΊΠ°Π²Π° ΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄Π½Π° Π·Π° ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΡΠ°Π½Π΅ ΠΏΡΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°.
Π’Π°Π·ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡΡ ΡΡΠ΄ΡΡΠΆΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠΈ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ Π½ΡΠΆΠ΄Π°Π΅ ΡΠ°ΠΌΠΎ ΠΎΡ Π΅Π΄Π½Π°.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΅ ΡΠ»ΠΎΠΆΠ½Π° Π·Π°Π΄Π°ΡΠ°, ΡΠ»Π΅Π΄ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΌΡ, ΠΏΡΠΎΠΌΡΠ½Π°ΡΠ° ΠΌΡ Π±Π΅Π· Π΄Π° ΡΠ΅ Π½Π°ΡΡΡΠΈ Π½Π΅ΡΠΎ, ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° ISP Π² Java Π΅, ΡΠ΅ ΠΏΡΡΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΈ Π΅Π΄Π²Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΡ ΠΊΠ»Π°ΡΠΎΠ²Π΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡΡ Π΄Π°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ Π±ΡΠΎΡΡ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅.

ΠΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π·Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π° Π½Π΅ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
Π’ΡΠΊ Π²ΡΠΈΡΠΊΠΎ Π΅ ΡΡΠ½ΠΎ ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ. ΠΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π³ΡΠ²ΠΊΠ°Π² ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ Π²ΡΡΠΊΠ° Π½ΠΎΠ²Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
Π’ΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΈΠΏΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Π·Π° Π²ΡΡΡΠ°Π½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΠΈΠ»ΠΈ Π·Π° ΡΠΈΠΏΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΡΠΈΠΌΠ΅Ρ β ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° SuperClass, Π° Π½Π΅ SubClass.
Π’ΠΎΠ΅ΡΡ:
List numbers= getNumbers();
Π Π½Π΅:
ArrayList numbers = getNumbers();
ΠΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π° ΠΏΠΎ-Π³ΠΎΡΠ΅.

ΠΡΠΈΠ½ΡΠΈΠΏ Π½Π° Π΄Π΅Π»Π΅Π³ΠΈΡΠ°Π½Π΅
Π§Π΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ equals() ΠΈ hashCode() Π² Java. ΠΠΎΠ³Π°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΡΡΠ°Π²Π½ΡΡ Π΄Π²Π° ΠΎΠ±Π΅ΠΊΡΠ°, ΡΠΎΠ²Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠ΅ Π΄Π΅Π»Π΅Π³ΠΈΡΠ° Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ ΠΊΠ»Π°Ρ Π²ΠΌΠ΅ΡΡΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
ΠΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π΅ ΠΎΡΡΡΡΡΠ²ΠΈΠ΅ΡΠΎ Π½Π° Π΄ΡΠ±Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ ΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»Π½ΠΎ Π»Π΅ΡΠ½Π°ΡΠ° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ. Π’ΠΎΠΉ Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌ ΠΈ Π·Π° Π΄Π΅Π»Π΅Π³ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ±ΠΈΡΠΈΡ.

ΠΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π², ΠΊΡΠ°ΡΠΈΠ² ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΠΊΠΎΠ΄ Ρ Π²ΠΈΡΠΎΠΊΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΎΡΡ ΠΈ Π½ΠΈΡΠΊΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ. Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠ΅ΠΎΡΠΈΡΡΠ° Π΅ Π΄ΠΎΠ±ΡΠ΅, Π½ΠΎ Π·Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ Π½Π°ΠΈΡΡΠΈΠ½Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°Π½ΠΈΡ, Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°. Π‘Π»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΡΠΏΠΊΠ° ΡΠ»Π΅Π΄ ΡΡΠ²ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ Π½Π° ΠΠΠ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠΎΡΡΡΠ΅Ρ.
Skillbox ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°:
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΡΡΡ .
- ΠΠ½Π»Π°ΠΉΠ½ ΠΊΡΡΡ .
- ΠΠ²ΡΠ³ΠΎΠ΄ΠΈΡΠ΅Π½ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΡΡΡ .
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
