Π‘ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ?
ΠΡΠΈΠΉΡΠΈ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΡΠΎΠΊ Β«ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²Β», Π³Π΄Π΅ ΠΎΠΏΡΡΠ½ΡΠΉ ΡΠΊΡΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΠ΅Ρ:
1. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ
2. ΠΠ°ΡΡΠ΅ΡΠ½ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π² ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°Ρ
3. ΠΠ°ΡΡΠ΅ΡΠ½ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠΎΠΌ
4. ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
ΠΠ°Π½ΡΡΠΈΠ΅ ΠΏΡΠΎΠΉΠ΄ΡΡ 3 Π°ΠΏΡΠ΅Π»Ρ Π² 20:00 ΠΌΡΠΊ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΡΡΡΠ° Β«Microservice ArchitectureΒ». ΠΠΎΡΡΡΠΏΠ½Π° ΡΠ°ΡΡΡΠΎΡΠΊΠ° Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅!
ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠ΅ΡΡ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΡΡΠΎΠΊ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡ: https://vk.cc/cvyTDE
ΠΡΠΈΠΉΡΠΈ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΡΠΎΠΊ Β«ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²Β», Π³Π΄Π΅ ΠΎΠΏΡΡΠ½ΡΠΉ ΡΠΊΡΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΠ΅Ρ:
1. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ
2. ΠΠ°ΡΡΠ΅ΡΠ½ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π² ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ°Ρ
3. ΠΠ°ΡΡΠ΅ΡΠ½ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠΎΠΌ
4. ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
ΠΠ°Π½ΡΡΠΈΠ΅ ΠΏΡΠΎΠΉΠ΄ΡΡ 3 Π°ΠΏΡΠ΅Π»Ρ Π² 20:00 ΠΌΡΠΊ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΡΡΡΠ° Β«Microservice ArchitectureΒ». ΠΠΎΡΡΡΠΏΠ½Π° ΡΠ°ΡΡΡΠΎΡΠΊΠ° Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅!
ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠ΅ΡΡ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΡΡΠΎΠΊ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡ: https://vk.cc/cvyTDE
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576, www.otus.ruπ3π₯1
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ/ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ?
ΠΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΡΠ°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Ρ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΈΡ ΡΡΠ΅Π½ΠΈΡ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π΄Π΅ΡΡ ΠΏΠΈΡΠ°Π»ΠΈ ΡΠ°Π½Π΅Π΅.
ΠΠ»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ KeyPairGenerator. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎ ΠΎΠ½ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠΈΡΠ°ΡΡΡΡ ΠΊΠ»ΡΡΠΈ KeyFactory: ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· SPI, Π΄ΠΎΡΡΡΠΏ ΠΊ Π½ΠΈΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· getInstance.
ΠΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½ΡΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ initialize ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΡΡΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°:
β’ ΠΠ΅Π»Π°Π΅ΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ»ΡΡΠ°;
β’ ΠΡΡΠΎΡΠ½ΠΈΠΊ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΏΠ° SecureRandom;
β’ Π‘ΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ° AlgorithmParameterSpec.
ΠΡΠ»ΠΈ ΠΊ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½, ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π°, ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΡΠΈΠΌΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π΄Π΅ΡΠΎΠ»ΡΡ.
Π‘Π°ΠΌ ΠΌΠ΅ΡΠΎΠ΄ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ generateKeyPair Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·Π½ΡΡ ΠΏΠ°Ρ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π° β ΠΎΠ±ΡΠ΅ΠΊΡ KeyPair, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΡΡΠΎ Ρ ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΠΌΠΈ Π½Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ PrivateKey ΠΈ PublicKey ΠΏΠ°ΡΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΡΠ°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Ρ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΈΡ ΡΡΠ΅Π½ΠΈΡ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π΄Π΅ΡΡ ΠΏΠΈΡΠ°Π»ΠΈ ΡΠ°Π½Π΅Π΅.
ΠΠ»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ KeyPairGenerator. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎ ΠΎΠ½ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠΈΡΠ°ΡΡΡΡ ΠΊΠ»ΡΡΠΈ KeyFactory: ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· SPI, Π΄ΠΎΡΡΡΠΏ ΠΊ Π½ΠΈΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· getInstance.
ΠΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½ΡΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ initialize ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΡΡΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°:
β’ ΠΠ΅Π»Π°Π΅ΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ»ΡΡΠ°;
β’ ΠΡΡΠΎΡΠ½ΠΈΠΊ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΏΠ° SecureRandom;
β’ Π‘ΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ° AlgorithmParameterSpec.
ΠΡΠ»ΠΈ ΠΊ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½, ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π°, ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΡΠΈΠΌΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π΄Π΅ΡΠΎΠ»ΡΡ.
Π‘Π°ΠΌ ΠΌΠ΅ΡΠΎΠ΄ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ generateKeyPair Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·Π½ΡΡ ΠΏΠ°Ρ. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π° β ΠΎΠ±ΡΠ΅ΠΊΡ KeyPair, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΡΡΠΎ Ρ ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΠΌΠΈ Π½Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ PrivateKey ΠΈ PublicKey ΠΏΠ°ΡΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠ².
π5π₯°1
ΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ Π΄Π»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ Ρ
ΠΎΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΌΠΎΡΠ΅ π
ΠΡΠΈΠ³Π»Π°ΡΠ°Π΅ΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² DevOps, Java, JavaScript Π½Π° ΠΎΡΠΊΡΡΡΡΠ΅ Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ IT-ΠΎΡΠΈΡΠ° Π‘Π±Π΅ΡΠ° Π² Π‘ΠΎΡΠΈ. ΠΡ ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Π² ΠΠ½Π΄ΠΈΠΈ, Π²Π½Π΅Π΄ΡΡΠ΅ΠΌ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π±Π°Π½ΠΊΠΈΠ½Π³Π° Π½Π° ΠΈΠ½Π΄ΠΈΠΉΡΠΊΠΈΠΉ ΡΡΠ½ΠΎΠΊ.
Π£ ΡΠ΅Π±Ρ Π΅ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Ρ Π½ΡΠ»Ρ. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ:
βοΈ Π―Π΄ΡΠΎ
βοΈ ΠΡΡ ΡΡΡΡ ΠΈ ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΡ
βοΈ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-Π±Π°Π½ΠΊ ΠΈ Π°Π½ΡΠΈΡΡΠΎΠ΄-ΡΠΈΡΡΠ΅ΠΌΠ°
βοΈ ΠΡΠ΅Π΄ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ
Π ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΡΠΈΠ½ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΡΠ°ΡΡΠΈΠ΅, ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΈ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ.
Π§Π°ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Π ΠΎΡΡΠΈΠΈ, ΡΠ°ΡΡΡ Π² ΠΠ½Π΄ΠΈΠΈ. Π ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Ρ ΡΠ΅Π±Ρ Π΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅!
ΠΡΠΊΠ»ΠΈΠΊΠ°ΠΉΡΡ Π½Π° Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ π
ΠΡΠΈΠ³Π»Π°ΡΠ°Π΅ΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² DevOps, Java, JavaScript Π½Π° ΠΎΡΠΊΡΡΡΡΠ΅ Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ IT-ΠΎΡΠΈΡΠ° Π‘Π±Π΅ΡΠ° Π² Π‘ΠΎΡΠΈ. ΠΡ ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΈΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ Π² ΠΠ½Π΄ΠΈΠΈ, Π²Π½Π΅Π΄ΡΡΠ΅ΠΌ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π±Π°Π½ΠΊΠΈΠ½Π³Π° Π½Π° ΠΈΠ½Π΄ΠΈΠΉΡΠΊΠΈΠΉ ΡΡΠ½ΠΎΠΊ.
Π£ ΡΠ΅Π±Ρ Π΅ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Ρ Π½ΡΠ»Ρ. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ:
βοΈ Π―Π΄ΡΠΎ
βοΈ ΠΡΡ ΡΡΡΡ ΠΈ ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΡ
βοΈ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-Π±Π°Π½ΠΊ ΠΈ Π°Π½ΡΠΈΡΡΠΎΠ΄-ΡΠΈΡΡΠ΅ΠΌΠ°
βοΈ ΠΡΠ΅Π΄ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ
Π ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΡΠΈΠ½ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΡΠ°ΡΡΠΈΠ΅, ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΈ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ.
Π§Π°ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Π ΠΎΡΡΠΈΠΈ, ΡΠ°ΡΡΡ Π² ΠΠ½Π΄ΠΈΠΈ. Π ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Ρ ΡΠ΅Π±Ρ Π΅ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅!
ΠΡΠΊΠ»ΠΈΠΊΠ°ΠΉΡΡ Π½Π° Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ π
β€12π2π₯2
ΠΠΎΠ³Π΄Π° ΡΡΠΎΠΈΡ Π²ΡΠ±ΡΠ°ΡΡ char[] Π²ΠΌΠ΅ΡΡΠΎ String?
ΠΠ΅ΡΠ²Π°Ρ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π° β ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ, ΠΈ ΠΎΠ½ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΌΠ°ΡΡΠΈΠ². ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΈΡ Π² Π²ΠΈΠ΄Π΅ offset-ΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° (ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡΠ°Π½ΡΡΠ΅ Π² ΡΠ°ΠΌΠΎΠΌ String).
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΠΎ ΠΈ ΡΠ²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. JVM ΡΠΎΠΆΠ΅ ΠΏΡΠΈΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΡΡΠΈΠ»ΠΈΡ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠΎΠΊ (Π²ΡΠΎΠ΄Π΅ ΠΈΠ½ΡΠ΅ΡΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅ Π²Π°ΡΠΈΡ .
ΠΡΠΎΡΠ°Ρ, ΠΌΠ΅Π½Π΅Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π° β Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ. Π‘ΡΡΠΎΠΊΠΈ Π² Java ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½Ρ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΡΠΈΠΏΠ° String, ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ± Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π°ΡΠ°ΠΊΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π°ΠΊΠ΅Ρ ΡΠ²ΠΎΠΈΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² heap dump.
ΠΡΠ»ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Β«Π·Π°Π½ΡΠ»ΠΈΡΡΒ» Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ΅ΡΠ²Π°Ρ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π° β ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ, ΠΈ ΠΎΠ½ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΌΠ°ΡΡΠΈΠ². ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌΠΈ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΈΡ Π² Π²ΠΈΠ΄Π΅ offset-ΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° (ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡΠ°Π½ΡΡΠ΅ Π² ΡΠ°ΠΌΠΎΠΌ String).
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΠΎ ΠΈ ΡΠ²ΠΎΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. JVM ΡΠΎΠΆΠ΅ ΠΏΡΠΈΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΡΡΠΈΠ»ΠΈΡ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΡΡΠΎΠΊ (Π²ΡΠΎΠ΄Π΅ ΠΈΠ½ΡΠ΅ΡΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅ Π²Π°ΡΠΈΡ .
ΠΡΠΎΡΠ°Ρ, ΠΌΠ΅Π½Π΅Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π° β Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ. Π‘ΡΡΠΎΠΊΠΈ Π² Java ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½Ρ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΡΠΈΠΏΠ° String, ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ± Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π°ΡΠ°ΠΊΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π°ΠΊΠ΅Ρ ΡΠ²ΠΎΠΈΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² heap dump.
ΠΡΠ»ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Β«Π·Π°Π½ΡΠ»ΠΈΡΡΒ» Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
π11π₯3β€2π2π1
βοΈ ΠΠ°ΠΊ ΡΡΠ°ΡΡ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π½Π° Java Π² 2024?
ΠΡΠ²ΠΎΠΉΡΠ΅ JVM ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΡΡΡΠ΅ Β«Java Developer. AdvancedΒ» ΠΎΡ OTUS.
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅:
ΠΡΠ΅ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ Π½Π° Π²Π°ΠΊΠ°Π½ΡΠ½ΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π² ΠΊΡΡΠΏΠ½ΡΡ ΡΠΎΡΡΠΈΠΉΡΠΊΠΈΡ ΠΈ ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ .
Π‘ΡΠ°ΡΡΡΠ΅ΠΌ ΡΠΆΠ΅ 28 ΠΌΠ°ΡΡΠ°!
π Π£Π·Π½Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠ΅ΡΡ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π½Ρ ΠΏΠΎΠΏΠ°ΡΡΡ Π² Π³ΡΡΠΏΠΏΡ: https://otus.pw/fP3l/
ΠΡΠ²ΠΎΠΉΡΠ΅ JVM ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΡΡΡΠ΅ Β«Java Developer. AdvancedΒ» ΠΎΡ OTUS.
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅:
- ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ, ΡΠ°Π·Π²ΡΡΠ½ΡΡΡΠΌΠΈ Π² Kubernetes Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠ΅ΡΡΠΈΠΊ Π½Π° Π΄Π°ΡΠ±ΠΎΡΠ΄Π΅ Grafana;
- ΠΏΠΎΠ΄Π°ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ½ΡΡΡ Π΄Π°ΠΌΠΏ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΎΠΏΠΈΡΠ°ΡΡ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅;
- Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ.
ΠΡΠ΅ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ Π½Π° Π²Π°ΠΊΠ°Π½ΡΠ½ΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π² ΠΊΡΡΠΏΠ½ΡΡ ΡΠΎΡΡΠΈΠΉΡΠΊΠΈΡ ΠΈ ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ .
Π‘ΡΠ°ΡΡΡΠ΅ΠΌ ΡΠΆΠ΅ 28 ΠΌΠ°ΡΡΠ°!
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576Please open Telegram to view this post
VIEW IN TELEGRAM
π3π₯1
Π ΡΡΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ jar ΠΈ war?
jar ΠΈ war β ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²-Π°ΡΡ ΠΈΠ²ΠΎΠ² Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎΠΌΠ΅ Π½ΠΈΡ Π΅ΡΡΡ Π΅ΡΠ΅ ΡΡΠ΅ΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ, ear. ΠΡΠ΅ ΡΡΠΈ ΡΠΎΡΠΌΠ°ΡΡ β Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΎΡΡΠΎ zip-Π°ΡΡ ΠΈΠ²Ρ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°ΡΡΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠ°ΠΉΠ» Π² .zip, ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ, ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ Π²Π½ΡΡΡΠΈ.
JAR β Java Archive. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°ΠΉΠ»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ΅ΡΡΡΡΡ, Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Ρ. ΠΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΡΠΊΡ Π²Ρ ΠΎΠ΄Π°, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π»Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ java.
WAR β Web Archive. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΡ ΠΆΠ΅ ΡΡΡΡΠΊΡΡΡΡ, Π½ΠΎ Π΄ΡΡΠ³ΡΡ ΡΠΎΠ»Ρ β Π°ΡΡ ΠΈΠ² JavaEE web-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ±ΡΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ jar-Ρ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, JSP, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΡΠΎΠ½Ρ-ΡΠ½Π΄Π°, ΠΈ ΠΌΠ΅ΡΠ°-ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠ΅ΡΠ²Π»Π΅Ρ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° (web.xml). Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½Ρ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅ΡΠ²Π»Π΅Ρ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Π‘ ΠΏΡΠΈΡ ΠΎΠ΄ΠΎΠΌ Servlet API 3.0 ΠΈ embedded-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², Π²ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΡΠΈΠ½ΡΡΠΎ Π·Π°ΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ ΠΈ web-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠ΅ jar (ΠΠΎΠ·ΡΠ½Π³ Spring Boot: Make jar, not war).
EAR β Enterprise Archive. ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π½Π°ΡΠ°Π²ΡΠΈΡ ΠΊΠ°ΡΡΠ΅ΡΡ ΡΠΆΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π° Spring Framework, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΊΠ·ΠΎΡΠΈΡΠ½ΡΠΌ. ΠΡΠΎ ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠ΅ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΠΎΠ΅ JavaEE ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½ΡΠ° ΠΈ JavaEE ΠΌΠΎΠ΄ΡΠ»ΠΈ (Π²Π΅Π±-ΠΌΠΎΠ΄ΡΠ»ΠΈ, EJB, ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π°Π΄Π°ΠΏΡΠ΅ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ²). ΠΠ΅ΠΏΠ»ΠΎΠΈΡΡΡ Π² JavaEE Application Server.
ΠΡΠ΅ ΡΡΠΈ ΡΠΈΠΏΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ jar ΠΈΠ· JDK.
jar ΠΈ war β ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²-Π°ΡΡ ΠΈΠ²ΠΎΠ² Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎΠΌΠ΅ Π½ΠΈΡ Π΅ΡΡΡ Π΅ΡΠ΅ ΡΡΠ΅ΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ, ear. ΠΡΠ΅ ΡΡΠΈ ΡΠΎΡΠΌΠ°ΡΡ β Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΎΡΡΠΎ zip-Π°ΡΡ ΠΈΠ²Ρ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°ΡΡΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠ°ΠΉΠ» Π² .zip, ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ, ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ Π²Π½ΡΡΡΠΈ.
JAR β Java Archive. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°ΠΉΠ»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ΅ΡΡΡΡΡ, Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Ρ. ΠΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΡΠΊΡ Π²Ρ ΠΎΠ΄Π°, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π»Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ java.
WAR β Web Archive. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΡ ΠΆΠ΅ ΡΡΡΡΠΊΡΡΡΡ, Π½ΠΎ Π΄ΡΡΠ³ΡΡ ΡΠΎΠ»Ρ β Π°ΡΡ ΠΈΠ² JavaEE web-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. ΠΠ±ΡΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ jar-Ρ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, JSP, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΡΠΎΠ½Ρ-ΡΠ½Π΄Π°, ΠΈ ΠΌΠ΅ΡΠ°-ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠ΅ΡΠ²Π»Π΅Ρ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° (web.xml). Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½Ρ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅ΡΠ²Π»Π΅Ρ-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ. Π‘ ΠΏΡΠΈΡ ΠΎΠ΄ΠΎΠΌ Servlet API 3.0 ΠΈ embedded-ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², Π²ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΡΠΈΠ½ΡΡΠΎ Π·Π°ΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ ΠΈ web-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π² ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠ΅ jar (ΠΠΎΠ·ΡΠ½Π³ Spring Boot: Make jar, not war).
EAR β Enterprise Archive. ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π½Π°ΡΠ°Π²ΡΠΈΡ ΠΊΠ°ΡΡΠ΅ΡΡ ΡΠΆΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π° Spring Framework, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΊΠ·ΠΎΡΠΈΡΠ½ΡΠΌ. ΠΡΠΎ ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠ΅ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΠΎΠ΅ JavaEE ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ Π΄Π΅ΠΏΠ»ΠΎΠΉΠΌΠ΅Π½ΡΠ° ΠΈ JavaEE ΠΌΠΎΠ΄ΡΠ»ΠΈ (Π²Π΅Π±-ΠΌΠΎΠ΄ΡΠ»ΠΈ, EJB, ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π°Π΄Π°ΠΏΡΠ΅ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ²). ΠΠ΅ΠΏΠ»ΠΎΠΈΡΡΡ Π² JavaEE Application Server.
ΠΡΠ΅ ΡΡΠΈ ΡΠΈΠΏΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ jar ΠΈΠ· JDK.
β€13π7π₯3
ΠΠΎΠ΄Π±ΠΎΡΠΊΠ° Π³ΠΎΡΡΡΠΈΡ
Π²Π°ΠΊΠ°Π½ΡΠΈΠΉ Π² Ozon Π΄Π»Ρ Senior Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²
π΅ Π‘ΡΠ°ΡΡΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Java, ΠΠ΅ΡΡ Π½ΠΈΠΉ ΠΏΠΎΠΈΡΠΊ
π΅ Π‘ΡΠ°ΡΡΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Java, GPU ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ
π΅ Π‘ΡΠ°ΡΡΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Kotlin, ML ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°
ΠΠΎΡΠ΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΈΠ΄ΡΠΈ Π² Ozon: Π·Π΄Π΅ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ ΠΌΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Ρ ΠΌΠΈΡΠΎΠΌ Data Science.
Π§ΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ:
ΠΠΎΡΡΠΎΠΉΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π·ΠΏ
Π£Π΄Π°Π»ΡΠ½ΠΊΡ ΠΈΠ· Π»ΡΠ±ΠΎΠΉ ΡΠΎΡΠΊΠΈ / Π³ΠΈΠ±ΡΠΈΠ΄ / ΠΎΡΠΈΡ
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π΅Π»Π°ΡΡ ΠΊΠ»Π°ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Π½Π° ΡΡΠ½ΠΊΠ΅ e-com
Π‘ΠΈΡΡΠ΅ΠΌΡ ΠΌΠ΅Π½ΡΠΎΡΡΡΠ²Π°, Π°Π΄Π°ΠΏΡΠ°ΡΠΈΠΈ, ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
Π‘ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠΊΡΠΏΠ΅ΡΡΠ½ΠΎΠ΅ ΠΊΠΎΠΌΠΌΡΡΠ½ΠΈΡΠΈ: ΠΌΠΈΡΠ°ΠΏΡ, Π±Π»ΠΎΠ³ΠΈ, ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΡΡ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΡΠ΅Π½Π΄Π° ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ DevRel-ΠΎΠ².
π΅ Π‘ΡΠ°ΡΡΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Java, ΠΠ΅ΡΡ Π½ΠΈΠΉ ΠΏΠΎΠΈΡΠΊ
π΅ Π‘ΡΠ°ΡΡΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Java, GPU ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ
π΅ Π‘ΡΠ°ΡΡΠΈΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Kotlin, ML ΠΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°
ΠΠΎΡΠ΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΈΠ΄ΡΠΈ Π² Ozon: Π·Π΄Π΅ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ ΠΌΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Ρ ΠΌΠΈΡΠΎΠΌ Data Science.
Π§ΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ:
ΠΠΎΡΡΠΎΠΉΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π·ΠΏ
Π£Π΄Π°Π»ΡΠ½ΠΊΡ ΠΈΠ· Π»ΡΠ±ΠΎΠΉ ΡΠΎΡΠΊΠΈ / Π³ΠΈΠ±ΡΠΈΠ΄ / ΠΎΡΠΈΡ
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π΅Π»Π°ΡΡ ΠΊΠ»Π°ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Π½Π° ΡΡΠ½ΠΊΠ΅ e-com
Π‘ΠΈΡΡΠ΅ΠΌΡ ΠΌΠ΅Π½ΡΠΎΡΡΡΠ²Π°, Π°Π΄Π°ΠΏΡΠ°ΡΠΈΠΈ, ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
Π‘ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠΊΡΠΏΠ΅ΡΡΠ½ΠΎΠ΅ ΠΊΠΎΠΌΠΌΡΡΠ½ΠΈΡΠΈ: ΠΌΠΈΡΠ°ΠΏΡ, Π±Π»ΠΎΠ³ΠΈ, ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΡΡ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΡΠ΅Π½Π΄Π° ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ DevRel-ΠΎΠ².
π3π2π₯1
ΠΠ°ΠΊ ΠΎΡΠ»Π°Π΄ΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?
ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½Π΅, Π΅Π³ΠΎ ΠΏΠ°ΡΠ·Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ, Π° Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ° Π½Π΅Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Ρ ΠΎΡΡΡ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠ»Π°Π΄ΠΊΠΈ β Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ remote debug. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ JDWP. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΏΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ° jdb, ΠΈΠ»ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π² IDE.
Π JDK ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Java Mission Control ΠΈ JConsole ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π΅Π³ΠΎ Π·Π΄ΠΎΡΠΎΠ²ΡΡ. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅Π½ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ JVM, Π΄Π»Ρ HotSpot ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΠ½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ², Π²ΡΠ΅Π³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΎΠ΄ΠΈΠ½ β Π»ΠΎΠ³Π°Ρ . ΠΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, Π½ΠΈ ΠΎΠ΄ΠΈΠ½ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π²Π°ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠ±ΡΡΠΈΡΡ , ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΡΠΈ Π»ΡΠ±ΠΎΠΌ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ.
Π ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΊΡ Java Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ Π»ΠΎΠ³Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ java.util.logging, ΠΏΠΎΠ·ΠΆΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° Π½ΡΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅. Π’Π°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ΄ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ: Log4j, SLF4J, Logback.
ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½Π΅, Π΅Π³ΠΎ ΠΏΠ°ΡΠ·Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ, Π° Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ° Π½Π΅Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Ρ ΠΎΡΡΡ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠ»Π°Π΄ΠΊΠΈ β Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ remote debug. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ JDWP. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΏΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ° jdb, ΠΈΠ»ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π² IDE.
Π JDK ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Java Mission Control ΠΈ JConsole ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π΅Π³ΠΎ Π·Π΄ΠΎΡΠΎΠ²ΡΡ. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅Π½ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ JVM, Π΄Π»Ρ HotSpot ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΠ½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ², Π²ΡΠ΅Π³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΎΠ΄ΠΈΠ½ β Π»ΠΎΠ³Π°Ρ . ΠΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, Π½ΠΈ ΠΎΠ΄ΠΈΠ½ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π²Π°ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠ±ΡΡΠΈΡΡ , ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΡΠΈ Π»ΡΠ±ΠΎΠΌ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ.
Π ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΊΡ Java Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ Π»ΠΎΠ³Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ java.util.logging, ΠΏΠΎΠ·ΠΆΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° Π½ΡΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅. Π’Π°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ΄ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ: Log4j, SLF4J, Logback.
β‘6π1
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ ΠΎΡΠΊΡΡΡΠΎΠΌΡ ΡΡΠΎΠΊΡ Β«ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ ArmeriaΒ»
ΠΠ° ΡΡΠΎΠΊΠ΅ ΠΌΡ ΠΏΠΎΠ³ΡΡΠ·ΠΈΠΌΡΡ Π² ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Armeria! Π£Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈ ΠΊΠ°ΠΊ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π²ΠΌΠ΅ΡΡΠ΅ Ρ SpringBoot.
Π£ΡΠΎΠΊ ΠΏΠΎΡΠ²ΡΡΠ΅Π½ ΠΊΡΡΡΡ Β«Java Developer. ProfessionalΒ» ΠΎΡ OTUS, Π³Π΄Π΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΠ²ΠΎΠΈ Π·Π½Π°Π½ΠΈΡ ΠΈ Π½Π°Π²ΡΠΊΠΈ Π² Java ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, ΠΈ Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΏΠ΅ΡΠ΅Π΄ΠΎΠ²ΡΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Armeria.
π₯ ΠΠ΅ ΡΠΏΡΡΡΠΈΡΠ΅ ΡΠ°Π½Ρ ΠΏΠΎΡΡΠ°ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΈ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΡ!
π ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠ΅ΡΡ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΡΡΠΎΠΊ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡ:
https://otus.pw/yXtg/
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576Please open Telegram to view this post
VIEW IN TELEGRAM
π4π₯1
ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ WEB-INF, Π° ΠΊΠΎΠ³Π΄Π° META-INF?
Π ΠΊΠΎΡΠ½Π΅ Π°ΡΡ ΠΈΠ²Π° java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ WEB-INF ΠΈ META-INF. ΠΠ±Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ ΡΠ°Π½ΡΡ Π² ΡΠ΅Π±Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΎΠ±ΡΡΠ½ΠΎ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ Π²ΠΈΠ΄Π΅: yaml, xml, json, ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ.
META-INF ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π°ΡΡ ΠΈΠ²Π°Ρ Π²ΡΠ΅Ρ ΡΠΈΠΏΠΎΠ². ΠΠ»Π°Π²Π½ΡΠΉ ΡΠ°ΠΉΠ» ΡΡΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ β MANIFEST.MF, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΡΠ°Π½Π΅Π΅. Π’Π°ΠΌ ΠΆΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ
β’ ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ² SPI;
β’ ΠΠΎΠ΄ΠΏΠΈΡΡ Π°ΡΡ ΠΈΠ²Π°: ΡΠ°ΠΉΠ»Ρ .SF, .DSA, .RSA;
β’ INDEX.LIST Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°ΠΌΠΈ ΠΎ ΠΌΠ΅ΡΡΠΎΠ½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°.
ΠΠ½ΠΎΠ³Π΄Π° (Π½Π΅ ΡΠ°ΡΡΠΎ) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΡΠ΄Π° ΡΠ²ΠΎΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² classpath ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Π° Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅.
WEB-INF ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² web-Π°ΡΡ ΠΈΠ²Π°Ρ (.war). ΠΠ½Π° Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ, Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅Ρ META-INF. Π Π½Π΅ΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ:
β’ ΠΠ»Π°Π²Π½ΡΠΉ ΡΠ°ΠΉΠ» web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ web.xml;
β’ ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΡΠ΅Π³ΠΎΠ² .TLD;
β’ ΠΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ classes/ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
β’ ΠΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ lib/ Ρ .jar-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ;
β’ ΠΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ tag/ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΡΠ΅Π³ΠΎΠ².
Π ΠΊΠΎΡΠ½Π΅ Π°ΡΡ ΠΈΠ²Π° java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ WEB-INF ΠΈ META-INF. ΠΠ±Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ ΡΠ°Π½ΡΡ Π² ΡΠ΅Π±Π΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΎΠ±ΡΡΠ½ΠΎ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ Π²ΠΈΠ΄Π΅: yaml, xml, json, ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ.
META-INF ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π°ΡΡ ΠΈΠ²Π°Ρ Π²ΡΠ΅Ρ ΡΠΈΠΏΠΎΠ². ΠΠ»Π°Π²Π½ΡΠΉ ΡΠ°ΠΉΠ» ΡΡΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ β MANIFEST.MF, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΡΠ°Π½Π΅Π΅. Π’Π°ΠΌ ΠΆΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ
β’ ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ² SPI;
β’ ΠΠΎΠ΄ΠΏΠΈΡΡ Π°ΡΡ ΠΈΠ²Π°: ΡΠ°ΠΉΠ»Ρ .SF, .DSA, .RSA;
β’ INDEX.LIST Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°ΠΌΠΈ ΠΎ ΠΌΠ΅ΡΡΠΎΠ½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°.
ΠΠ½ΠΎΠ³Π΄Π° (Π½Π΅ ΡΠ°ΡΡΠΎ) ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΡΠ΄Π° ΡΠ²ΠΎΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² classpath ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Π° Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅.
WEB-INF ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² web-Π°ΡΡ ΠΈΠ²Π°Ρ (.war). ΠΠ½Π° Π½Π΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ, Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅Ρ META-INF. Π Π½Π΅ΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ:
β’ ΠΠ»Π°Π²Π½ΡΠΉ ΡΠ°ΠΉΠ» web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ web.xml;
β’ ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΡΠ΅Π³ΠΎΠ² .TLD;
β’ ΠΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ classes/ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ web-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
β’ ΠΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ lib/ Ρ .jar-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ;
β’ ΠΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ tag/ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΡΠ΅Π³ΠΎΠ².
π10
ΠΡΠ²ΠΎΠΉΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΠ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΈ ΡΠ°ΡΡΠΈΡΡΡΠ΅ ΡΠ²ΠΎΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² IT.
ΠΠ°ΡΡΠΈΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ SOLID Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π²ΡΠ΅Π³ΠΎ Π·Π° 4 ΠΌΠ΅ΡΡΡΠ° ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΎΠΏΡΡΠ½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ² Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΡΡΡΠ΅ Β«ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡΒ» ΠΎΡ OTUS.
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π²Ρ:
β«οΈΠΏΠΎΠΉΠΌΠ΅ΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ ΠΈ ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ ΡΠΈΡΡΡΠΉ ΠΊΠΎΠ΄;
β«οΈΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ΡΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ;
β«οΈΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ Π½Π° ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ Π³ΡΠ΅ΠΉΠ΄Π°, Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ ΠΈ Π΄ΠΎΡ ΠΎΠ΄Π°.
ΠΠ»Ρ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ:
β«οΈΠ·Π½Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: C++, C#, Java, Kotlin, PHP ΠΈΠ»ΠΈ Python;
β«οΈΠ·Π½Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΠΠ
β‘οΈ ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ Π²ΡΡΡΠΏΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΏΠ°ΡΡΡ Π½Π° ΠΊΡΡΡ ΠΏΠΎ ΡΠΏΠ΅Ρ.ΡΠ΅Π½Π΅ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΡΡΡ ΠΏΠΎ Git Π² Π·Π°ΠΏΠΈΡΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ: ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΡ
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576
ΠΠ°ΡΡΠΈΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ SOLID Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π²ΡΠ΅Π³ΠΎ Π·Π° 4 ΠΌΠ΅ΡΡΡΠ° ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΎΠΏΡΡΠ½ΡΡ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ² Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΡΡΡΠ΅ Β«ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡΒ» ΠΎΡ OTUS.
ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π²Ρ:
β«οΈΠΏΠΎΠΉΠΌΠ΅ΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ ΠΈ ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ ΡΠΈΡΡΡΠΉ ΠΊΠΎΠ΄;
β«οΈΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ΡΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ;
β«οΈΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅ΡΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ Π½Π° ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ Π³ΡΠ΅ΠΉΠ΄Π°, Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ ΠΈ Π΄ΠΎΡ ΠΎΠ΄Π°.
ΠΠ»Ρ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ:
β«οΈΠ·Π½Π°Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: C++, C#, Java, Kotlin, PHP ΠΈΠ»ΠΈ Python;
β«οΈΠ·Π½Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΠΠ
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
π4π₯°2π₯1
ΠΠ½ΠΈ ΡΠΆΠ΅ ΡΡΠ΅Π΄ΠΈ Π½Π°Ρ: ΡΠΎΠ±ΠΎΠΏΡΠ΅Π»Ρ, ΡΠΎΠ±ΠΎΡΠΎΠΊΠΎΠ»Ρ ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΎΠ±ΠΎΡΡΠ±ΠΊΠΈ Π³ΡΠΏΠΏΠΈ.
ΠΠ°ΡΠ΅ΠΌ Π²ΡΡ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠ°ΡΡ ΠΏΠΎΠ΄Π²ΠΎΡ Π°, ΡΠΈΡΠ°ΠΉΡΠ΅ Π² ΠΊΠ°Π½Π°Π»Π΅ Π€ΠΎΠ½ ΠΎΡ ΠΠ΅Π³Π°Π€ΠΎΠ½Π°. Π’Π°ΠΌ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΠΊΡΠ΄Π° Π½Π°Ρ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π° ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ Π΅ΡΠ΅ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΡ Telegram Premium ΡΠ°Π·ΡΠ³ΡΡΠ²Π°ΡΡ.
erid: LjN8JwbUv
ΠΠ°ΡΠ΅ΠΌ Π²ΡΡ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠ°ΡΡ ΠΏΠΎΠ΄Π²ΠΎΡ Π°, ΡΠΈΡΠ°ΠΉΡΠ΅ Π² ΠΊΠ°Π½Π°Π»Π΅ Π€ΠΎΠ½ ΠΎΡ ΠΠ΅Π³Π°Π€ΠΎΠ½Π°. Π’Π°ΠΌ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΠΊΡΠ΄Π° Π½Π°Ρ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π° ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ Π΅ΡΠ΅ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΡ Telegram Premium ΡΠ°Π·ΡΠ³ΡΡΠ²Π°ΡΡ.
erid: LjN8JwbUv
β€4
ΠΠ°ΠΊ Π²ΡΠ·Π²Π°ΡΡ Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄?
ΠΠ°ΡΠΈΠ²Π½ΡΠΌ (ΠΈΠ»ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌ) ΠΊΠΎΠ΄ΠΎΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΊΠΎΠ΄. Π Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ΄ Π½Π° C++. Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ½ΠΎ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π² Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊ β Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π΅Π³ΠΎ Π±Π°ΠΉΡΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅. ΠΠΎ ΠΏΠΎΡΠΎΠΉ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ Π³ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΠΈΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΠ‘.
ΠΡΠ»ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (.dll Π² Windows, .so Π² Unix), Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°:
JNI (Java Native Interface) β ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π‘ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π² Java ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ΅ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π±Π΅Π· ΡΠ΅Π»Π°, Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΡΠ°ΡΡ ΠΈΠ· Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΠ°ΠΉΡΠ΅ Π½Π° Ρ Π°Π±ΡΠ΅.
JNA (Java Native Access) β ΡΡΠΎΡΠΎΠ½Π½ΡΡ open-source Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΡΡΠ°Π²ΡΠ°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π΄Π΅-ΡΠ°ΠΊΡΠΎ. ΠΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΡΠ΅ΠΌ JNI, Π½ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ JNI Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π²ΡΠ·ΠΊΠΈ. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π²ΡΠ·ΠΎΠ²Π° ΠΈΠ· Java ΠΊΠΎΠ΄Π° ΡΡΠ½ΠΊΡΠΈΠΉ Π±ΠΈΠ½Π°ΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° Π²ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ.
ΠΠΎΠ³Π΄Π° Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ (.exe Π² Windows, ΡΠ°ΠΉΠ» Ρ ΠΏΡΠ°Π²ΠΎΠΌ x Π² Unix), ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΡΠ°Π½Π΅Π΅. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ ΡΡΠΎΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΡΠΎ Π»ΡΡΡΠ΅ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΈ Π²ΡΠ±ΡΠ°ΡΡ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ±ΠΎΡΠΊΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ.
ΠΠ°ΡΠΈΠ²Π½ΡΠΌ (ΠΈΠ»ΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌ) ΠΊΠΎΠ΄ΠΎΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΊΠΎΠ΄. Π Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ΄ Π½Π° C++. Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΠΎΠ½ΠΎ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π² Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊ β Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π΅Π³ΠΎ Π±Π°ΠΉΡΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅. ΠΠΎ ΠΏΠΎΡΠΎΠΉ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ Π³ΠΎΡΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΠΈΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΠ‘.
ΠΡΠ»ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (.dll Π² Windows, .so Π² Unix), Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°:
JNI (Java Native Interface) β ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π‘ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π² Java ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ΅ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π±Π΅Π· ΡΠ΅Π»Π°, Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΡΠ°ΡΡ ΠΈΠ· Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΠ°ΠΉΡΠ΅ Π½Π° Ρ Π°Π±ΡΠ΅.
JNA (Java Native Access) β ΡΡΠΎΡΠΎΠ½Π½ΡΡ open-source Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΡΡΠ°Π²ΡΠ°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π΄Π΅-ΡΠ°ΠΊΡΠΎ. ΠΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΡΠ΅ΠΌ JNI, Π½ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ JNI Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π²ΡΠ·ΠΊΠΈ. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π²ΡΠ·ΠΎΠ²Π° ΠΈΠ· Java ΠΊΠΎΠ΄Π° ΡΡΠ½ΠΊΡΠΈΠΉ Π±ΠΈΠ½Π°ΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° Π²ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ.
ΠΠΎΠ³Π΄Π° Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ (.exe Π² Windows, ΡΠ°ΠΉΠ» Ρ ΠΏΡΠ°Π²ΠΎΠΌ x Π² Unix), ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΡΠ°Π½Π΅Π΅. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ ΡΡΠΎΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΡΠΎ Π»ΡΡΡΠ΅ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΈ Π²ΡΠ±ΡΠ°ΡΡ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ±ΠΎΡΠΊΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ.
π8π₯4β€2π1
ΠΠ°ΠΊ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡΡ ΠΊ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ?
Π£Π·Π½Π°ΠΉΡΠ΅ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΎΠΊΠ΅ Β«ΠΠ°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° ΠΈ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ HAProxyΒ» ΠΎΡ OTUS, Π³Π΄Π΅ Π²Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΎΠΏΡΡΠ½ΡΠΌ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠΌ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅:
1. ΠΠ°ΠΊ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ TCP / UDP Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ
2. ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ haproxy
3. ΠΡΠ²Π΅ΡΡ Π½Π° Π²ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
ΠΠ°Π½ΡΡΠΈΠ΅ ΠΏΡΠΎΠΉΠ΄ΡΡ 28 ΠΌΠ°ΡΡΠ° Π² 20:00 ΠΌΡΠΊ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΡΠΎΡΠ΅Π½ΠΎ ΠΊ ΡΡΠ°ΡΡΡ ΠΊΡΡΡΠ° Β«Highload ArchitectΒ». ΠΠΎΡΡΡΠΏΠ½Π° ΡΠ°ΡΡΡΠΎΡΠΊΠ° Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅!
ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠ΅ΡΡ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΡΡΠΎΠ±Ρ Π·Π°Π½ΡΡΡ ΠΌΠ΅ΡΡΠΎ Π½Π° ΠΎΡΠΊΡΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡ: https://otus.pw/Zarv/
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576, www.otus.ru
Π£Π·Π½Π°ΠΉΡΠ΅ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΎΠΊΠ΅ Β«ΠΠ°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° ΠΈ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ HAProxyΒ» ΠΎΡ OTUS, Π³Π΄Π΅ Π²Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΎΠΏΡΡΠ½ΡΠΌ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠΌ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅:
1. ΠΠ°ΠΊ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ TCP / UDP Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ
2. ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ haproxy
3. ΠΡΠ²Π΅ΡΡ Π½Π° Π²ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
ΠΠ°Π½ΡΡΠΈΠ΅ ΠΏΡΠΎΠΉΠ΄ΡΡ 28 ΠΌΠ°ΡΡΠ° Π² 20:00 ΠΌΡΠΊ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΡΠΎΡΠ΅Π½ΠΎ ΠΊ ΡΡΠ°ΡΡΡ ΠΊΡΡΡΠ° Β«Highload ArchitectΒ». ΠΠΎΡΡΡΠΏΠ½Π° ΡΠ°ΡΡΡΠΎΡΠΊΠ° Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅!
ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠ΅ΡΡ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΡΡΠΎΠ±Ρ Π·Π°Π½ΡΡΡ ΠΌΠ΅ΡΡΠΎ Π½Π° ΠΎΡΠΊΡΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡ: https://otus.pw/Zarv/
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576, www.otus.ru
π₯2β€1π1π1
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΡΠ°ΡΡΠΈ API?
ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ Π² ΡΠΎΡΠΌΠ΅ Π·Π°Π΄Π°ΡΠΈ. ΠΠΎΠ³Π΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΠΊΡΡΠ³Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π½Π° Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ. Π’ΠΎ Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Π²Π΄ΡΡΠ³ ΠΏΡΠΎΠΏΠ°Π΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΈΡ ΡΠ»Π΅Π½Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π΅ Π·Π°Ρ ΠΎΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ. Π’ΠΎΠ³Π΄Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ.
ΠΡΠΎ ΠΌΠ°ΡΡΡΠ°Π±Π½Π°Ρ ΠΈ ΡΠ»ΠΎΠΆΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Π Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ (deprecation).
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ API ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @Deprecated. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΎΠ½Π° Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ, Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎΠ»ΡΡΠΈΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΡΡΠ°ΡΠ΅Π» ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ.
Π Π°Π½Π΅Π΅ ΠΌΡ ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π»ΠΈ ΠΎΠ± ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ @Deprecated. Π‘ΠΎΠ±ΠΈΡΠ°ΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ API, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π΅Π³ΠΎ @Deprecated(forRemoval=true).
ΠΠ±ΡΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΠΏΠ°Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Deprecation policy β Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄Π°ΡΡ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΠΈΠ»ΠΈ Π²Π΅ΡΡΠΈΠΉ) ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ @Deprecated ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π²ΡΡ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½.
ΠΠ»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π² ΠΊΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ deprecated ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ JDK ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠΈΠ»ΠΈΡΡ jdeprscan. Π£ΡΠΈΠ»ΠΈΡΠ° javadoc ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ deprecated-list.html.
ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ Π² ΡΠΎΡΠΌΠ΅ Π·Π°Π΄Π°ΡΠΈ. ΠΠΎΠ³Π΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΠΊΡΡΠ³Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π½Π° Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ. Π’ΠΎ Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Π²Π΄ΡΡΠ³ ΠΏΡΠΎΠΏΠ°Π΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΠΈΡ ΡΠ»Π΅Π½Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π΅ Π·Π°Ρ ΠΎΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ. Π’ΠΎΠ³Π΄Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ.
ΠΡΠΎ ΠΌΠ°ΡΡΡΠ°Π±Π½Π°Ρ ΠΈ ΡΠ»ΠΎΠΆΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Π Π΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ (deprecation).
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ API ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @Deprecated. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΎΠ½Π° Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ, Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎΠ»ΡΡΠΈΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΡΡΠ°ΡΠ΅Π» ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ.
Π Π°Π½Π΅Π΅ ΠΌΡ ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π»ΠΈ ΠΎΠ± ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ @Deprecated. Π‘ΠΎΠ±ΠΈΡΠ°ΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ API, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π΅Π³ΠΎ @Deprecated(forRemoval=true).
ΠΠ±ΡΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΠΏΠ°Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Deprecation policy β Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄Π°ΡΡ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΠΈΠ»ΠΈ Π²Π΅ΡΡΠΈΠΉ) ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ @Deprecated ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π²ΡΡ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½.
ΠΠ»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π² ΠΊΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ deprecated ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ JDK ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠΈΠ»ΠΈΡΡ jdeprscan. Π£ΡΠΈΠ»ΠΈΡΠ° javadoc ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ deprecated-list.html.
π18π₯1
ΠΡΠ²Π΅ΡΠΈΡΡ β ΠΏΡΠΎΠΉΠ΄Π΅ΡΡ Π½Π° ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΠΊΡΡΡ "Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° Spring Framework" ΠΎΡ OTUS ΠΏΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π½Π΅.
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576, www.otus.ruPlease open Telegram to view this post
VIEW IN TELEGRAM
π2π₯2π₯±1
ΠΠ°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ±ΡΠ°ΡΡ?
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠ°Π²ΡΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π΄Π΅-ΡΠ°ΠΊΡΠΎ, Π² Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ:
β’ java.util.Logging ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
β’ Log4j (deprecated)
β’ Logback
β’ Log4j 2
ΠΡΠ΅ ΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΡΠΈ: ΡΡΠΎΠ²Π½ΠΈ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ), ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Ρ ΡΠ½Π΄Π»Π΅ΡΡ (ΠΊΡΠ΄Π° ΠΏΠΈΡΠ°ΡΡ), ΡΠΎΡΠΌΠ°ΡΡ (ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ). Π Π°Π·Π²ΠΈΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π² Π½ΡΠ°Π½ΡΠ°Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· Π½ΠΈΡ ΡΡΠΈΡΡΠ²Π°Π»Π° ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ, ΡΠΎΡ ΡΠ°Π½ΡΡ Π΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°. ΠΠ±ΡΡΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ°ΠΌΡΠ΅ ΡΠ²Π΅ΠΆΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ β Logback ΠΈ Log4j 2.
ΠΠ»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ-ΡΠ°ΡΠ°Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄ ΠΎΠ±ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
β’ SLF4j
β’ Apache Commons Logging (JCL)
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ bridge-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ½ΠΈ ΠΌΠ°ΡΠΊΠΈΡΡΡΡ ΠΎΠ΄Π½Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄ΡΡΠ³ΠΎΠΉ. Π‘ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ°ΡΠ°Π΄ΠΎΠ², ΠΈΠ»ΠΈ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π²ΠΎΠ²ΡΠ΅ Π±Π΅Π· ΡΠ°ΡΠ°Π΄ΠΎΠ².
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠ°Π²ΡΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π΄Π΅-ΡΠ°ΠΊΡΠΎ, Π² Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ:
β’ java.util.Logging ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
β’ Log4j (deprecated)
β’ Logback
β’ Log4j 2
ΠΡΠ΅ ΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΡΠΈ: ΡΡΠΎΠ²Π½ΠΈ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ), ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Ρ ΡΠ½Π΄Π»Π΅ΡΡ (ΠΊΡΠ΄Π° ΠΏΠΈΡΠ°ΡΡ), ΡΠΎΡΠΌΠ°ΡΡ (ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ). Π Π°Π·Π²ΠΈΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π² Π½ΡΠ°Π½ΡΠ°Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· Π½ΠΈΡ ΡΡΠΈΡΡΠ²Π°Π»Π° ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ, ΡΠΎΡ ΡΠ°Π½ΡΡ Π΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°. ΠΠ±ΡΡΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ°ΠΌΡΠ΅ ΡΠ²Π΅ΠΆΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ β Logback ΠΈ Log4j 2.
ΠΠ»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ-ΡΠ°ΡΠ°Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄ ΠΎΠ±ΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
β’ SLF4j
β’ Apache Commons Logging (JCL)
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ bridge-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ½ΠΈ ΠΌΠ°ΡΠΊΠΈΡΡΡΡ ΠΎΠ΄Π½Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄ΡΡΠ³ΠΎΠΉ. Π‘ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ°ΡΠ°Π΄ΠΎΠ², ΠΈΠ»ΠΈ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π²ΠΎΠ²ΡΠ΅ Π±Π΅Π· ΡΠ°ΡΠ°Π΄ΠΎΠ².
π₯16π1
3, 2 β¦ ΠΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π·Π΄Π΅ΡΡ.‡οΈ
ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ 2 Π½Π΅Π΄Π΅Π»Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ Java ΠΈ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π»ΠΈ Π²Π°ΠΌ ΡΡΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
ΠΠ΅ ΠΎΠ±Π΅ΡΠ°Π΅ΠΌ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π»Π΅Π³ΠΊΠΎ, Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈ Π½Π΅Π΄ΠΎΡΠΎΠ³ΠΎ (Π²ΡΠ΅Π³ΠΎ 990 ΡΡΠ±Π»Π΅ΠΉ!) β Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΠΌ.
Π Π°ΡΠΊΠ»Π°Π΄ ΡΠ°ΠΊΠΎΠΉ: ΠΌΡ Π΄Π°Π΅ΠΌ Π²Π°ΠΌ Π±Π°Π·Ρ β Π±ΠΎΠ»ΡΡΠ΅ 60 ΡΡΠΎΠΊΠΎΠ², Π²Π΅Π±ΠΈΠ½Π°ΡΡ, Π»Π°ΠΉΠ²ΠΊΠΎΠ΄ΠΈΠ½Π³, Π° Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°Π΅ΡΠ΅ β Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°ΠΉΡΠ΅ :) Π ΡΠ΄ΠΎΠΌ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΠ°Π²Π½ΠΈΠΊ, Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π»ΡΠ±ΠΎΠΉ Π²Π°Ρ Π²ΠΎΠΏΡΠΎΡ.
β° Π‘ΡΠ°ΡΡ ΠΊΡΡΡΠ° ΡΠΆΠ΅ 4 Π°ΠΏΡΠ΅Π»Ρ, ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ!
ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ 2 Π½Π΅Π΄Π΅Π»Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ Java ΠΈ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π»ΠΈ Π²Π°ΠΌ ΡΡΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
ΠΠ΅ ΠΎΠ±Π΅ΡΠ°Π΅ΠΌ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π»Π΅Π³ΠΊΠΎ, Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈ Π½Π΅Π΄ΠΎΡΠΎΠ³ΠΎ (Π²ΡΠ΅Π³ΠΎ 990 ΡΡΠ±Π»Π΅ΠΉ!) β Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΠΌ.
Π Π°ΡΠΊΠ»Π°Π΄ ΡΠ°ΠΊΠΎΠΉ: ΠΌΡ Π΄Π°Π΅ΠΌ Π²Π°ΠΌ Π±Π°Π·Ρ β Π±ΠΎΠ»ΡΡΠ΅ 60 ΡΡΠΎΠΊΠΎΠ², Π²Π΅Π±ΠΈΠ½Π°ΡΡ, Π»Π°ΠΉΠ²ΠΊΠΎΠ΄ΠΈΠ½Π³, Π° Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°Π΅ΡΠ΅ β Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°ΠΉΡΠ΅ :) Π ΡΠ΄ΠΎΠΌ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ Π½Π°ΡΡΠ°Π²Π½ΠΈΠΊ, Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π»ΡΠ±ΠΎΠΉ Π²Π°Ρ Π²ΠΎΠΏΡΠΎΡ.
β° Π‘ΡΠ°ΡΡ ΠΊΡΡΡΠ° ΡΠΆΠ΅ 4 Π°ΠΏΡΠ΅Π»Ρ, ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ!
π4π₯1
ΠΠ°ΠΊ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°?
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ ΠΆΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π»ΡΡΡΠ΅Π΅ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π³ΠΎΡΠΎΠ²ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π²ΡΠ±ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ ΡΠ΅ΡΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅. Π’Π°ΠΊΠΈΠ΅ ΡΠ΅ΡΡΡ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ benchmark.
ΠΠ΅ΡΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π² Π³ΠΎΠ»ΠΎΠ²Ρ β ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π΄ΠΎ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΡΠ»ΠΎ. Π£ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π΅ΡΡΡ ΡΡΠ΄ Π½ΡΠ°Π½ΡΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΌΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ. Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΎΡ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Π±ΡΠ΄Π΅Ρ Β«ΠΏΡΠΎΠ³ΡΠ΅ΡΠΎΠΉΒ»: Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΊΡΡΠΈ, ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ JIT-ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π³ΠΎΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΠΏΠ°ΠΌΡΡΡ Π½Π°ΠΏΠΎΠ»Π½ΠΈΡΡΡ ΠΌΡΡΠΎΡΠΎΠΌ.
ΠΠ°ΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄ΠΎΠ»Π³ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ: Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π½Π° ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠΎΠΌ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΡΠ΅Π½Π΄Π΅. ΠΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΡΡΠΊΠΎΠ² Java ΠΊΠΎΠ΄Π° (Π² ΠΌΠΈΠΊΡΠΎΠ±Π΅Π½ΡΠΌΠ°ΡΠΊΠ°Ρ ) Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ Π½ΡΠ°Π½ΡΡ Π²Π½ΠΎΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
Π‘Π°ΠΌΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈΠ· JDK, JMH. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅Π³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π° ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @Benchmark. Π’Π΅ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ jar-ΡΠ°ΠΉΠ»Π°, Π»ΠΈΠ±ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠΎΠ³ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ ΠΆΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π»ΡΡΡΠ΅Π΅ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π³ΠΎΡΠΎΠ²ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π²ΡΠ±ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ ΡΠ΅ΡΡΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅. Π’Π°ΠΊΠΈΠ΅ ΡΠ΅ΡΡΡ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ benchmark.
ΠΠ΅ΡΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π² Π³ΠΎΠ»ΠΎΠ²Ρ β ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π΄ΠΎ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΡΠ»ΠΎ. Π£ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π΅ΡΡΡ ΡΡΠ΄ Π½ΡΠ°Π½ΡΠΎΠ². ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π°ΠΌΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ. Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΎΡ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Π±ΡΠ΄Π΅Ρ Β«ΠΏΡΠΎΠ³ΡΠ΅ΡΠΎΠΉΒ»: Π·Π°ΠΏΠΎΠ»Π½ΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΊΡΡΠΈ, ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ JIT-ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π³ΠΎΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΠΏΠ°ΠΌΡΡΡ Π½Π°ΠΏΠΎΠ»Π½ΠΈΡΡΡ ΠΌΡΡΠΎΡΠΎΠΌ.
ΠΠ°ΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄ΠΎΠ»Π³ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ: Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π½Π° ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠΎΠΌ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΡΠ΅Π½Π΄Π΅. ΠΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΡΡΠΊΠΎΠ² Java ΠΊΠΎΠ΄Π° (Π² ΠΌΠΈΠΊΡΠΎΠ±Π΅Π½ΡΠΌΠ°ΡΠΊΠ°Ρ ) Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ Π½ΡΠ°Π½ΡΡ Π²Π½ΠΎΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΠΊΠ»Π°Π΄ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
Π‘Π°ΠΌΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈΠ· JDK, JMH. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅Π³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π° ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠ΅ΠΉ @Benchmark. Π’Π΅ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ jar-ΡΠ°ΠΉΠ»Π°, Π»ΠΈΠ±ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠΎΠ³ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
π25π₯6π₯°2
ΠΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π»Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΠΎΡΠΎΠ², ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΡΠΈΠΌΠ»ΠΈΠ΄ΠΎΠ²
ΠΡΠ²ΠΎΠΉΡΠ΅ Software Architect Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΈ ΡΠ°ΡΡΠΈΡΡΡΠ΅ ΡΠ²ΠΎΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
Π£Π½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΡΠΎΠΏΠΎΠ²ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»ΠΈ ΠΈ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ
Π‘ΡΠ°ΡΡΡΠ΅ΠΌ ΡΠΆΠ΅ 29 ΠΌΠ°ΡΡΠ°! ΠΠΎΡΡΡΠΏΠ½Π° ΡΠ°ΡΡΡΠΎΡΠΊΠ° Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅. Π Π΅ΡΠ΅ ΠΌΡ ΡΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎΠ΄Π°ΡΠΈΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌ Π²Π΅Π±ΠΈΠ½Π°ΡΠ° ΡΠΊΠΈΠ΄ΠΊΡ Π½Π° ΠΊΡΡΡ 10% ΠΏΠΎ π ΠΏΡΠΎΠΌΠΎΠΊΠΎΠ΄Ρ soft10
ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠ΅ΡΡ ΠΈ ΡΠ·Π½Π°ΠΉΡΠ΅, Π³ΠΎΡΠΎΠ²Ρ Π»ΠΈ Π²Ρ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌΡ ΡΠΎΡΡΡ: https://vk.cc/cvJ193
ΠΡΠ²ΠΎΠΉΡΠ΅ Software Architect Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΈ ΡΠ°ΡΡΠΈΡΡΡΠ΅ ΡΠ²ΠΎΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
Π£Π½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΡΠΎΠΏΠΎΠ²ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»ΠΈ ΠΈ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ
Π‘ΡΠ°ΡΡΡΠ΅ΠΌ ΡΠΆΠ΅ 29 ΠΌΠ°ΡΡΠ°! ΠΠΎΡΡΡΠΏΠ½Π° ΡΠ°ΡΡΡΠΎΡΠΊΠ° Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅. Π Π΅ΡΠ΅ ΠΌΡ ΡΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΠΎΠ΄Π°ΡΠΈΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌ Π²Π΅Π±ΠΈΠ½Π°ΡΠ° ΡΠΊΠΈΠ΄ΠΊΡ Π½Π° ΠΊΡΡΡ 10% ΠΏΠΎ π ΠΏΡΠΎΠΌΠΎΠΊΠΎΠ΄Ρ soft10
ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠ΅ΡΡ ΠΈ ΡΠ·Π½Π°ΠΉΡΠ΅, Π³ΠΎΡΠΎΠ²Ρ Π»ΠΈ Π²Ρ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌΡ ΡΠΎΡΡΡ: https://vk.cc/cvJ193
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576, www.otus.ruπ7π3π₯2
ΠΠ°ΠΊ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π±Π°ΠΉΡΠΊΠΎΠ΄?
ΠΠ°ΠΉΡΠΊΠΎΠ΄ β Π°Π½Π°Π»ΠΎΠ³ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ JVM. ΠΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ .java ΡΠ°ΠΉΠ»Π° ΠΈ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² .class ΡΠ°ΠΉΠ»Π΅. ΠΠ½Π°Π»ΠΈΠ· Π±Π°ΠΉΡΠΊΠΎΠ΄Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π² ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π°Π³Π°, ΠΈΠ»ΠΈ Π»ΡΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠ½ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Π±Π°ΠΉΡΠΊΠΎΠ΄ΠΎΠΌ, Π²ΡΠΎΠ΄Π΅ ASM ΠΈΠ»ΠΈ BCEL.
ΠΡΠΎ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΊΠΎΠ΄, ΠΈ ΠΎΡΠΊΡΡΡΡ Π΅Π³ΠΎ ΠΏΡΠΎΡΡΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ Π½Π΅ Π²ΡΠΉΠ΄Π΅Ρ. Π ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΡΡΠΈΠ»ΠΈΡ JDK Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ javap. ΠΡΠΎ ΡΡΠΈΠ»ΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ .class ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°, ΠΈ classpath Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΈΡΠΊΠ°ΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ»Π΅Π½ΠΎΠ². ΠΠ»ΡΡ -p Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΏΠΎΠ»Ρ; -v Π²ΡΠ²Π΅Π΄Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅; -c ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ ΡΠ°ΠΌ Π±Π°ΠΉΡΠΊΠΎΠ΄ β ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
ΠΠ°ΠΉΡΠΊΠΎΠ΄ β Π°Π½Π°Π»ΠΎΠ³ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ JVM. ΠΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ .java ΡΠ°ΠΉΠ»Π° ΠΈ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² .class ΡΠ°ΠΉΠ»Π΅. ΠΠ½Π°Π»ΠΈΠ· Π±Π°ΠΉΡΠΊΠΎΠ΄Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π² ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π°Π³Π°, ΠΈΠ»ΠΈ Π»ΡΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠ½ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Π±Π°ΠΉΡΠΊΠΎΠ΄ΠΎΠΌ, Π²ΡΠΎΠ΄Π΅ ASM ΠΈΠ»ΠΈ BCEL.
ΠΡΠΎ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΊΠΎΠ΄, ΠΈ ΠΎΡΠΊΡΡΡΡ Π΅Π³ΠΎ ΠΏΡΠΎΡΡΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ Π½Π΅ Π²ΡΠΉΠ΄Π΅Ρ. Π ΠΏΠ°ΠΊΠ΅ΡΠ΅ ΡΡΠΈΠ»ΠΈΡ JDK Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ javap. ΠΡΠΎ ΡΡΠΈΠ»ΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ .class ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°, ΠΈ classpath Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΈΡΠΊΠ°ΡΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ»Π΅Π½ΠΎΠ². ΠΠ»ΡΡ -p Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΏΠΎΠ»Ρ; -v Π²ΡΠ²Π΅Π΄Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅; -c ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ ΡΠ°ΠΌ Π±Π°ΠΉΡΠΊΠΎΠ΄ β ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
π20π₯2π₯°2β€βπ₯1β€1