ΠΠΎΡΡΠ° ΡΠ΅ΡΡΠΎ ΡΡΠ΅ΡΠ°ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΡΡΠ²Π°Π»ΠΈ Π·Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ Π½Π° SOLID (Π½ΠΈΠ΅
ΠΠ°ΠΏΠΎΠΌΠ½ΡΠΌΠ΅ Π²ΠΈ: Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ Π½Π° "Habr" - ΠΎΡΡΡΡΠΏΠΊΠ° ΠΎΡ 10 000 ΡΡΠ±Π»ΠΈ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΊΡΡΡ Skillbox, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΡΠΎΠΌΠΎΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° "Habr".
Skillbox ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°: ΠΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Π΅Π½ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΊΡΡΡ
"Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° Java" .
Π‘Π£Π₯Π (Π½Π΅ ΡΠ΅ ΠΏΠΎΠ²ΡΠ°ΡΡΠΉ)
ΠΠΎΡΡΠ° ΠΏΡΠΎΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ, ΡΠΈΡΡΠΎ ΡΡΡΠ½ΠΎΡΡ Π΅ ΡΡΠ½Π° ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ: βΠΠ΅ ΡΠ΅ ΠΏΠΎΠ²ΡΠ°ΡΡΠΉΡΠ΅β. ΠΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡ ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ ΠΈΠ·Π±ΡΠ³Π²Π°Π½Π΅ Π½Π° Π΄ΡΠ±Π»ΠΈΡΠ°Π½ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ°ΡΠ°.
ΠΠΊΠΎ ΠΈΠΌΠ° Π΄Π²Π° ΠΏΠΎΠ²ΡΠ°ΡΡΡΠΈ ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Π° Π² ΠΊΠΎΠ΄Π°, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½ΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄. ΠΠΊΠΎ ΡΠ²ΡΡΠ΄ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π²Π΅Π΄Π½ΡΠΆ, ΡΡΡΡΠ²Π° ΡΠΈ Π΄Π° Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°ΡΠ΅ Π² ΠΏΡΠ±Π»ΠΈΡΠ½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°.
Π’ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π° Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΎΡΡΠΈ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π° ΡΠ΅ ΡΠ»Π΅ΡΠ½ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° ΠΌΡ, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° Π½Π° ΠΠΠ. ΠΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±ΡΠ²Π°ΡΠ΅ ΠΈ Ρ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΡΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΠΊΠΎΠ΄ Π½ΡΠΌΠ° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° ΠΊΠ°ΠΊΡΠΎ Ρ OrderId, ΡΠ°ΠΊΠ° ΠΈ ΡΡΡ SSN.
ΠΡΠΎΠΌΡΠ½Π° Π½Π° ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ
Π‘ΠΎΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΊΠΎΠ΄ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ»Π΅ΡΠ½ΠΈΡΠ΅ ΠΆΠΈΠ²ΠΎΡΠ° ΡΠΈ Ρ ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ°Π½Π΅. Π’ΠΎΠ²Π° ΡΠ΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π° ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ°ΡΠ° ΡΠΈ ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°.
ΠΠΊΠΎ ΠΏΠΈΡΠ΅ΡΠ΅ Π½Π° Java ΡΠΎΠ³Π°Π²Π°
ΠΡΠΈΠ½ΡΠΈΠΏΡΡ Π½Π° ΠΎΡΠΊΡΠΈΡΠΎΡΡ/Π·Π°ΡΠ²ΠΎΡΠ΅Π½ΠΎΡΡ
Π’ΠΎΠ·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΌΠΎΠΆΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° Π±ΡΠ΄Π΅ Π·Π°ΠΏΠΎΠΌΠ½Π΅Π½, ΠΊΠ°ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΠ΅: "ΠΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΠΈ (ΠΊΠ»Π°ΡΠΎΠ²Π΅, ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Ρ.Π½.) ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ Π·Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ Π·Π°ΡΠ²ΠΎΡΠ΅Π½ΠΈ Π·Π° ΠΏΡΠΎΠΌΡΠ½Π°." ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠΌ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΎ, Π±Π΅Π· Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄.
ΠΡΠΈΠ½ΡΠΈΠΏΡΡ Π΅ Π²Π°ΠΆΠ΅Π½, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΡΠ΅Π²ΠΈΠ·ΠΈΠΈ, ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ. ΠΠΎΠ΄ΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄ΡΠΈΠ½ΡΠ²Π° Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΎ/Π·Π°ΡΠ²ΠΎΡΠ΅Π½ΠΎ, Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΈ ΡΠ°Π·ΡΠΈΡΡΠ²Π°Π½Π΅, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π½Π΅Π³ΠΎ.
ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ Π½Π°ΡΡΡΠ°Π²Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ.
ΠΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π΅ΡΠΎ Π² Π½Π΅Π³ΠΎ, ΡΠΎΠ²Π° ΡΠ΅ ΠΎΡΠ½Π΅ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π·Π°ΡΠΎΡΠΎ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ°ΡΡΠΈ Π½Π° ΠΊΠΎΠ΄Π°, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π²ΡΡΠ·ΠΊΠ° Ρ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ.
ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΎΡΡΡΠ°-Π·Π°ΡΠ²ΠΎΡΠ΅Π½ΠΎΡΡΡΠ° Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ Π½Π° SOLID.
ΠΡΠΈΠ½ΡΠΈΠΏ Π½Π° Π΅Π΄ΠΈΠ½Π½Π°ΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ (SRP)
ΠΡΡΠ³ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΎΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° SOLID. Π’Π°ΠΌ ΡΠ΅ ΠΊΠ°Π·Π²Π°, ΡΠ΅ βΠΈΠΌΠ° ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° ΠΏΡΠΈΡΠΈΠ½Π°, ΠΊΠΎΡΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡΠΌΡΠ½Π° Π½Π° ΠΊΠ»Π°ΡΠ°β. ΠΠ»Π°ΡΡΡ ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ Π΅Π΄Π½Π° Π·Π°Π΄Π°ΡΠ°. ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, Π½ΠΎ Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΡΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΡΠΈΡΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ»ΡΠΆΠ°Ρ ΡΠ°ΠΌΠΎ Π½Π° ΡΠΎΠ²Π°.
Π‘ΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π΅, ΡΠ΅ ΡΠ°Π·Ρ
Π»Π°Π±Π²Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠ΄Π΅Π»Π½Π° ΡΠ°ΡΡ ΠΎΡ ΡΠΎΡΡΡΠ΅ΡΠ° ΠΈ ΠΊΠΎΠ΄Π°. ΠΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΅Π΄Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΊΡΠΌ ΠΊΠ»Π°Ρ Π²ΡΠ²Π΅ΠΆΠ΄Π° Π²ΡΡΠ·ΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, Π°ΠΊΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΡΡ
, ΠΈΠΌΠ° Π³ΠΎΠ»ΡΠΌ ΡΠ°Π½Ρ Π΄Π° ΡΠ°Π·Π²Π°Π»ΠΈΡΠ΅ Π²ΡΠΎΡΠΈΡ, ΡΠ²ΡΡΠ·Π°Π½ Ρ ΠΏΡΡΠ²ΠΈΡ. Π ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΈΠΊΠ»ΠΈΡΠ΅ Π½Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅, Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ.
ΠΡΠΈΠ½ΡΠΈΠΏ Π½Π° ΠΈΠ½Π²Π΅ΡΡΠΈΡ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠ° (DIP)
ΠΠΎΡΠ½ΠΎΡΠΎ Π΅ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΊΠΎΠ΄, ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ AppManager Π·Π°Π²ΠΈΡΠΈ ΠΎΡ EventLogWriter, ΠΊΠΎΠΉΡΠΎ ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π° Π΅ ΡΡΡΠ½ΠΎ ΡΠ²ΡΡΠ·Π°Π½ Ρ AppManager. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ·Π²Π΅ΡΡΠΈΠ΅ΡΠΎ, Π±ΠΈΠ»ΠΎ ΡΠΎ Π½Π°ΡΠΈΡΠΊΠ°Π½Π΅, SMS ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ΠΉΠ», ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΊΠ»Π°ΡΠ° AppManager.
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ΅ΡΠΈ Ρ DIP. Π’Π°ΠΊΠ° ΡΠ΅, Π²ΠΌΠ΅ΡΡΠΎ AppManager, Π½ΠΈΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°ΠΌΠ΅ EventLogWriter, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡΠ°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ°ΠΌΠΊΠ°ΡΠ°.
DIP Π΄Π°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π»Π΅ΡΠ½Π° Π·Π°ΠΌΡΠ½Π° Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Ρ Π΄ΡΡΠ³ΠΈ ΡΡΠ΅Π· ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° Π·Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ. Π’ΠΎΠ²Π° Π΄Π°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π΅Π΄ΠΈΠ½ ΠΌΠΎΠ΄ΡΠ», Π±Π΅Π· Π΄Π° ΡΠ΅ Π·Π°ΡΡΠ³Π°Ρ ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅.
ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΡΠ²ΠΎ
ΠΠ²Π°ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π½Π°ΡΠΈΠ½Π° Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ ΡΠ° Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ, Π²ΡΠ΅ΠΊΠΈ ΡΡΡ ΡΠ²ΠΎΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈ. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ° Π²ΡΠΎΡΠΎΡΠΎ, Π·Π°ΡΠΎΡΠΎ Π΅ ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π²ΠΎ.
ΠΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡΡΠ° Π²ΠΈ Π΄Π°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ»Π°Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΊΠ°ΡΠΎ Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΡΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΡΠΌ, ΠΊΠΎΠ΅ΡΠΎ Π΄Π°Π²Π° ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π²Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
ΠΠΎΡΠΈ "ΠΡΠ΅ΠΊΡΠΈΠ²Π½Π°ΡΠ° Java" ΠΠΆΠΎΡΡΠ° ΠΠ»ΠΎΠΊ ΡΡΠ²Π΅ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡΡΠ° ΠΏΡΠ΅Π΄ Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ΡΠΎ.
ΠΡΠΈΠ½ΡΠΈΠΏ Π½Π° Π·Π°ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΠ°ΡΠ±Π°ΡΠ° ΠΠΈΡΠΊΠΎΠ² (LSP)
ΠΡΡΠ³ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠ° Π½Π° SOLID. Π’ΠΎΠΉ Π³Π»Π°ΡΠΈ, ΡΠ΅ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΡΡ Π·Π° ΡΡΠΏΠ΅ΡΡΠΈΠΏ. Π’ΠΎΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π±ΠΎΡΡΡ ΡΡΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°Ρ, ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΠΎΠ²Π΅.
LSP Π΅ ΡΠ²ΡΡΠ·Π°Π½ ΠΊΠ°ΠΊΡΠΎ Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ½Π°ΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ, ΡΠ°ΠΊΠ° ΠΈ Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π½Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡΡΠ°. ΠΠΊΠΎ Π΄Π°Π΄Π΅Π½ ΠΊΠ»Π°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»Π°Ρ, ΡΠΎΠ³Π°Π²Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ Π½ΡΠΌΠ° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π½ΡΠΊΠΎΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΡΡΡΠ°Π²Π°ΠΉΠΊΠΈ ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ.
ΠΡΠΎ ΡΠ°ΡΡ ΠΎΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈ Π½Π° LSP.
ΠΠ΅ΡΠΎΠ΄ΡΡ area(Rectangle r) ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° ΠΏΠ»ΠΎΡΡΠ° Π½Π° ΠΏΡΠ°Π²ΠΎΡΠ³ΡΠ»Π½ΠΈΠΊ. ΠΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΡΠ΅ ΡΠ΅ ΡΡΠΈΠ½Π΅ ΡΠ»Π΅Π΄ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Square, ΡΡΠΉ ΠΊΠ°ΡΠΎ Square Π½Π΅ Π΅ ΠΏΡΠ°Π²ΠΎΡΠ³ΡΠ»Π½ΠΈΠΊ ΡΡΠΊ. Π‘ΡΠ³Π»Π°ΡΠ½ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π½Π° LSP, ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠΈ ΠΊΡΠΌ Π±Π°Π·ΠΎΠ²ΠΈ ΠΊΠ»Π°ΡΠΎΠ²Π΅, ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΠ±Π΅ΠΊΡΠΈ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΈ ΠΊΠ»Π°ΡΠΎΠ²Π΅ Π±Π΅Π· Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
Π’ΠΎΠ·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ, ΠΊΠΎΠΉΡΠΎ Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡ Π½Π° ΠΏΠΎΠ΄ΡΠΈΠΏ, Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΎΡ ΠΠ°ΡΠ±Π°ΡΠ° ΠΠΈΡΠΊΠΎΠ² Π² Π΄ΠΎΠΊΠ»Π°Π΄ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ ΠΎΡ 1987 Π³., Π½Π°ΡΠ΅ΡΠ΅Π½ "ΠΠ±ΡΡΡΠ°ΠΊΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡ" - ΠΎΡΡΡΠΊ ΠΈ ΠΈΠΌΠ΅ΡΠΎ ΠΌΡ.
ΠΡΠΈΠ½ΡΠΈΠΏ Π½Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (ISP)
ΠΡΠ΅ Π΅Π΄ΠΈΠ½ Π‘ΠΠΠΠΠΠ ΠΏΡΠΈΠ½ΡΠΈΠΏ. Π‘ΠΏΠΎΡΠ΅Π΄ Π½Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΊΠΎΠΉΡΠΎ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°. Π‘Π»Π΅Π΄Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΏΠΎΠΌΠ°Π³Π° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π΄Π° ΠΎΡΡΠ°Π½Π΅ Π³ΡΠ²ΠΊΠ°Π²Π° ΠΈ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ²Π°Π΅ΠΌΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΡΠ°Π²ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°.
ΠΠ°ΠΉ-ΡΠ΅ΡΡΠΎ ΡΠ°Π·ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡΡ ΡΡΠ΄ΡΡΠΆΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π°Π²Π΅Π΄Π½ΡΠΆ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΡΠ°ΠΌΠΎ ΠΎΡ Π΅Π΄Π½Π° ΠΎΡ ΡΡΡ .
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΅ ΡΠ»ΠΎΠΆΠ½Π° Π·Π°Π΄Π°ΡΠ°, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΏΡΠΈΠΊΠ»ΡΡΠΈ, ΠΏΡΠΎΠΌΡΠ½Π°ΡΠ° ΠΌΡ Π±Π΅Π· Π΄Π° ΡΠ΅ ΡΡΡΠΏΠΈ Π½Π΅ΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π½Π° ISP Π² Java Π΅, ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΡΡΡΠ±Π²Π° ΠΏΡΡΠ²ΠΎ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ ΠΈ Π΅Π΄Π²Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΡ ΠΊΠ»Π°ΡΠΎΠ²Π΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ Π±ΡΠΎΡΡ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π·Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π° Π½Π΅ Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
Π’ΡΠΊ Π²ΡΠΈΡΠΊΠΎ Π΅ ΡΡΠ½ΠΎ ΠΎΡ ΠΈΠΌΠ΅ΡΠΎ. ΠΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π³ΡΠ²ΠΊΠ°Π² ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Ρ Π²ΡΡΠΊΠΎ Π½ΠΎΠ²ΠΎ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
Π’ΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠΈΠΏ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Π²ΡΡΡΠ°Π½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΠΈΠ»ΠΈ ΡΠΈΠΏΠ° Π½Π° Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π½Π° ΠΌΠ΅ΡΠΎΠ΄. ΠΡΠΈΠΌΠ΅Ρ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° SuperClass Π²ΠΌΠ΅ΡΡΠΎ SubClass.
Π’ΠΎΠ΅ΡΡ:
Π‘ΠΏΠΈΡΡΠΊ Ρ Π½ΠΎΠΌΠ΅ΡΠ°= getNumbers();
ΠΠΎ Π½Π΅:
ArrayList numbers = getNumbers();
ΠΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΊΠ°Π·Π°Π½ΠΎΡΠΎ ΠΏΠΎ-Π³ΠΎΡΠ΅.
ΠΡΠΈΠ½ΡΠΈΠΏ Π½Π° Π΄Π΅Π»Π΅Π³ΠΈΡΠ°Π½Π΅
Π§Π΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ equals() ΠΈ hashCode() Π² Java. ΠΠΎΠ³Π°ΡΠΎ Π΄Π²Π° ΠΎΠ±Π΅ΠΊΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈ, ΡΠΎΠ²Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠ΅ Π΄Π΅Π»Π΅Π³ΠΈΡΠ° Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ ΠΊΠ»Π°Ρ Π²ΠΌΠ΅ΡΡΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΠΊΠ»Π°Ρ.
ΠΡΠ΅Π΄ΠΈΠΌΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π΅, ΡΠ΅ Π½ΡΠΌΠ° Π΄ΡΠ±Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ ΠΈ Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»Π½ΠΎ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ. ΠΡΠ½Π°ΡΡ ΡΠ΅ ΠΈ Π·Π° Π΄Π΅Π»Π΅Π³ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ±ΠΈΡΠΈΡ.
ΠΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π², ΠΊΡΠ°ΡΠΈΠ² ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΠΊΠΎΠ΄ Ρ Π²ΠΈΡΠΎΠΊΠ° ΠΊΠΎΡ
Π΅Π·ΠΈΡ ΠΈ Π½ΠΈΡΠΊΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅. Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠ΅ΠΎΡΠΈΡΡΠ° Π΅ Π΄ΠΎΠ±ΡΠ°, Π½ΠΎ Π·Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ Π΅Π΄ΠΈΠ½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π°ΠΈΡΡΠΈΠ½Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π°ΡΡΡΠΏΠ°Π½ΠΈΡΠ΅ Π·Π½Π°Π½ΠΈΡ, Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°. Π‘Π»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΡΠΏΠΊΠ° ΡΠ»Π΅Π΄ ΡΡΠ²ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ Π½Π° ΠΠΠ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠΎΡΡΡΠ΅Ρ.
Skillbox ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°:
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΡΡΡ
βΠΠΎΠ±ΠΈΠ»Π΅Π½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ PROβ .- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΊΡΡΡ
βΠΠ½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° Pythonβ .- ΠΠ²ΡΠ³ΠΎΠ΄ΠΈΡΠ΅Π½ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΡΡΡ
βΠΠ· ΡΡΠΌ PRO ΡΠ΅Π± ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡβ .
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com