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

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

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

ΠΠΎ-Π³ΠΎΡΠ΅ Π΅ Π΄Π°Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΊΠΎΠ΄, Π² ΠΊΠΎΠΉΡΠΎ AppManager Π·Π°Π²ΠΈΡΠΈ ΠΎΡ EventLogWriter, ΠΊΠΎΠΉΡΠΎ, ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π°, Π΅ ΡΡΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π°Π½ Ρ AppManager. ΠΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅, Π±ΠΈΠ»ΠΎ ΡΠΎ ΠΏΡΡ, SMS ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ΠΉΠ», ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠ»Π°ΡΠ° 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
