ΠΠ°ΠΊ Java ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ Π΅Π·ΠΈΡΠΈ? ΠΠ°ΡΠΎ Java ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΡΠ²ΠΈΡΡ Π΅Π·ΠΈΠΊ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅? ΠΠ΅ΠΊΠ° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΏΠ»Π°Π½, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ Java ΠΊΠ°ΠΊΡΠΎ ΠΎΡ Π½ΡΠ»Π°ΡΠ°, ΡΠ°ΠΊΠ° ΠΈ ΡΡΠ΅Π· ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΡΠΌΠ΅Π½ΠΈΡ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΡΡΠ³ΠΈ Π΅Π·ΠΈΡΠΈ. ΠΠ΅ΠΊΠ° ΠΈΠ·Π±ΡΠΎΠΈΠΌ ΡΠ°Π·Π»ΠΈΠΊΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ ΠΊΠΎΠ΄ Π² Java ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΡΡΠ³ΠΈ Π΅Π·ΠΈΡΠΈ. ΠΠΈΡ
Π°ΠΈΠ» ΠΠ°ΡΠ΅ΠΏΡΠΊΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΠ΅ ΡΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ Π½Π° ΡΡΠ΅ΡΠ° Π·Π° Π±ΡΠ΄Π΅ΡΠΈ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ
β ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅ Π²ΡΠΈΡΠΊΠΈ, ΠΊΠ°Π·Π²Π°ΠΌ ΡΠ΅ ΠΠΈΡΠ°. ΠΠ· ΡΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΎΡ Yandex.Market ΠΈ Π΄Π½Π΅Ρ ΡΠ΅ Π²ΠΈ ΠΊΠ°ΠΆΠ° Π·Π°ΡΠΎ Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ Java ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. ΠΠΎΠΆΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ°Π·ΡΠΌΠ΅Π½ Π²ΡΠΏΡΠΎΡ: Π·Π°ΡΠΎ Π°Π· ΡΠ΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΡΠ°Π·ΠΈ ΠΈΡΡΠΎΡΠΈΡ, Π° Π½Π΅ Π½ΡΠΊΠΎΠΉ ΡΠΈΠ»Π΅Π½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Ρ Π΄ΡΠ»Π³ΠΎΠ³ΠΎΠ΄ΠΈΡΠ΅Π½ ΠΎΠΏΠΈΡ? Π€Π°ΠΊΡ Π΅, ΡΠ΅ ΡΠ°ΠΌΠΈΡΡ Π°Π· ΠΈΠ·ΡΡΠ°Π²Π°Ρ Java Π½Π°ΡΠΊΠΎΡΠΎ, ΠΏΡΠ΅Π΄ΠΈ ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°, ΡΠ°ΠΊΠ° ΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΏΠΎΠΌΠ½Ρ ΠΊΠ°ΠΊΠ²ΠΎ Π±Π΅ΡΠ΅ ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ ΠΊΠ°ΠΏΠ°Π½ΠΈ ΠΈΠΌΠ°.
ΠΡΠ΅Π΄ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° ΠΏΠΎΠ»ΡΡΠΈΡ ΡΡΠ°ΠΆ Π² Yandex.Market. Π Π°Π·ΡΠ°Π±ΠΎΡΠΈΡ Π±Π΅ΠΊΠ΅Π½Π΄Π° Π·Π° ΠΠ΅ΡΡ, Π·Π° ΡΠ°ΠΌΠΈΡ ΠΏΠ°Π·Π°Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΡΠ΅ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ. Π‘Π΅Π³Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΠΌ Π΄Π° ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΌ, Π² Π΄ΡΡΠ³ Π΅ΠΊΠΈΠΏ. Π‘ΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π°Π½Π°Π»ΠΈΡΠΈΡΠ½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° Yandex.Market Π·Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΠ°ΡΡΠ½ΡΠΎΡΠΈ.
ΠΠ° Π·Π°ΠΏΠΎΡΠ²Π°ΠΌΠ΅. ΠΠ°ΡΠΎ Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ Java ΠΎΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ° Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ°? Π€Π°ΠΊΡ Π΅, ΡΠ΅ Java Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅. ΠΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»ΡΠΌΠ° ΠΎΠ±ΡΠ½ΠΎΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΠ° ΡΠ°ΠΊΡΠ² ΠΈΠ½Π΄Π΅ΠΊΡ TIOBE, ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° Π΅Π·ΠΈΡΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅, ΠΈ Java Π΅ Π½Π° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ ΡΠ°ΠΌ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π² ΡΠ°ΠΉΡΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅, ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΌΠ΅ΡΡΠ° ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Java, ΡΠΎΠ΅ΡΡ, ΠΊΠ°ΡΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠ΅ Π² Java, Π²ΠΈΠ½Π°Π³ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ°.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»ΡΠΌΠ°, Π²ΡΠ΅ΠΊΠΈ Π²Π°Ρ Π²ΡΠΏΡΠΎΡ ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈ ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π½Π° Π½ΡΠΊΠΎΠΈ Stack Overflow ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈ ΡΠ°ΠΉΡΠΎΠ²Π΅. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°ΡΠ΅ Π² Java, Π²ΠΈΠ΅ Π²ΡΡΡΠ½ΠΎΡΡ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄ Π½Π° JVM, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΊΡΠΌ Kotlin, Scala ΠΈ Π΄ΡΡΠ³ΠΈ Π΅Π·ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ JVM.
ΠΠ°ΠΊΠ²ΠΎ Π΅ Π΄ΠΎΠ±ΡΠΎ Π·Π° Java ΠΎΡ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ° Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ°? ΠΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅. Π’Π΅ ΡΠ΅ΡΠ°Π²Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π·Π½Π°Π΅ΡΠ΅ ΡΠΎΠ²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Python Π΅ ΡΡΡΠ°Ρ
ΠΎΡΠ΅Π½ Π·Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π΅Π΄Π½ΠΎΡΠ΅Π΄ΠΎΠ²ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° Π±ΡΡΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
ΠΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»Π½Π°ΡΠ° ΡΡΡΠ°Π½Π° Π΅, ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π΄Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈΡ ΠΊΠΎΠ΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΠ°ΠΌΠ΅ Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ, Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ Yandex Π±Π΅Π· Π²ΠΎΠ΄Π°ΡΠΈ, ΡΠ΅Ρ Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Ρ ΠΏΠ»ΡΡΠΎΠ²Π΅. ΠΠ°ΡΠΎ? Java ΠΈΠΌΠ° ΡΠ°ΠΊΠΎΠ²Π° Π½Π΅ΡΠΎ - Garbage Collector. ΠΠ·ΡΠΈΡΡΠ²Π° RAM ΠΎΡ Π½Π΅Π½ΡΠΆΠ½ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ. Π’ΠΎΠ²Π° Π½Π΅ΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π° ΡΠΏΠΎΠ½ΡΠ°Π½Π½ΠΎ ΠΈ ΡΠΏΠΈΡΠ° ΡΠ²Π΅ΡΠ°, ΡΠΎΠ΅ΡΡ ΡΠΏΠΈΡΠ° ΠΎΡΡΠ°Π½Π°Π»Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΠΈ ΠΎΡΠΈΠ²Π° Π΄Π° Π±ΡΠΎΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ, ΠΈΠ·ΡΠΈΡΡΠ²Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅. ΠΠΊΠΎ ΡΠ°ΠΊΠΎΠ²Π° Π½Π΅ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π² Π΄ΡΠΎΠ½, Π½Π΅ Π΅ Π³ΠΎΡΠΈΠ½ΠΎ. ΠΠ°ΡΠΈΡΡ Π΄ΡΠΎΠ½ ΡΠ΅ ΠΊΠ°ΡΠ° Π½Π°ΠΏΡΠ°Π²ΠΎ, Π² ΡΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ΅ ΠΈΠ·ΡΠΈΡΡΠΈ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΠΈ ΠΈ ΠΈΠ·ΠΎΠ±ΡΠΎ Π½ΡΠΌΠ° Π΄Π° Π³Π»Π΅Π΄Π° ΠΊΡΠΌ ΠΏΡΡΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π΄ΡΠΎΠ½ΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΠΏΠ»ΡΡΠΎΠ²Π΅.
ΠΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠ΅ΡΠ°Π²Π° Java? Π’ΠΎΠ²Π° Π΅ ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ Π΅Π·ΠΈΠΊ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΠΈΡΠ°Ρ Ρ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΎΡ Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΠΈΠ»ΠΈ ΡΡΠΎΡΠΈΡΠΈ Ρ
ΠΎΡΠ°. ΠΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ, Π³ΠΎΠ»ΡΠΌΠ° ΡΠ°ΡΡ ΠΎΡ Π±Π΅ΠΊΠ΅Π½Π΄Π° Π² Yandex.Market Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Java. ΠΠΌΠ°ΠΌΠ΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π΅ΠΊΠΈΠΏ Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π³ΡΠ°Π΄Π°, ΠΏΠΎ Π΄Π΅ΡΠ΅Ρ Π΄ΡΡΠΈ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ. Π ΠΊΠΎΠ΄ΡΡ Π΅ Π»Π΅ΡΠ΅Π½ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ ΠΎΡ Π΄Π΅ΡΠ΅Ρ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½ΠΎΠ²ΠΈ Ρ
ΠΎΡΠ° Π²Π»ΠΈΠ·Π°Ρ ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Ρ ΡΠΎΠ·ΠΈ ΠΊΠΎΠ΄.
ΠΠ°ΠΊΠ²ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° Π΅Π΄ΠΈΠ½ Π΅Π·ΠΈΠΊ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΊΠΎΠ΄ΡΡ Π² Π½Π΅Π³ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π»Π΅ΡΠ½ΠΎ ΠΈ Π΄Π° ΠΌΠΎΠΆΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° Π² Π³ΠΎΠ»Π΅ΠΌΠΈ Π΅ΠΊΠΈΠΏΠΈ. ΠΠ° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ, ΡΠΎΠΉ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΅ΡΠΈΠΌ ΠΊΠΎΠ΄ ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π΅ Π»Π΅ΡΠ΅Π½ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ. Π’ΠΎΠ΅ΡΡ, ΡΡΡΠ±Π²Π° Π΄Π° Π΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΈΡΠ°Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π½Π° Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ ΠΈ Ρ.Π½. ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΅, ΠΊΠΎΠ΅ΡΠΎ Java Π½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ. Π’ΠΎΠ²Π° Π΅ ΠΎΠ±Π΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ Π΅Π·ΠΈΠΊ. ΠΠ°ΠΈΡΡΠΈΠ½Π° Π΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π²Π½Π΅Π΄ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ ΠΎΡ Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ.
ΠΠΌΠ° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΌΠΊΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° Java, Π·Π°ΡΠΎΡΠΎ Π΅Π·ΠΈΠΊΡΡ Π΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 15 Π³ΠΎΠ΄ΠΈΠ½ΠΈ. ΠΡΠ΅Π· ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅, Π±Π΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΡ Ρ Π½Π΅Π³ΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈΠΌΠ° ΡΠΎΠ½ΠΎΠ²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΎ, ΠΎΡ ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅.
ΠΠ°ΠΊΠ²ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΠΌΠ΅Π½ΠΈΡ, ΡΠΏΠΎΡΠ΅Π΄ ΠΌΠ΅Π½, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° Π΅Π΄ΠΈΠ½ Π½Π°ΡΠΈΠ½Π°Π΅Ρ JA ΠΈΠ³ΡΠ°Ρ? ΠΠ° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ, ΡΠΎΠ²Π° Π΅ ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ Π΅Π·ΠΈΠΊ Π½Π° Java. Π‘Π»Π΅Π΄Π²Π° Π½ΡΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ ΡΠ°ΠΌΠΊΠ° Π·Π° ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. Π‘Π»Π΅Π΄Π²Π°ΡΠΈΡΡ ΠΎΡΠ°ΡΠΎΡ, ΠΠΈΡΠΈΠ», ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈ Π·Π° ΡΠΎΠ²Π° ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ. ΠΡΠΌΠ° Π΄Π° ΡΠ΅ Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ°Π²Π°ΠΌ. Π‘Π»Π΅Π΄Π²Π°Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ΅ Π½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π°. Π’ΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΈΡΠ΅ΠΌ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎ ΠΊΡΠ°ΡΠΈΠ² ΠΊΠΎΠ΄, Π·Π° Π΄Π° ΠΏΠΈΡΠ΅ΠΌ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π ΡΠΎΠ²Π° Π΅ Π½ΡΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ SQL ΠΈΠ»ΠΈ ORM Π·Π° Π·Π°Π΄Π°ΡΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ. Π ΡΠΎΠ²Π° ΡΠ΅ ΠΎΡΠ½Π°ΡΡ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° Π±Π΅ΠΊΠ΅Π½Π΄Π°.
ΠΡΠΈΠ²Π°ΠΌ! Java ΡΠ΄ΡΠΎ. Π’ΡΠΊ Π½Π°ΠΈΡΡΠΈΠ½Π° Π½ΡΠΌΠ° Π΄Π° ΠΎΡΠΊΡΠΈΡ ΠΠΌΠ΅ΡΠΈΠΊΠ° - ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ΡΠ΅ ΡΠ°ΠΌΠΈΡ Π΅Π·ΠΈΠΊ. ΠΠ° ΠΊΠ°ΠΊΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠΡΡΠ²ΠΎ, Java ΠΏΡΡΠ½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΡΠΎΠ΅ΡΡ ΠΏΡΠ΅Π· 2014-2015 Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠ° ΡΠ΅Π΄ΠΌΠ°ΡΠ°, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΎΡΠΌΠ°ΡΠ°, Π΄Π΅Π²Π΅ΡΠ°ΡΠ°, Π΄Π΅ΡΠ΅ΡΠ°ΡΠ°, ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΈ Π³ΠΎΡΠΈΠ½ΠΈ Π½Π΅ΡΠ° Π±ΡΡ
Π° Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈ Π² ΡΡΡ
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Java Stream API, lambda ΠΈ Ρ.Π½. ΠΠ½ΠΎΠ³ΠΎ Π³ΠΎΡΠΈΠ½ΠΈ, ΡΠ²Π΅ΠΆΠΈ, Π³ΠΎΡΠΈΠ½ΠΈ Π½Π΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈΡ ΠΊΠΎΠ΄, Π·Π° ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΠΈΡΠ°Ρ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡΠ° ΠΈ ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ΡΠ΅. ΠΡΠΎ Π·Π°ΡΠΎ Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π²Π·Π΅ΠΌΠ°ΡΠ΅ ΠΊΠ½ΠΈΠ³Π° ΠΎΡ ΡΠ°ΡΡΠ° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Java-4 ΠΈ Π΄Π° ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π΄Π° Ρ Π½Π°ΡΡΠΈΡΠ΅. Π’ΠΎΠ²Π° Π΅ Π½Π°ΡΠΈΡΡ ΠΏΠ»Π°Π½: ΡΡΠΈΠΌ Java-8 ΠΈΠ»ΠΈ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠ°.
ΠΠΈΠ΅ ΠΎΠ±ΡΡΡΠ°ΠΌΠ΅ Π³ΠΎΠ»ΡΠΌΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ ΠΊΠ°ΡΠΎ Stream API, var ΠΈ Π΄Ρ. Π’Π΅ ΡΠ΅ Π·Π°Π΄Π°Π²Π°Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡΠ° ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ. Π’ΠΎΠ΅ΡΡ, Stream API Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π³ΠΎΡΠΈΠ½ ΠΎΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅, ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ, ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΡΠΈΠ½ΠΎ Π½Π΅ΡΠΎ. ΠΠ΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅ Π΄Π° ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.
Π ΠΈΠΌΠ° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π½Π΅ΡΠ° ΠΊΠ°ΡΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΈ, ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ°ΠΊΠ° Π½Π°ΡΠ°ΡΡΠΊ. ΠΠ΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ Π²ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΠΈ, ΡΡΠΈΠ³Π° ΡΠ°ΠΌΠΈ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΌΠ°Π»ΡΠΊ ΠΊΠΎΠ΄. ΠΠ΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΉ ΠΈΠ·ΠΎΠ±ΡΠΎ ΠΈΠΌΠ° Π½ΡΠΆΠ΄Π° ΠΎΡ ΡΡΡ ? ΠΠΎ ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΏΠΎΠΈΡΠΊΠ°Π½ΠΈ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²ΡΡΠ°, ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠ΅ Π²ΠΈ Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ. ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΡΡΠ°, ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΈΡΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈ Π½Π΅ΡΠ°.
Π‘ΡΡΡΠΊΡΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ. ΠΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±Π΅Π· ΡΡΡΡΠΊΡΡΡΠΈ, Π½ΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΡΠ΄Π΅ΡΠ½ΠΎ, Π°ΠΊΠΎ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ, ΡΠ΅ ΠΈΠΌΠ° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΈ, ΡΠ΅ΡΠ½ΠΈΡΠΈ ΠΈ Π»ΠΈΡΡΠΎΠ²Π΅. Π ΡΡΡΠΎ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΡ Π½Π° ΡΡΡΡΠΊΡΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠΈΡΡ ΡΠ΅ΡΠ½ΠΈΠΊ Π² Java ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ HashMap ΠΈ TreeMap. ΠΠΌΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½Π° Π°ΡΠΈΠΌΠΏΡΠΎΡΠΈΠΊΠ°, Π²ΡΡΡΠ΅ ΡΠ° ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ. Π’ΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ ΠΈ ΠΊΠΎΠ³Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΡΠΈΠ½ΠΎ, Π°ΠΊΠΎ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ΅Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ ΡΠ°Π±ΠΎΡΡΡ Π²ΡΡΡΠ΅ΡΠ½ΠΎ. Π’ΠΎΠ΅ΡΡ, Π½Π΅ Π΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π·Π½Π°Π΅ ΡΡΡ Π½Π°ΡΠ° Π°ΡΠΈΠΌΠΏΡΠΎΡΠΈΠΊΠ° - ΠΊΠΎΠ»ΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ Π·Π°Π»ΠΎΠ³ΡΡ, ΠΊΠΎΠ»ΠΊΠΎ Π΄ΡΠ»Π³ΠΎ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠ°ΡΡΡ, Π½ΠΎ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π²ΡΡΡΠ΅ - Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΊΠΎΡΠ° Π² HashMap.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠΈ ΡΡΡΡΠ²Π° Π΄Π° ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΄ΡΡΠ²Π΅ΡΠ°ΡΠ° ΠΈ Π³ΡΠ°ΡΠΈΠΊΠΈΡΠ΅. Π’ΠΎΠ²Π° ΡΠ° Π½Π΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈΡ ΠΊΠΎΠ΄, Π½ΠΎ ΡΠ° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ Π² ΠΈΠ½ΡΠ΅ΡΠ²ΡΡΠ°ΡΠ°. Π‘ΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, ΡΡΡΠ±Π²Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠ±Ρ ΠΎΠΆΠ΄Π°ΡΠ΅ Π΄ΡΡΠ²Π΅ΡΠ°, Π³ΡΠ°ΡΠΈΠΊΠΈ Π² ΡΠΈΡΠΈΠ½Π° ΠΈ Π΄ΡΠ»Π±ΠΎΡΠΈΠ½Π°. ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΠ° ΠΏΡΠΎΡΡΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ.
ΠΠ΅Π΄Π½Π°Π³Π° ΡΠΎΠΌ Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ Π½ΡΠΊΠ°ΠΊΡΠ² Π³ΠΎΠ»ΡΠΌ ΠΊΠΎΠ΄, ΡΠ»ΠΎΠΆΠ΅Π½, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΌΠ½ΠΎΠ³ΠΎΠΊΠ»Π°ΡΠΎΠ² ΠΊΠΎΠ΄, ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅, ΡΠ΅ Π²ΠΈ Π΅ ΡΡΡΠ΄Π½ΠΎ Π±Π΅Π· ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. Π’ΠΎΠ²Π° ΡΠ° ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ Maven ΠΈ Gradle. Π’Π΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²ΡΠ² Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ Π² Π΅Π΄ΠΈΠ½ ΡΠ΅Π΄. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΏΠΈΡΠ΅ΡΠ΅ Π΅Π΄Π½ΠΎΡΠ΅Π΄ΠΎΠ² xml ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π‘ΡΡΠ°Ρ ΠΎΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. Π’Π΅ ΡΠ° ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ Π΅Π΄Π½Π°ΠΊΠ²ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ - Maven ΠΈΠ»ΠΈ Gradle.
Π‘Π»Π΅Π΄Π²Π° - Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅. ΠΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Git, Π·Π°ΡΠΎΡΠΎ Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΠΈ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΎΡΠΈ. ΠΠΎΡΡΠΈ Π²ΡΠ΅ΠΊΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Git, ΡΠΎΠ²Π° Π΅ ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΎ Π½Π΅ΡΠΎ, Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΆΠΈΠ²Π΅Π΅ΡΠ΅ Π±Π΅Π· Π½Π΅Π³ΠΎ.
Π Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΡΠ΅Π΄Π° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ IntelliJ Idea. Π’ΠΎΠΉ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠΊΠΎΡΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΏΠΎΠΌΠ°Π³Π° Π²ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΏΠΈΡΠ΅ ΡΠ΅Π»ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π΅Π½ ΠΊΠΎΠ΄ Π²ΠΌΠ΅ΡΡΠΎ Π²Π°Ρ, ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ Π΅ ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΎ.
ΠΡΡΠ·ΠΊΠΈ ΠΎΡ ΡΠ»Π°ΠΉΠ΄Π°: SQLZOO , Ρ
Π°Π±ΡΠ°ΠΏΠΎΡΡ
SQL. ΠΠ°Π»ΠΊΠΎ Π·Π° backenders. Π’ΡΠΊ Π²ΡΡΡΠ½ΠΎΡΡ ΠΈΠΌΠ°ΡΠ΅ Π·Π°Π±Π°Π²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ. ΠΠ²Π° Π΄Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈ Π²ΡΠΎΡΠΎΡΠΎ ΠΌΠΈ ΡΡΠ°ΠΆΠ°Π½ΡΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Ρ ΠΌΠΈ ΡΠ΅ ΠΎΠ±Π°Π΄ΠΈ ΠΌΠΎΠΌΠΈΡΠ΅ ΠΎΡ HR ΠΈ ΠΊΠ°Π·Π°, ΡΠ΅ ΡΠ»Π΅Π΄ Π΄Π²Π° Π΄Π½ΠΈ ΡΠ΅ ΠΌΠ΅ ΠΏΠΈΡΠ°Ρ Π·Π° SQL ΠΈ HTTP, ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ Π½Π°ΡΡΠ°. Π Π½Π΅ Π·Π½Π°Π΅Ρ
ΠΏΠΎΡΡΠΈ Π½ΠΈΡΠΎ Π·Π° SQL ΠΈΠ»ΠΈ HTTP. Π Π½Π°ΠΌΠ΅ΡΠΈΡ
ΡΠΎΠ·ΠΈ Π³ΠΎΡΠΈΠ½ ΡΠ°ΠΉΡ -
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π΅ ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ²Π° ΡΠ° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅, ΠΈΠ½Π΄Π΅ΠΊΡΠΈ, Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠΌΠ° ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π·Π° ΡΠΎΠ²Π° Π½Π° HabrΓ©.
Π Java, Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ SQL, ΠΈΠΌΠ° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΎΠ±Π΅ΠΊΡΠ½ΠΎ-ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π½ΠΎ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Π½Π΅ ΠΊΠ°ΡΠΎ JPA. ΠΠΌΠ° Π½ΡΠΊΠ°ΠΊΡΠ² ΠΊΠΎΠ΄. Π ΠΏΡΡΠ²ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠΌΠ° Π½ΡΠΊΠ°ΠΊΡΠ² SQL ΠΊΠΎΠ΄ - SELECT id name FROM info.users WHERE id IN userIds. ΠΡ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅, ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π°.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π²ΡΡΡΠ° ΠΎΠ±Π΅ΠΊΡ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π² Java ΠΎΠ±Π΅ΠΊΡ. ΠΠΌΠ° ΠΈ ΡΡΠ΅ΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎ-Π΄ΠΎΠ»Ρ, ΠΊΠΎΠΉΡΠΎ Π²ΡΡΡΠ½ΠΎΡΡ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΠΎΠ·ΠΈ ΠΊΠΎΠ΄. ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° JPA Ρ Π΅Π΄ΠΈΠ½ ΡΠ΅Π΄, ΠΊΠΎΠΉΡΠΎ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΏΠΎ-Π΄ΠΎΠ»Ρ. ΠΡΠ°Π²ΠΈ ΡΡΡΠΎΡΠΎ - Π½Π°ΠΌΠΈΡΠ° All ByIdIn. Π’ΠΎΠ΅ΡΡ, Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΠΎΠΉ Π³Π΅Π½Π΅ΡΠΈΡΠ° SQL Π·Π°ΡΠ²ΠΊΠ° Π·Π° Π²Π°Ρ.
ΠΠ½ΠΎΠ³ΠΎ ΡΠΊΠΎ Π½Π΅ΡΠΎ. ΠΠ· ΡΠ°ΠΌΠΈΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ SQL, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ JPA. ΠΠ°ΡΠΎ ΡΡΠ»ΠΎ, ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠΠΊΠΎ Π²ΠΈ ΠΌΡΡΠ·ΠΈ Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ SQL, ΡΠΎΠ²Π° Π΅ ΠΊΠ°ΡΠ°ΡΡΡΠΎΡΠ°. Π ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ ΠΎΠ³ΡΠ½!
ΠΡΠΎΠ»Π΅Ρ. ΠΠΎΠΉ Π΅ ΡΡΠ²Π°Π» Π·Π° ΡΠ°ΠΊΠΎΠ²Π° Π½Π΅ΡΠΎ ΠΊΠ°ΡΠΎ Spring framework? ΠΠΈΠΆΠ΄Π°ΡΠ΅ Π»ΠΈ ΠΊΠΎΠ»ΠΊΠΎ ΡΡΠ΅? ΠΠ΅ Π±Π΅Π· ΠΏΡΠΈΡΠΈΠ½Π°. ΠΡΠΎΠ»Π΅ΡΡΠ° Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π·Π° Π²ΡΡΠΊΠ° Π²ΡΠΎΡΠ° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π° ΡΠ°Π±ΠΎΡΠ° Π² Java backend. ΠΠ΅Π· Π½Π΅Π³ΠΎ Π½Π°ΠΈΡΡΠΈΠ½Π° Π½ΡΠΌΠ° Π½ΠΈΠΊΡΠ΄Π΅ Π² Π³ΠΎΠ»ΡΠΌΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅. ΠΠ°ΠΊΠ²ΠΎ Π΅ ΠΏΡΠΎΠ»Π΅Ρ? ΠΠ° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ, ΡΠΎΠ²Π° Π΅ ΡΠ°ΠΌΠΊΠ° Π·Π° ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΠ° ΡΠΎΠ²Π° ΡΡΡΠΎ
Spring Boot Π΅ ΡΠ°ΡΡ ΠΎΡ Spring, ΠΊΠΎΡΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π²Π°ΡΠ΅ΡΠΎ ΡΡΡΠ²ΡΡΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π΅Π΄ΠΈΠ½ Π±ΡΡΠΎΠ½. ΠΡΠΈΠ²Π°ΡΠ΅ Π½Π° THID, Π½Π°ΡΠΈΡΠΊΠ°ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π±ΡΡΠΎΠ½Π° ΠΈ ΡΠ΅Π³Π° Π²Π°ΡΠ΅ΡΠΎ ΡΡΡΠ²ΡΡΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ Π³ΠΎΡΠΎΠ²ΠΎ ΠΈ ΡΠ°Π±ΠΎΡΠΈ Π½Π° localhost 8080. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ Π½ΠΈΡΠΎ Π΅Π΄ΠΈΠ½ ΡΠ΅Π΄ ΠΊΠΎΠ΄, Π½ΠΎ ΡΠΎΠΉ Π²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ. ΠΠ½ΠΎΠ³ΠΎ ΡΠΊΠΎ Π½Π΅ΡΠΎ. ΠΠΊΠΎ Π½Π°ΠΏΠΈΡΠ΅Ρ Π½Π΅ΡΠΎ ΡΠ²ΠΎΠ΅, ΠΎΠ³ΡΠ½!
ΠΡΠΎΠ»Π΅ΡΡΠ° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»ΡΠΌΠ° ΡΠ°ΠΌΠΊΠ°. Π’ΠΎΠΉ Π½Π΅ ΡΠ°ΠΌΠΎ Π²Π·Π΅ΠΌΠ° Π²Π°ΡΠ΅ΡΠΎ ΡΡΡΠ²ΡΡΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π° ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ. Π’Ρ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΊΡΠΏ Π½Π΅ΡΠ°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° REST API ΠΌΠ΅ΡΠΎΠ΄ΠΈ. Π’ΠΎΠ΅ΡΡ Π²ΠΈΠ΅ ΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ Π½ΡΠΊΠ°ΠΊΡΠ² ΠΌΠ΅ΡΠΎΠ΄ ΠΈ ΡΡΠ΅ ΠΏΡΠΈΠΊΠ°ΡΠΈΠ»ΠΈ ΠΊΡΠΌ Π½Π΅Π³ΠΎ Π°Π½ΠΎΡΠ°ΡΠΈΡΡΠ° Get mapping. Π ΡΠ΅Π³Π° Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΊΠ°ΠΊΡΠ² ΠΌΠ΅ΡΠΎΠ΄ Π½Π° localhost, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΈΡΠ΅ Hello world. ΠΠ²Π° ΡΠ΅Π΄Π° ΠΊΠΎΠ΄ ΠΈ ΡΠ°Π±ΠΎΡΠΈ. ΠΠΎΡΠΈΠ½ΠΈ Π½Π΅ΡΠ°.
Spring ΡΡΡΠΎ ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅. ΠΡΠΌΠ° ΠΊΠ°ΠΊ Π±Π΅Π· ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π² Π³ΠΎΠ»ΡΠΌΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠΎΠ΄ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ΅ΡΡΠ²Π°. ΠΠ° ΡΠ°Π·ΠΈ ΡΠ΅Π» Java ΠΈΠΌΠ° Π³ΠΎΡΠΈΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° JUnit 5. Π JUnit ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ, Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π΅ ΠΏΠ΅ΡΠ°. ΠΠΌΠ° Π²ΡΠΈΡΠΊΠΎ Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅, Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΡΠ²ΡΡΠ΄Π΅Π½ΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈ Π½Π΅ΡΠ°.
Π ΠΈΠΌΠ° ΡΡΡΠ°Ρ ΠΎΡΠ½Π° ΡΠ°ΠΌΠΊΠ° Mockito. ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅ΡΠ΅ ΡΠΈ, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, ΠΊΠΎΡΡΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΡΠ΅ΡΡΠ²Π°ΡΠ΅. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° ΠΏΡΠ°Π²ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠ°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π½ΡΠΊΡΠ΄Π΅ ΠΏΠΎ ΡΡΠ΅Π΄Π°ΡΠ° Π²Π»ΠΈΠ·Π° Π²ΡΠ² VKontakte Ρ Π²Π°ΡΠΈΡ ID, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΈΠΌΠ΅ΡΠΎ ΠΈ ΡΠ°ΠΌΠΈΠ»ΠΈΡΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π½Π° VKontakte ΠΎΡ ID. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ Π½ΡΠΌΠ° Π΄Π° Π²ΠΊΠ»ΡΡΠΈΡΠ΅ VKontakte Π² ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅, ΡΠΎΠ²Π° Π΅ ΡΡΡΠ°Π½Π½ΠΎ. ΠΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΠΎΠ·ΠΈ ΠΊΠ»Π°Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Mockito, mok Π³ΠΎ, ΠΈΠΌΠΈΡΠΈΡΠ°Ρ Π³ΠΎ.
Π©Π΅ ΠΊΠ°ΠΆΠ΅ΡΠ΅, ΡΠ΅ ΠΊΠΎΠ³Π°ΡΠΎ Π΄ΠΎΠΉΠ΄Π΅ Π·Π°ΡΠ²ΠΊΠ° Π΄ΠΎ ΡΠΎΠ·ΠΈ ΠΊΠ»Π°Ρ Ρ ID ΡΠ°ΠΊΡΠ² ΠΈ ΡΠ°ΠΊΡΠ², ΡΡ Π²ΡΡΡΠ° Π½ΡΠΊΠ°ΠΊΠ²ΠΎ ΡΠ°ΠΌΠΈΠ»Π½ΠΎ ΠΈΠΌΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Vasya Pupkin. Π ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ. Π’ΠΎΠ΅ΡΡ ΡΠ΅ ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΡΡΠ»Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π·Π° mok one class. ΠΠ½ΠΎΠ³ΠΎ ΡΠΊΠΎ Π½Π΅ΡΠΎ.
ΠΡΡΠ·ΠΊΠ° ΠΎΡ ΡΠ»Π°ΠΉΠ΄
Π¨Π°Π±Π»ΠΎΠ½ΠΈ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅. ΠΠ°ΠΊΠ²ΠΎ Π΅? Π’ΠΎΠ²Π° ΡΠ° ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΈΠΏΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Ρ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°. Π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° ΡΠ΅ΡΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ Π±ΠΈ Π±ΠΈΠ»ΠΎ ΡΡΠ΄Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠ΅ΡΠ°Ρ Π½ΡΠΊΠ°ΠΊ Π΄ΠΎΠ±ΡΠ΅. ΠΠ°ΡΠΎΠ²Π° Ρ ΠΎΡΠ°ΡΠ° ΠΈΠ·Π»ΡΠ·ΠΎΡ Π° Ρ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ΡΠ°Ρ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
ΠΠΌΠ° ΡΠ°ΠΉΡ Ρ Π½Π°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ - refactoring.guru, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅, Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠΌΠ°, Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΊΡΠΏ ΡΠ΅ΠΎΡΠΈΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π·ΠΏΠΎΠ»Π΅Π·Π΅Π½. ΠΡΡΡΠ½ΠΎΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ΅ Π±Π΅Π· ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π½Π΅ ΡΠ° ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ.
Π©Π΅ ΡΡΠ΅ΡΠ΅ Π·Π° Π½ΡΠΊΠΎΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠ°ΡΠΎ Singletone ΠΈΠ»ΠΈ Builder. ΠΠΎΠΉ ΡΡ ΡΠ΅Π·ΠΈ Π΄ΡΠΌΠΈ? ΠΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ°. ΠΠΌΠ° ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΡΠΎΡΡΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΡΠ°ΠΌΠΈ. ΠΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ: ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ, ΡΠ°Π±ΡΠΈΠΊΠ°, ΡΠ°ΡΠ°Π΄Π° - Π½Π΅ Π΅ ΡΡΠ½ΠΎ ΠΊΡΠ΄Π΅ Π΄Π° Π³ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅.
Π Π΄ΠΎΠΊΠ°ΡΠΎ Π½Π΅ Π²ΠΈΠ΄ΠΈΡΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π² ΠΊΠΎΠ΄Π° Π½Π° Π΄ΡΡΠ³ ΡΠΎΠ²Π΅ΠΊ ΠΌΡΡΡΠΎ, ΠΊΡΠΌ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΡΠΎΠ·ΠΈ ΠΌΠΎΠ΄Π΅Π», Π½ΡΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΡΠ°ΠΌΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΡΠ° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½Π° Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ΅. Π ΡΠ°ΠΌΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½Π΅ Π·Π° ΡΡΡ Π½Π° refactoring.guru Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠΈ Π·Π°ΡΠ»ΡΠΆΠ°Π²Π°.
ΠΠ°ΡΠΎ ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ? ΠΠ° ΠΏΡΠΈΠ΅ΠΌΠ΅ΠΌ, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΊΠ»Π°Ρ. ΠΠΌΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈ ΠΈΠΌΠ΅. ΠΡΠ΅ΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ° ΠΊΠ°ΠΊΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΡΠ°ΠΊΠ° ΠΈ ΠΈΠΌΠ΅. ΠΠΎΡΠ΅ Π²Π»ΡΠ²ΠΎ Π΅ ΠΊΠ»Π°ΡΠ½Π°ΡΠ° ΡΡΠ°Ρ.
ΠΠ°ΠΊΠ²ΠΈ ΡΠ° Π½Π°ΡΠΈΠ½ΠΈΡΠ΅ Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»? ΠΠ°ΡΠΈΠ°Π½ΡΠΈΡΠ΅ ΡΠ° Π΄Π²Π° - ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Ρ. ΠΠ°ΠΊΠ²ΠΈ ΡΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈΡΠ΅ Π½Π° Π΄Π²Π°ΡΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°?
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. Π½ΠΎΠ² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» (7, "Bond"), Π΄ΠΎΠ±ΡΠ΅. Π‘Π΅Π³Π° Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ Π½ΡΠΌΠ°ΠΌΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΊΠ»Π°Ρ, Π° Π½ΡΠΊΠ°ΠΊΡΠ² Π΄ΡΡΠ³, ΡΡΡ ΡΠ΅Π΄Π΅ΠΌ ΡΠΈΡΠ»ΠΎΠ²ΠΈ ΠΏΠΎΠ»Π΅ΡΠ°. Π©Π΅ ΠΈΠΌΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΡΡΠ΄ΡΡΠΆΠ°Ρ ΡΠ΅Π΄Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΈ ΡΠΈΡΠ»Π°. ΠΠ΅ Π΅ ΡΡΠ½ΠΎ ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ° ΡΠ΅Π·ΠΈ Π½ΠΎΠΌΠ΅ΡΠ° ΠΈ ΠΊΠΎΠΉ ΠΎΡ ΡΡΡ Π½Π° ΠΊΠΎΠΉ ΠΈΠΌΠΎΡ Π΅. ΠΠΈΠ·Π°ΠΉΠ½Π΅ΡΡΡ Π½Π΅ Π΅ ΡΡΡΠ°Ρ ΠΎΡΠ΅Π½.
ΠΡΠΎΡΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ Π΅ ΡΠ΅ΡΠ΅Ρ. ΠΠΈΡΠ΅ΡΠ΅ ΡΡΠ½ΠΎ: setId(7), setName(βBondβ). Π Π°Π·Π±ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΊΡΠΌ ΠΊΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ. ΠΠΎ ΡΠ΅ΡΠ΅ΡΡΡ ΠΈΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΡΡΠ²ΠΎ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°Π±ΡΠ°Π²ΠΈΡΠ΅ Π΄Π° ΠΏΡΠΈΡΠ²ΠΎΠΈΡΠ΅ Π½Π΅ΡΠΎ, ΠΈ Π²ΡΠΎΡΠΎ, Π²Π°ΡΠΈΡΡ ΠΎΠ±Π΅ΠΊΡ ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ². Π’ΠΎΠ²Π° Π½Π΅ Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π·Π° Π½ΠΈΡΠΊΠΈ ΠΈ Π»Π΅ΠΊΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΡΠ΅ΡΠ»ΠΈΠ²ΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠ΄Π°. ΠΡΠΎ Π·Π°ΡΠΎ Ρ ΠΎΡΠ°ΡΠ° ΠΈΠ·Π»ΡΠ·ΠΎΡ Π° Ρ Π³ΠΎΡΠΈΠ½ ΠΌΠΎΠ΄Π΅Π» - Builder.
ΠΠ° ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΎΡΠ½Π°ΡΡ? ΠΠ΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° Π΄Π²Π°ΡΠ° ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π° - ΡΠ΅ΡΠ΅Ρ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ - Π² Π΅Π΄Π½ΠΎ. Π‘ΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΎΠ±Π΅ΠΊΡ, Builder, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠΎ ΡΠ΅ ΠΈΠΌΠ° ΠΏΠΎΠ»Π΅ΡΠ° Id ΠΈ Name, ΠΊΠΎΠΉΡΠΎ ΡΠ°ΠΌ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ΅ΡΠ΅ΡΠ° ΠΈ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠΌΠ° ΠΌΠ΅ΡΠΎΠ΄ Build, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ Π²ΡΡΡΠ° Π½ΠΎΠ² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Ρ Π²ΡΠΈΡΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ. ΠΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΎΠ±Π΅ΠΊΡ ΠΈ ΡΠ΅ΡΠ΅Ρ. ΠΠΎΡΠΈΠ½ΠΎ!
ΠΠ°ΠΊΠ²ΠΈ ΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅? Π’ΡΠΊ ΠΈΠΌΠ°ΠΌΠ΅ ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Builder. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π±ΡΠ°Π²ΠΈΠΌ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ Π² Π½ΡΠΊΠΎΠ΅ ΠΏΠΎΠ»Π΅. Π Π°ΠΊΠΎ ΡΠΌΠ΅ Π·Π°Π±ΡΠ°Π²ΠΈΠ»ΠΈ Π΄Π° ΠΏΠΎΡΠ΅ΡΠΈΠΌ ID, Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π² Builder ΡΠΎΠΉ ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ° Π½Π° Π½ΡΠ»Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΈΠΏΡΡ int Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½ΡΠ»ΠΈΡΠ°. Π Π°ΠΊΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΠΌΠ΅ΡΠΎ βBondβ ΠΈ Π·Π°Π±ΡΠ°Π²ΠΈΠΌ Π΄Π° ΠΏΠΎΡΠ΅ΡΠΈΠΌ ID ΠΎΡΠΈΡΠ°, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΠΎΠ² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Ρ id β0β ΠΈ ΠΈΠΌΠ΅ βBondβ. ΠΠ΅ Π΅ Π³ΠΎΡΠΈΠ½ΠΎ.
ΠΠ΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π±ΠΎΡΠΈΠΌ Ρ ΡΠΎΠ²Π°. Π Builder ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ int Π½Π° int, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° Π΅ nullable. Π‘Π΅Π³Π° Π²ΡΠΈΡΠΊΠΎ Π΅ ΡΡΠΏΠ΅Ρ.
ΠΠΊΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Ρ ΠΈΠΌΠ΅ΡΠΎ βBondβ, Π·Π°Π±ΡΠ°Π²ΡΠΉΠΊΠΈ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ Π½Π΅Π³ΠΎΠ²ΠΈΡ ID, ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Ρ Π½ΡΠ»Π΅Π² ΡΠΊΠ°Π·Π°ΡΠ΅Π», ΡΡΠΉ ΠΊΠ°ΡΠΎ ID Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½ΡΠ»ΠΈΡΠ°, Π° Builder ΠΈΠΌΠ° Π½ΡΠ»Π΅Π²ΠΎ, ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π».
ΠΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π±ΡΠ°Π²ΠΈΠΌ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ ΠΈΠΌΠ΅, ΡΠ°ΠΊΠ° ΡΠ΅ Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ replay Π½Π° ΠΎΠ±Π΅ΠΊΡ Π½Π° Π½ΡΠ»Π°. Π‘Π΅Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΠΌΠ΅ Π½Π°ΡΠΈΡ ΠΎΠ±Π΅ΠΊΡ ΠΎΡ Builder, ΡΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π΄Π°Π»ΠΈ ΠΏΠΎΠ»Π΅ΡΠΎ Π½Π΅ Π΅ nullable. Π ΡΠΎΠ²Π° Π½Π΅ Π΅ Π²ΡΠΈΡΠΊΠΎ.
ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ, Π°ΠΊΠΎ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ null Π²ΡΠ² Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ID, Π±ΠΈ Π±ΠΈΠ»ΠΎ ΡΡΠ΄Π΅ΡΠ½ΠΎ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ, ΡΠ΅ ΡΡΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΈ Π½Π΅ Π΅ Π³ΠΎΡΠΈΠ½ΠΎ, ΡΠ΅ ΠΏΡΠ°Π²ΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠ° ΡΠ΅Π³Π°.
Π’ΡΡΠ±Π²Π° Π΄Π° Ρ
Π²ΡΡΠ»ΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠ° Π½Π΅ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», Π° ΠΊΠΎΠ³Π°ΡΠΎ Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ null Π½Π° ID. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π² Builder ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ ΡΠ΅ΡΠ΅ΡΠ° Integer Π½Π° int ΠΈ ΡΠΎΠΉ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ΅ ΡΠ΅ Π·Π°ΠΊΡΠ»Π½Π΅, ΡΠ΅ ΡΠ° ΠΈΠ·Ρ
Π²ΡΡΠ»ΠΈΠ»ΠΈ null.
ΠΠ°ΠΊΡΠ°ΡΠΊΠΎ, ΠΊΠ°ΠΊΡΠ² Π΅ ΡΠΌΠΈΡΡΠ»ΡΡ? ΠΠΌΠ° ΠΏΡΠΎΡΡ ΠΌΠΎΠ΄Π΅Π» Π½Π° Builder, Π½ΠΎ Π΄ΠΎΡΠΈ ΠΈ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠΌΠ° Π½ΡΠΊΠΎΠΈ ΡΡΠ½ΠΊΠΎΡΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΡΠΈΠ½ΠΎ Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΠ°Π±Π»ΠΎΠ½ΠΈ. ΠΡΠ΅ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π» ΠΈΠΌΠ° Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ.
ΠΠ°ΠΊ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ Builder Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ ΠΊΠΎΠ΄? ΠΡΠΎ Π³ΠΎ Π½Π°ΡΠΈΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π». ΠΡΠΈΠΊΠ°ΡΠ²Π°ΠΌΠ΅ ΡΠΎΡΠ°ΡΠΈΡ Π½Π° Builder ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π½Π° Lombok ΠΊΡΠΌ Π½Π΅Π³ΠΎ ΠΈ ΡΠΎΠΉ ΡΠ°ΠΌ Π³Π΅Π½Π΅ΡΠΈΡΠ° Builder Π·Π° Π½Π°Ρ. Π’ΠΎΠ΅ΡΡ, Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΈΡΠ΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΡΠ² ΠΊΠΎΠ΄, Π½ΠΎ Java Π²Π΅ΡΠ΅ ΡΠΌΡΡΠ°, ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΊΠ»Π°Ρ ΠΈΠΌΠ° Builder ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ Π½Π°ΡΠ΅ΡΠ΅ΠΌ ΡΠ°ΠΊΠ°.
ΠΠ΅ΡΠ΅ ΠΊΠ°Π·Π°Ρ , ΡΠ΅ Java ΠΈΠΌΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΎ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Lombok, ΡΡΡΠ°Ρ ΠΎΡΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ ΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΎΠ½. Π‘ΡΡΠΎΠΈΡΠ΅Π», ΠΠΠΠΠ.
ΠΠ°ΡΠ΅ΡΠ½ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΈ β ΡΠ²ΡΡΠ·Π°Π½ΠΈ Π½Π΅ ΡΠ°ΠΌΠΎ Ρ Π΅Π΄ΠΈΠ½ ΠΊΠ»Π°Ρ, Π½ΠΎ ΠΈ ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ. ΠΠΌΠ° ΡΠ°ΠΊΡΠ² ΡΡΡΠ°Ρ
ΠΎΡΠ΅Π½ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ Π΄ΠΈΠ·Π°ΠΉΠ½: ΠΡΠΈΠ½ΡΠΈΠΏ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ½Π°ΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ. ΠΊΠ°ΠΊΠ²ΠΎ Π³ΠΎΠ²ΠΎΡΠΈ ΡΠΎΠΉ Π€Π°ΠΊΡΡΡ, ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»Π°Ρ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΡΠ°ΡΡ ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π°ΡΠ° ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΈΠΌΠ°ΠΌΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠΈΡΠ° Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, JSON ΠΎΠ±Π΅ΠΊΡΠΈ. ΠΠΌΠ° Facade, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° JSON ΠΎΠ±Π΅ΠΊΡΠΈ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ. ΠΠΌΠ° ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΡΡΠΎ ΠΈΠΌΠ° ΡΠ»ΠΎΠΆΠ½Π° Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΊΠΎΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Ρ ΡΠ΅Π·ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΠΌΠ° ΠΎΠ±Π΅ΠΊΡ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΡΡΠ°Π²Ρ ΡΠ΅Π·ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΈ Π³ΠΈ ΠΈΠ·Π²Π»ΠΈΡΠ° ΠΎΡ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ. Π ΠΈΠΌΠ° ΠΈ ΡΠ°ΠΌΠ°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. Π‘ Π΄ΡΡΠ³ΠΈ Π΄ΡΠΌΠΈ, Π½Π΅ Π²ΡΠΈΡΠΊΠΎ Π΅ Π² Π΅Π΄ΠΈΠ½ ΠΊΠ»Π°Ρ, Π½ΠΎ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΏΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΊΠ»Π°ΡΠ° ΠΈ ΡΠΎΠ²Π° Π΅ Π΄ΡΡΠ³ ΠΌΠΎΠ΄Π΅Π».
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π½Π°ΡΡΠΈΡΠ΅ Java, Π΅ ΡΡΡΠ°Ρ
ΠΎΡΠ½ΠΎ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠΌΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Ρ Π΄ΡΡΠ³ΠΈ API ΠΈ ΡΠ΅ ΠΈΠ·Π»ΠΎΠΆΠΈ Π²Π°ΡΠ΅ΡΠΎ ΡΡΡΠ²ΡΡΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° REST API ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ. Π’ΠΎΠ²Π° Π±ΠΈ Π±ΠΈΠ»ΠΎ ΡΡΠ΄Π΅ΡΠ½ΠΎ Π½Π΅ΡΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΊΡΠΌ Π°Π²ΡΠΎΠ±ΠΈΠΎΠ³ΡΠ°ΡΠΈΡΡΠ° ΡΠΈ, Π±ΠΈ Π±ΠΈΠ»ΠΎ Π³ΠΎΡΠΈΠ½ Π·Π°Π²ΡΡΡΠ΅ΠΊ Π½Π° Π²Π°ΡΠ΅ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΠΈΠ΄Π΅ΡΠ΅ ΠΈ Π΄Π° ΡΠΈ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ°.
ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΌΠΎΠ΅ΡΠΎ ΡΡΡΠ²ΡΡΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠ΅Π· Π²ΡΠΎΡΠ°ΡΠ° ΡΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π°ΠΏΠΈΡΠ°Ρ
ΠΊΡΡΡΠΎΠ²Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΌΠΎΠΌΡΠ΅ΡΠ°ΡΠ°. Π’Π΅ ΠΏΠΈΡΠ΅Ρ
Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ±ΠΈΡΠΈΡ. Π’Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π²Π»ΠΈΠ·Π°Ρ ΡΡΠ΅Π· VKontakte, Π΄Π° ΠΏΠΎΡΡΠ°Π²ΡΡ ΡΠΎΡΠΊΠΈ Π½Π° ΠΊΠ°ΡΡΠ°ΡΠ°, Π΄Π° ΡΡΠ·Π΄Π°Π²Π°Ρ ΡΡΠ±ΠΈΡΠΈΡ, Π΄Π° ΠΊΠ°Π½ΡΡ ΠΏΡΠΈΡΡΠ΅Π»ΠΈ Π² ΡΡΡ
, Π΄Π° Π·Π°ΠΏΠ°Π·Π²Π°Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΡΠ±ΠΈΡΠΈΡ ΠΈ Ρ.Π½.
ΠΠ°ΠΊΠ²ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°? ΠΠ°ΠΏΠΈΡΠ°Ρ ΡΡΡΠ²ΡΡΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Spring Boot, Π±Π΅Π· Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ SQL. ΠΠ΅ Π³ΠΎ ΠΏΠΎΠ·Π½Π°Π²Π°Ρ , ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ JPA. ΠΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ? ΠΠ»Π΅Π·ΡΠ΅ Π²ΡΠ² VK ΡΡΠ΅Π· OAuth-2. ΠΠ·Π΅ΠΌΠ΅ΡΠ΅ ΡΠΎΠΊΠ΅Π½Π° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π²ΡΠ² VK Ρ Π½Π΅Π³ΠΎ, ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ Π΅ ΠΈΡΡΠΈΠ½ΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π». ΠΠΎΠ»ΡΡΠ°Π²Π°ΠΉΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΡΡΠ΅Π· VKontakte. Π’ΠΎΠΉ ΡΡΠΏΡ Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΡΡΡΠΎ ΡΡΠ΅Π· JPA. Π£ΠΌΠ΅Π»ΠΎ Π·Π°ΠΏΠ°Π·Π²Π°ΠΉΡΠ΅ ΡΠ½ΠΈΠΌΠΊΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΡΠ° ΠΈ Π·Π°ΠΏΠ°Π·Π²Π°ΠΉΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ ΠΊΡΠΌ ΡΡΡ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ. ΠΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π΅ Π·Π½Π°Π΅Ρ , ΡΠ΅ ΠΈΠΌΠ° CLOB ΠΎΠ±Π΅ΠΊΡΠΈ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½. ΠΠΌΠ°ΡΠ΅ REST API Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π ΠΈΠΌΠ°ΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ Π·Π° ΠΎΡΠ½ΠΎΠ²Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ.
[β¦] ΠΠ°Π»ΡΠΊ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΡΠΏΠ΅ΡΠ½ΠΎΡΠΎ ΠΌΠΈ ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Java. ΠΡΠ΅Π· ΠΏΡΡΠ²Π°ΡΠ° ΠΌΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° Π² ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠ° ΠΌΠ΅ Π½Π°ΡΡΠΈΡ Π° C# ΠΈ ΠΌΠΈ Π΄Π°Π΄Π΅Ρ Π° ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° ΠΠΠ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ - ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°Ρ ΠΊΠ»Π°ΡΠΎΠ²Π΅ΡΠ΅, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈΡΠ΅, Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡΡΠ° ΠΈ Π·Π°ΡΠΎ ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ. ΠΠ½ΠΎΠ³ΠΎ ΠΌΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°. ΠΠ΅Π· ΡΠΎΠ²Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° Java Π΅ Π΄ΠΎΡΡΠ° ΡΡΡΠ΄Π½ΠΎ, Π½Π΅ Π΅ ΡΡΠ½ΠΎ Π·Π°ΡΠΎ ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ ΠΊΠ»Π°ΡΠΎΠ²Π΅.
ΠΡΠ΅Π· Π²ΡΠΎΡΠ°ΡΠ° ΠΌΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° Π² ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠ° ΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°Ρ
Π° Java ΡΠ΄ΡΠΎ, Π½ΠΎ Π°Π· Π½Π΅ ΡΠΏΡΡΡ
Π΄ΠΎΡΡΠΊ, ΠΎΡΠΈΠ΄ΠΎΡ
ΡΠ°ΠΌ Π΄Π° ΡΡΠ° Spring ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ
ΠΊΡΡΡΠΎΠ²Π° ΡΠ°Π±ΠΎΡΠ°, ΠΌΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΠΉΡΠΎ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ
ΠΏΠΎ-Π³ΠΎΡΠ΅. Π Ρ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΎΡΠΈΠ΄ΠΎΡ
Π½Π° ΡΡΠ°ΠΆ Π² Yandex, ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ
ΠΈΠ½ΡΠ΅ΡΠ²Ρ ΠΈ Π²Π»ΡΠ·ΠΎΡ
Π² Yandex.Market. Π’Π°ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ
Π±Π΅ΠΊΠ΅Π½Π΄Π° Π·Π° Beru, ΡΠΎΠ²Π° Π΅ Π½Π°ΡΠΈΡΡ ΠΏΠ°Π·Π°Ρ ΠΈ Π·Π° ΡΠ°ΠΌΠΈΡ Yandex.Market.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π°, ΠΏΡΠ΅Π΄ΠΈ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠ°, ΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈΡ Π² Π΄ΡΡΠ³ ΠΎΡΠ±ΠΎΡ Π½Π° ΡΡΡΠΈΡ ΠΏΠ°Π·Π°Ρ. ΠΡΠ°Π²ΠΈΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΈ Π·Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΠ°ΡΡΠ½ΡΠΎΡΠΈ. ΠΠΈΠ΅ ΡΠΌΠ΅ Π² Π°Π½Π°Π»ΠΈΡΠΈΡΠ½Π°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΡΡΠΈΠΌΠ° ΡΠΌΠ΅ Π² Π±Π΅ΠΊΠ΅Π½Π΄Π°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈΠΌΠ°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»ΡΠΌ Π΄ΡΠ» ΠΎΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ΡΠΎ Π²ΡΡΡ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΡΡΠ½ΠΎΡΡ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ. Π’ΠΎΠ΅ΡΡ ΡΠ΅Π°Π»Π½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΌΠ΅ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΠ°Π·Π°ΡΠ° β ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ° ΠΏΡΠΎΠ΄Π°ΠΆΠ±ΠΈΡΠ΅, Π² ΠΊΠ°ΠΊΠ²ΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ, Π² ΠΊΠ°ΠΊΠ²ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π·Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΠ°ΡΡΠ½ΡΠΎΡΠΈ, Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Π Π½ΠΈΠ΅ ΡΠΌΠ΅ ΡΠ°ΠΌΠΎ ΡΡΠΈΠΌΠ°, ΠΏΠΈΡΠ΅ΠΌ ΡΠΎΠ·ΠΈ ΠΊΠΎΠ΄ ΠΈ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΡΠΈΠ½.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΈ! ΠΠΎΠ»Π΅Π·Π½ΠΈ Π²ΡΡΠ·ΠΊΠΈ:
-
-
-
-
-
-
-
-
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com