ΠΠ΅Π΄ΡΡΠΈΠΉ Java- ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ (middle)
#ΠΏΠΎΠ»Π½ΡΠΉΠ΄Π΅Π½Ρ #ΡΠ΄Π°Π»Π΅Π½ΠΊΠ°
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ: Π£ΠΠ ΠΈΠ
Π§Π΅ΠΌ ΡΠ΅Π±Π΅ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ:
- Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ backend ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
- ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ/ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ;
- ΠΠ½Π΅Π΄ΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΈΡΠΈ - ΠΌΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ ΡΠΈΠ΄Π±Π΅ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ»ΡΡΡΠ°Π΅ΠΌ Π½Π°ΡΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΡ
- ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΠΊΡΠ΄Π° Π±Π΅Π· ΡΡΠΎΠ³ΠΎ);
- ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ, Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°ΠΌΠΈ, Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ
ΠΠ»Ρ Π½Π°Ρ Π²Π°ΠΆΠ½ΠΎ:
- ΠΡΡΡΠ΅Π΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅, ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΏΡΠΎΡΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΊΡΡΡΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ) Π² ΡΡΠ΅ΡΠ΅ ΠΠ’;
- Java SE 8 ΠΈΠ»ΠΈ Π²ΡΡΠ΅, Spring Framework 5, ΠΏΡΠΈΠ½ΡΠΈΠΏΡ SOLID;
- ΠΠ½Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ;
- ΠΠ½Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ TDD ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΡ (ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅);
#ΠΏΠΎΠ»Π½ΡΠΉΠ΄Π΅Π½Ρ #ΡΠ΄Π°Π»Π΅Π½ΠΊΠ°
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ: Π£ΠΠ ΠΈΠ
Π§Π΅ΠΌ ΡΠ΅Π±Π΅ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ:
- Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ backend ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
- ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ/ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ;
- ΠΠ½Π΅Π΄ΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΈΡΠΈ - ΠΌΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ ΡΠΈΠ΄Π±Π΅ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ»ΡΡΡΠ°Π΅ΠΌ Π½Π°ΡΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΡ
- ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΠΊΡΠ΄Π° Π±Π΅Π· ΡΡΠΎΠ³ΠΎ);
- ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ, Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ°ΠΌΠΈ, Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ
ΠΠ»Ρ Π½Π°Ρ Π²Π°ΠΆΠ½ΠΎ:
- ΠΡΡΡΠ΅Π΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅, ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΏΡΠΎΡΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΊΡΡΡΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ) Π² ΡΡΠ΅ΡΠ΅ ΠΠ’;
- Java SE 8 ΠΈΠ»ΠΈ Π²ΡΡΠ΅, Spring Framework 5, ΠΏΡΠΈΠ½ΡΠΈΠΏΡ SOLID;
- ΠΠ½Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ;
- ΠΠ½Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ TDD ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΡ (ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅);
βSpring: Π½ΠΎΠ²ΠΎΡΡΠΈ Π·Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π½Π΅Π΄Π΅Π»Ρ / 28-Π΅ ΡΠ΅Π²ΡΠ°Π»Ρ
ΠΠ°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΠΏΠΎΠ΄Π±ΠΎΡΠΊΠ° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² "Spring: Π½ΠΎΠ²ΠΎΡΡΠΈ Π·Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π½Π΅Π΄Π΅Π»Ρ" ΠΎΡ ΠΠΆΠΎΡΠ° ΠΠΎΠ½Π³Π° (Josh Long).
ΠΡΠΈΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ! π
Π§ΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΡ
ΠΠ°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΠΏΠΎΠ΄Π±ΠΎΡΠΊΠ° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² "Spring: Π½ΠΎΠ²ΠΎΡΡΠΈ Π·Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π½Π΅Π΄Π΅Π»Ρ" ΠΎΡ ΠΠΆΠΎΡΠ° ΠΠΎΠ½Π³Π° (Josh Long).
ΠΡΠΈΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ! π
Π§ΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΡ
ΠΠ΅ Π±ΠΎΠΉΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Gradle
ΠΠΎΡΠΎΠ³ΠΈΠ΅ junior ΠΈ Π²ΡΠ΅, ΠΊΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ copy-past ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ² Gradle.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Ρ ΠΎΡΡ ΠΏΡΠΎΡΡΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ ΠΎ gradl'ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΡΠΎΠ±Ρ Π²Ρ Π½Π΅ Π±ΠΎΡΠ»ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Gradle.
Π§ΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΡ
ΠΠΎΡΠΎΠ³ΠΈΠ΅ junior ΠΈ Π²ΡΠ΅, ΠΊΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ copy-past ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ² Gradle.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Ρ ΠΎΡΡ ΠΏΡΠΎΡΡΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ ΠΎ gradl'ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΡΠΎΠ±Ρ Π²Ρ Π½Π΅ Π±ΠΎΡΠ»ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Gradle.
Π§ΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΡ
Telegraph
ΠΠ΅ Π±ΠΎΠΉΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Gradle
ΠΠΎΡΠΎΠ³ΠΎΠΉ Junior ΠΈ Π²ΡΠ΅, ΠΊΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ copy-past ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ² Gradle. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Ρ
ΠΎΡΡ ΠΏΡΠΎΡΡΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ gradl'ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΡΠΎΠ±Ρ Π²Ρ Π½Π΅ Π±ΠΎΡΠ»ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Gradle. ΠΠ°Π²Π°ΠΉΡΠ΅ Π½Π°ΡΠ½Π΅ΠΌ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ xml'Π½ΠΎΠ³ΠΎ Maven'Π°, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎβ¦
ΠΠ°ΠΊΠΈΠΌΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅?
ΠΠ΅ΡΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±ΡΡΠ½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, Π²ΡΠ·Π²Π°Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π΅Π΅ ΡΠΈΠΏΡ ΠΌΠ΅ΡΠΎΠ΄
ΠΡΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ ΡΠΎΡΡΠΎΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΠ· ΡΡΠ΅Π½ΠΈΡ, Π»ΡΡΡΠ°Ρ Π² ΠΏΠ»Π°Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° β
Π’ΡΠ΅ΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
β’ ΠΠ΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡΡ
β’ ΠΠ΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ
ΠΠ΅ΡΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±ΡΡΠ½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, Π²ΡΠ·Π²Π°Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π΅Π΅ ΡΠΈΠΏΡ ΠΌΠ΅ΡΠΎΠ΄
Collections.synchronized*(). Π‘Π°ΠΌΡΠΉ ΠΎΠ±ΡΠΈΠΉ ΠΈ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±, ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠ±Π΅ΡΡΠΊΡ Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π²ΡΠ΅Ρ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ synchronized.ΠΡΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ ΡΠΎΡΡΠΎΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΠ· ΡΡΠ΅Π½ΠΈΡ, Π»ΡΡΡΠ°Ρ Π² ΠΏΠ»Π°Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° β
CopyOnWriteArrayList, ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π΅Π³ΠΎ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ CopyOnWriteArraySet. ΠΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΡΠΈ Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΠΎΡΡΠ°Π΅ΡΡΡ immutable. Program order Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ volatile Π½Π° Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅.Π’ΡΠ΅ΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
Concurrent-ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ:β’ ΠΠ΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡΡ
ConcurrentSkipListMap, ConcurrentHashMap ΠΈ ConcurrentSkipListSet (Ρ
ΡΡ-ΡΠ°Π±Π»ΠΈΡΠ° Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ)β’ ΠΠ΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ
ConcurrentLinkedQueue ΠΈ ConcurrentLinkedDeque
β’ ΠΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΡ
ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉJava ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΡΡΡΠ° Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ
#ΡΠ΄Π°Π»Π΅Π½ΠΊΠ° #Π½Π΅ΠΏΠΎΠ»Π½ΡΠΉΠ΄Π΅Π½Ρ
Π/Π: Π·Π° 1 ΡΡΠΎΠΊ (ΠΏΠΎΠ»ΡΠΎΡΠ° ΡΠ°ΡΠ°) β ΠΎΡ 80 Π΄ΠΎ 120 Π΅Π²ΡΠΎ.
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ: OTUS
ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ Ρ ΡΠ΅ΠΎΡΠΈΠ΅ΠΉ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ°ΡΠΊΡΡΡΡ ΡΠ΅ΠΌΡ ΡΡΠΎΠΊΠ°. ΠΠ°ΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΠ°ΠΌ ΠΎΡΠ²ΠΎΠΈΡΡ Π»ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°Π½ΠΈΡ.
Π£ Π½Π°Ρ ΠΊΠ»Π°ΡΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° 600+ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ² Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠΈΡΠΌΠΈ ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. ΠΡ ΡΡΠΈΠΌΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³Π°, ΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΡ, ΠΏΠΎΠΌΠΎΠ³Π°Π΅ΠΌ, Π΄Π΅Π»ΠΈΠΌΡΡ ΠΎΠΏΡΡΠΎΠΌ, ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌ Π½ΠΎΠ²ΠΎΡΡΠΈ ΠΊΠ°ΠΊ Π² ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°Π½ΠΈΠΈ, ΡΠ°ΠΊ ΠΈ ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ.
Π₯ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅?
ΠΠΎΠ½ΡΠ°ΠΊΡΡ: @anna_phoenix7
#ΡΠ΄Π°Π»Π΅Π½ΠΊΠ° #Π½Π΅ΠΏΠΎΠ»Π½ΡΠΉΠ΄Π΅Π½Ρ
Π/Π: Π·Π° 1 ΡΡΠΎΠΊ (ΠΏΠΎΠ»ΡΠΎΡΠ° ΡΠ°ΡΠ°) β ΠΎΡ 80 Π΄ΠΎ 120 Π΅Π²ΡΠΎ.
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ: OTUS
ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ Ρ ΡΠ΅ΠΎΡΠΈΠ΅ΠΉ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ°ΡΠΊΡΡΡΡ ΡΠ΅ΠΌΡ ΡΡΠΎΠΊΠ°. ΠΠ°ΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΠ°ΠΌ ΠΎΡΠ²ΠΎΠΈΡΡ Π»ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°Π½ΠΈΡ.
Π£ Π½Π°Ρ ΠΊΠ»Π°ΡΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° 600+ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ² Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠΈΡΠΌΠΈ ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. ΠΡ ΡΡΠΈΠΌΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³Π°, ΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΡ, ΠΏΠΎΠΌΠΎΠ³Π°Π΅ΠΌ, Π΄Π΅Π»ΠΈΠΌΡΡ ΠΎΠΏΡΡΠΎΠΌ, ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌ Π½ΠΎΠ²ΠΎΡΡΠΈ ΠΊΠ°ΠΊ Π² ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°Π½ΠΈΠΈ, ΡΠ°ΠΊ ΠΈ ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ.
Π₯ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅?
ΠΠΎΠ½ΡΠ°ΠΊΡΡ: @anna_phoenix7
ΠΡ ΠΈΡΠ΅ΠΌ Π±ΡΠΊΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠ°Π·Ρ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄!
ΠΠ°ΠΊΠ°Π½ΡΠΈΠΉ ΠΌΠ½ΠΎΠ³ΠΎ β ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ, ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅ Π²Π°ΠΌ Π±ΡΠ»ΠΎ Π±Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π°Ρ ΠΈΠ· Π½ΠΈΡ :
π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±ΡΡΡΡΠΎΡΠ°ΡΡΡΡΠ΅ΠΉ real-time ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π² Π―Π½Π΄Π΅ΠΊΡ ΠΠΈΡΠΊΠ΅;
π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΡΠ²ΠΈΡΠ° data plane β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠ° ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π² Yandex Cloud (CloudGate);
π Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠΌΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½: ΡΠ°ΡΡΠ΅Π»Π΅Π½ΠΈΠ΅, ΡΠ²Π°ΠΊΡΠ°ΡΠΈΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² β Π΄Π»Ρ Yandex Cloud (API Compute);
π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½ΠΎΠ²ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π±ΠΎΡΡΠ±Ρ Ρ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π² Π‘ΠΏΠ°ΠΌΠΎΠΎΠ±ΠΎΡΠΎΠ½Ρ;
π ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Ρ ΡΡΡΡΠΎΠΌ eBFP Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°ΠΊΠ°.
β‘οΈ ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ
ΠΠ°ΠΊΠ°Π½ΡΠΈΠΉ ΠΌΠ½ΠΎΠ³ΠΎ β ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ, ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅ Π²Π°ΠΌ Π±ΡΠ»ΠΎ Π±Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π°Ρ ΠΈΠ· Π½ΠΈΡ :
π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±ΡΡΡΡΠΎΡΠ°ΡΡΡΡΠ΅ΠΉ real-time ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π² Π―Π½Π΄Π΅ΠΊΡ ΠΠΈΡΠΊΠ΅;
π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΡΠ²ΠΈΡΠ° data plane β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠ° ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π² Yandex Cloud (CloudGate);
π Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠΌΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½: ΡΠ°ΡΡΠ΅Π»Π΅Π½ΠΈΠ΅, ΡΠ²Π°ΠΊΡΠ°ΡΠΈΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² β Π΄Π»Ρ Yandex Cloud (API Compute);
π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½ΠΎΠ²ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π±ΠΎΡΡΠ±Ρ Ρ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π² Π‘ΠΏΠ°ΠΌΠΎΠΎΠ±ΠΎΡΠΎΠ½Ρ;
π ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Ρ ΡΡΡΡΠΎΠΌ eBFP Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°ΠΊΠ°.
β‘οΈ ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ
π₯ ΠΠ° ΠΊΠ°Π½Π°Π»Π΅ IT Jobs ΡΡΠ°ΡΡΠ°Π½ΡΠ» Π²Π΅Π±ΠΈΠ½Π°Ρ Π½Π° ΡΠ΅ΠΌΡ: Β«ΠΠΎΠ»Π½ΡΠΉ ΡΠΈΠΊΠ» - ΠΏΠΈΡΠ΅ΠΌ Telegram-Π±ΠΎΡΠ° Chatgpt Π½Π° Python. ΠΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄ΠΎ Π΄Π΅ΠΏΠ»ΠΎΡ Π·Π° ΡΠ°Ρ!Β»
Π‘ΠΊΠΎΡΠ΅Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΠΉΡΡ!
Π‘ΠΊΠΎΡΠ΅Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΠΉΡΡ!
ΠΡ ΠΈΡΠ΅ΠΌ Π±ΡΠΊΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠ°Π·Ρ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄!
ΠΠ°ΠΊΠ°Π½ΡΠΈΠΉ ΠΌΠ½ΠΎΠ³ΠΎ β ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ, ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅ Π²Π°ΠΌ Π±ΡΠ»ΠΎ Π±Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π°Ρ ΠΈΠ· Π½ΠΈΡ :
π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±ΡΡΡΡΠΎΡΠ°ΡΡΡΡΠ΅ΠΉ real-time ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π² Π―Π½Π΄Π΅ΠΊΡ ΠΠΈΡΠΊΠ΅;
π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΡΠ²ΠΈΡΠ° data plane β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠ° ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π² Yandex Cloud (CloudGate);
π Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠΌΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½: ΡΠ°ΡΡΠ΅Π»Π΅Π½ΠΈΠ΅, ΡΠ²Π°ΠΊΡΠ°ΡΠΈΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² β Π΄Π»Ρ Yandex Cloud (API Compute);
π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½ΠΎΠ²ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π±ΠΎΡΡΠ±Ρ Ρ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π² Π‘ΠΏΠ°ΠΌΠΎΠΎΠ±ΠΎΡΠΎΠ½Ρ;
π ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Ρ ΡΡΡΡΠΎΠΌ eBFP Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°ΠΊΠ°.
β‘οΈ ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ
ΠΠ°ΠΊΠ°Π½ΡΠΈΠΉ ΠΌΠ½ΠΎΠ³ΠΎ β ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ, ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅ Π²Π°ΠΌ Π±ΡΠ»ΠΎ Π±Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ. ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄Π°Ρ ΠΈΠ· Π½ΠΈΡ :
π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±ΡΡΡΡΠΎΡΠ°ΡΡΡΡΠ΅ΠΉ real-time ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π² Π―Π½Π΄Π΅ΠΊΡ ΠΠΈΡΠΊΠ΅;
π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΡΠ²ΠΈΡΠ° data plane β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠ° ΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π² Yandex Cloud (CloudGate);
π Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠΌΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½: ΡΠ°ΡΡΠ΅Π»Π΅Π½ΠΈΠ΅, ΡΠ²Π°ΠΊΡΠ°ΡΠΈΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² β Π΄Π»Ρ Yandex Cloud (API Compute);
π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½ΠΎΠ²ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π±ΠΎΡΡΠ±Ρ Ρ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π² Π‘ΠΏΠ°ΠΌΠΎΠΎΠ±ΠΎΡΠΎΠ½Ρ;
π ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Ρ ΡΡΡΡΠΎΠΌ eBFP Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°ΠΊΠ°.
β‘οΈ ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ
Π‘ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π³ΠΎΠ΄ΠΎΠΌ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΠΎΡΡΡ Kafka ΡΠ°ΡΡΠ΅Ρ, Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΡΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π²Ρ
ΠΎΠ΄ΠΈΡ Π² ΡΠΎΠΏ-10 ΠΊΠ»ΡΡΠ΅Π²ΡΡ
Π½Π°Π²ΡΠΊΠΎΠ² IT-ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ².
Π’ΠΎΠ»ΡΠΊΠΎ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΌΠ΅ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π±ΠΎΠ»ΡΡΠ΅ 3000 Π²Π°ΠΊΠ°Π½ΡΠΈΠΉ, Π³Π΄Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π½Π°Π½ΠΈΠ΅ ΠΠ°ΡΠΊΠΈ.
Π£Π²Π΅ΡΠ΅Π½Π½ΠΎ Π·Π°ΡΠ²Π»ΡΠ΅ΠΌ: ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ backend-ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΠ°ΡΠΊΠΎΠΉ β ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π‘Π»ΡΡΠΌ ΡΠΎΠ·Π΄Π°Π»Π° ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ² ΠΏΠΎ Apache Kafka Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ Π²Π°ΡΠΈ Π·Π°Π΄Π°ΡΠΈ.
ΠΡΡΡ ΠΠ°ΡΠΊΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ Π²Π°ΠΌ, Π΅ΡΠ»ΠΈ:
β«οΈΠΡ ΡΠΆΠ΅ Π²Π»Π°Π΄Π΅Π΅ΡΠ΅ ΡΠ·ΡΠΊΠ°ΠΌΠΈ Java ΠΈΠ»ΠΈ Go;
β«οΈΠΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ goroutine, ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ;
β«οΈΠΠΌΠ΅Π΅ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π·Π½Π°Π½ΠΈΡ ThreadPool.
28 ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΠΎΠΊΠΎΠ² Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΎΠ±ΡΡΠ°ΡΡΡΡ ΠΈΠ· Π»ΡΠ±ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΌΠΈΡΠ°, Π΄ΠΎΡΡΡΠΏ Π½Π° 2 Π³ΠΎΠ΄Π°, AMA-ΡΠ΅ΡΡΠΈΠΈ ΡΠΎ ΡΠΏΠΈΠΊΠ΅ΡΠ°ΠΌΠΈ ΠΈ Π·Π°ΠΊΡΡΡΡΠΉ ΡΠ°Ρ Ρ ΠΊΡΡΠ°ΡΠΎΡΠΎΠΌ β ΡΠΌΠ΅Π½ΡΡΠΈΡΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠ°Π±ΠΎΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ Ρ ΠΠ°ΡΠΊΠΎΠΉ, ΠΏΠΎΠ»ΡΡΠΈΠ² ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ!
ΠΠΎΡΠ»Π΅ ΠΊΡΡΡΠ° Π²Ρ:
β«οΈΠΠ°ΡΠ½Π΅ΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΠΈ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ;
β«οΈΠΠ°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΠΏΠΎΠΉΠΌΡΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΠ°ΡΠΊΠΈ
β«οΈΠ‘ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ ΠΈ Π½Π°ΡΡ...
Π’ΠΎΠ»ΡΠΊΠΎ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΌΠ΅ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π±ΠΎΠ»ΡΡΠ΅ 3000 Π²Π°ΠΊΠ°Π½ΡΠΈΠΉ, Π³Π΄Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π½Π°Π½ΠΈΠ΅ ΠΠ°ΡΠΊΠΈ.
Π£Π²Π΅ΡΠ΅Π½Π½ΠΎ Π·Π°ΡΠ²Π»ΡΠ΅ΠΌ: ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ backend-ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΠ°ΡΠΊΠΎΠΉ β ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π‘Π»ΡΡΠΌ ΡΠΎΠ·Π΄Π°Π»Π° ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ² ΠΏΠΎ Apache Kafka Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ Π²Π°ΡΠΈ Π·Π°Π΄Π°ΡΠΈ.
ΠΡΡΡ ΠΠ°ΡΠΊΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ Π²Π°ΠΌ, Π΅ΡΠ»ΠΈ:
β«οΈΠΡ ΡΠΆΠ΅ Π²Π»Π°Π΄Π΅Π΅ΡΠ΅ ΡΠ·ΡΠΊΠ°ΠΌΠΈ Java ΠΈΠ»ΠΈ Go;
β«οΈΠΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ goroutine, ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ;
β«οΈΠΠΌΠ΅Π΅ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π·Π½Π°Π½ΠΈΡ ThreadPool.
28 ΠΎΠ½Π»Π°ΠΉΠ½-ΡΡΠΎΠΊΠΎΠ² Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΎΠ±ΡΡΠ°ΡΡΡΡ ΠΈΠ· Π»ΡΠ±ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΌΠΈΡΠ°, Π΄ΠΎΡΡΡΠΏ Π½Π° 2 Π³ΠΎΠ΄Π°, AMA-ΡΠ΅ΡΡΠΈΠΈ ΡΠΎ ΡΠΏΠΈΠΊΠ΅ΡΠ°ΠΌΠΈ ΠΈ Π·Π°ΠΊΡΡΡΡΠΉ ΡΠ°Ρ Ρ ΠΊΡΡΠ°ΡΠΎΡΠΎΠΌ β ΡΠΌΠ΅Π½ΡΡΠΈΡΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΡΠ°Π±ΠΎΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ Ρ ΠΠ°ΡΠΊΠΎΠΉ, ΠΏΠΎΠ»ΡΡΠΈΠ² ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ!
ΠΠΎΡΠ»Π΅ ΠΊΡΡΡΠ° Π²Ρ:
β«οΈΠΠ°ΡΠ½Π΅ΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΠΈ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ;
β«οΈΠΠ°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΠΏΠΎΠΉΠΌΡΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΠ°ΡΠΊΠΈ
β«οΈΠ‘ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ ΠΈ Π½Π°ΡΡ...
Π’Ρ Π·Π½Π°Π» ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠ΄Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°ΡΡ ΡΠ΅ΡΠΈ Π½Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅?
π€ ΠΡΠ»ΠΈ ΡΡ Ρ ΠΎΡΠ΅ΡΡ ΠΏΠΎ-Π±ΡΡΡΡΠΎΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠ΅ΡΡΡ ΠΈ Π½Π΅ Ρ ΠΎΡΠ΅ΡΡ ΡΠΈΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ΡΡΡΡΡΠΈ ΡΡΡΠ°Π½ΠΈΡ, ΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈ Π² ΠΊΠ°Π½Π°Π» Network Academy Π³Π΄Π΅ ΡΡ Π±ΡΡΡΡΠΎ ΡΠΌΠΎΠΆΠ΅ΡΡ ΠΈΠ·ΡΡΠΈΡΡ ΡΠ°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ.
ΠΠΠ₯ΠΠΠ π Network Academy
π€ ΠΡΠ»ΠΈ ΡΡ Ρ ΠΎΡΠ΅ΡΡ ΠΏΠΎ-Π±ΡΡΡΡΠΎΠΌΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠ΅ΡΡΡ ΠΈ Π½Π΅ Ρ ΠΎΡΠ΅ΡΡ ΡΠΈΡΠ°ΡΡ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ΡΡΡΡΡΠΈ ΡΡΡΠ°Π½ΠΈΡ, ΡΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈ Π² ΠΊΠ°Π½Π°Π» Network Academy Π³Π΄Π΅ ΡΡ Π±ΡΡΡΡΠΎ ΡΠΌΠΎΠΆΠ΅ΡΡ ΠΈΠ·ΡΡΠΈΡΡ ΡΠ°ΠΌΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ.
ΠΠΠ₯ΠΠΠ π Network Academy
Π¨Π΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ
ΠΠ½ΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ, Π±Π°ΠΉΡΡ ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Java 17 Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ HexFormat. ΠΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ HexFormat, Π° Π·Π°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΎΠ΄Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ byte Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ Π² ΡΠ°Π±Π»ΠΈΡΡ Π±Π°ΠΉΡΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅.
ΠΠ½ΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ, Π±Π°ΠΉΡΡ ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Java 17 Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ HexFormat. ΠΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ HexFormat, Π° Π·Π°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΎΠ΄Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ byte Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ Π² ΡΠ°Π±Π»ΠΈΡΡ Π±Π°ΠΉΡΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅.
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Ρ
ΡΠ°Π½ΠΈΡΡ null Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΡ
?
ΠΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Collections Framework ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΡΠ°ΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π»ΠΈ null-Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΡΡΡ
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΏΠΈΡΠΊΠΎΠ² (
Unmodifiable Maps Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ null-ΠΎΠ² ΡΠΎΠ²ΡΠ΅ΠΌ. ΠΠ±ΡΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΌΠ°ΠΏΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΈΡΠΏΡΡΡΠ²Π°ΡΡ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ null. Π Π²ΠΎΡ Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ Π΄Π΅Π»ΠΎ ΠΎΠ±ΡΡΠΎΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅.
ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π΄Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡΠ° Ρ ΠΏΠΎΠ΄Π²ΠΎΡ ΠΎΠΌ ΠΏΡΠΎ
ΠΠ»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Set-ΠΎΠ² Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°, ΡΡΠΎ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅ΠΉ Π»Π΅ΠΆΠ°ΡΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡ Map-ΠΎΠ².
π@BookJava
ΠΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Collections Framework ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΠΌ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΡΠ°ΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π»ΠΈ null-Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΡΡΡ
null, ΠΎΠ½Π° Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ NullPointerException ΠΈΠ»ΠΈ ClassCastException.ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΏΠΈΡΠΊΠΎΠ² (
LinkedList, ArrayList) ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ null Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ (Queue ΠΈ Deque) Π½Π΅ Ρ
ΡΠ°Π½ΡΡ null β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Ρ ΠΈΠ· ΡΠΈΡΠ°ΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° null ΠΎΠ½ΠΈ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎ ΠΏΡΡΡΠΎΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.Unmodifiable Maps Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ null-ΠΎΠ² ΡΠΎΠ²ΡΠ΅ΠΌ. ΠΠ±ΡΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΌΠ°ΠΏΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΈΡΠΏΡΡΡΠ²Π°ΡΡ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ null. Π Π²ΠΎΡ Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ Π΄Π΅Π»ΠΎ ΠΎΠ±ΡΡΠΎΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅.
HashMap Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ hash-ΡΡΠΌΠΌΡ ΠΎΡ null. ΠΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ
ΠΊΠ»ΡΡΠ΅ΠΉ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π±Π°ΠΊΠ΅Ρ Π½ΠΎΠΌΠ΅Ρ 0.ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π΄Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡΠ° Ρ ΠΏΠΎΠ΄Π²ΠΎΡ ΠΎΠΌ ΠΏΡΠΎ
TreeMap. Nullability Π΅Ρ ΠΊΠ»ΡΡΠ΅ΠΉ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΊ ΡΡΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΠ°. ΠΠ°ΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ (ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ Comparable ΠΊΠ»ΡΡΠ΅ΠΉ) Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ null. Π Π°Π½ΡΡΠ΅ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΡΠ» Π±Π°Π³, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ» ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠ»ΡΡΡ null Π² ΠΊΠΎΡΠ΅Π½Ρ Π΄Π΅ΡΠ΅Π²Π° Π±Π΅Π· Π²ΡΠ±ΡΠΎΡΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.ΠΠ»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Set-ΠΎΠ² Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°, ΡΡΠΎ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅ΠΉ Π»Π΅ΠΆΠ°ΡΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡ Map-ΠΎΠ².
π@BookJava
Java-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ (middle)
#ΠΏΠΎΠ»Π½ΡΠΉΠ΄Π΅Π½Ρ #ΡΠ΄Π°Π»Π΅Π½ΠΊΠ°
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ: ΠΠ½Π½ΠΎΡΠ΅Ρ
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ Π½Π°Π²ΡΠΊΠ°ΠΌ:
- ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Java SE 8+;
- Π·Π½Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΠΠ, ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ;
- ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ;
- ΠΎΠΏΡΡ enterprise ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ/ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΡΠΎΠΊΠΎ-Π½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²;
- ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Spring;
- Π·Π½Π°Π½ΠΈΠ΅ JUnit/TestNG;
- Π·Π½Π°Π½ΠΈΠ΅ Maven/Gradle;
- ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ gRPC (Π±ΡΠ΄Π΅Ρ ΠΏΠ»ΡΡΠΎΠΌ);
- ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Kafka
- Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Netty, ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ WebSocket (Π±ΡΠ΄Π΅Ρ ΠΏΠ»ΡΡΠΎΠΌ)
Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Docker
- ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Kubernetes/Openshift (Π±ΡΠ΄Π΅Ρ ΠΏΠ»ΡΡΠΎΠΌ)
#ΠΏΠΎΠ»Π½ΡΠΉΠ΄Π΅Π½Ρ #ΡΠ΄Π°Π»Π΅Π½ΠΊΠ°
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ: ΠΠ½Π½ΠΎΡΠ΅Ρ
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ Π½Π°Π²ΡΠΊΠ°ΠΌ:
- ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Java SE 8+;
- Π·Π½Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΠΠ, ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ;
- ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ;
- ΠΎΠΏΡΡ enterprise ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ/ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΡΠΎΠΊΠΎ-Π½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²;
- ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Spring;
- Π·Π½Π°Π½ΠΈΠ΅ JUnit/TestNG;
- Π·Π½Π°Π½ΠΈΠ΅ Maven/Gradle;
- ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ gRPC (Π±ΡΠ΄Π΅Ρ ΠΏΠ»ΡΡΠΎΠΌ);
- ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Kafka
- Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Netty, ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ WebSocket (Π±ΡΠ΄Π΅Ρ ΠΏΠ»ΡΡΠΎΠΌ)
Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Docker
- ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Kubernetes/Openshift (Π±ΡΠ΄Π΅Ρ ΠΏΠ»ΡΡΠΎΠΌ)
Π ΡΡΠΌ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ submit() ΠΈ execute() Ρ ΠΏΡΠ»Π° ΠΏΠΎΡΠΎΠΊΠΎΠ²?
ΠΠ±Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ²Π»ΡΡΡΡΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ ΠΏΠΎΠ΄Π°ΡΠΈ Π·Π°Π΄Π°ΡΠΈ Π² ΠΏΡΠ» ΠΏΠΎΡΠΎΠΊΠΎΠ², Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°Π·Π½ΠΈΡΠ°.
ΠΠ±Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ²Π»ΡΡΡΡΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ ΠΏΠΎΠ΄Π°ΡΠΈ Π·Π°Π΄Π°ΡΠΈ Π² ΠΏΡΠ» ΠΏΠΎΡΠΎΠΊΠΎΠ², Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°Π·Π½ΠΈΡΠ°.
execute(Runnable command) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Executor ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠ΄Π°Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ.submit() β ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ExecutorService. Π‘ΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π°Π΄Π°ΡΠΈ ΡΠΈΠΏΠΎΠ² Runnable ΠΈ Callable ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Future, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.#Π·Π°Π΄Π°ΡΠ°
Π Π½Π΅Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π»
Π£ΡΠ»ΠΎΠ²ΠΈΡ:
ΠΠ°Π½ Π»ΠΈΡΡ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π» ΠΎΡ 1 Π΄ΠΎ 100. Π Π½ΡΠΌ Π΅ΡΡΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ (Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ). ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π° (Π½Π°ΠΉΡΠΈ ΡΠ°ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈ ΡΠΊΠ°Π·Π°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΎΠ½ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ)?
Π Π½Π΅Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΌ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π»
Π£ΡΠ»ΠΎΠ²ΠΈΡ:
ΠΠ°Π½ Π»ΠΈΡΡ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π» ΠΎΡ 1 Π΄ΠΎ 100. Π Π½ΡΠΌ Π΅ΡΡΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΡ (Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ). ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π° (Π½Π°ΠΉΡΠΈ ΡΠ°ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈ ΡΠΊΠ°Π·Π°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΎΠ½ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ)?
Java Developer (Middle)
#ΠΏΠΎΠ»Π½ΡΠΉΠ΄Π΅Π½Ρ #ΡΠ΄Π°Π»Π΅Π½ΠΊΠ°
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ: ΠΠ½Π½ΠΎΡΠ΅Ρ
ΠΠΌΠ΅ΡΡΠ΅ Ρ Π½Π°ΠΌΠΈ ΡΠ΅Π±Π΅ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ:
- ΠΠ° ΡΡΠ°ΡΡΠ΅ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅;
- ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΊΡΠΎΡΡ-ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠ±ΠΎΡΠ° ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°;
- ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ, ΡΠ°Π±ΠΎΡΠ° Ρ ΠΌΠΎΡΠΈΠ²Π°ΡΠΈΠ΅ΠΉ, ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ²;
- ΠΠ΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½ΠΎΠ² ΡΠ°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΎΡΠ΅Π½ΠΊΠ° ΡΡΡΠ΄ΠΎΡΠΌΠΊΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡ;
- ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Solution Architect Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ;
- Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° back-end ΡΠ°ΡΡΠΈ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π² ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ c ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Spring Boot;
- Π‘ΡΠ°ΡΡ code owner ΡΠ°ΡΡΠΈ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΈΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΠΌ;
- Π£ΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠΈ API;
- Π£ΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π΄Π°Π½Π½ΡΡ ;
- ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ;
R&D ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΡΠ°ΡΡΠΊΠΎΠ² ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌ.
ΠΠ°ΠΊΠΈΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΈ Π½Π°Π²ΡΠΊΠΈ Π΄Π»Ρ Π½Π°Ρ Π²Π°ΠΆΠ½Ρ:
- ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Π² Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ ΠΎΡ 2 Π»Π΅Ρ;
- ΠΠΏΡΡ BE ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡ 5-Ρ Π»Π΅Ρ;
- ΠΠΎΡΠΎΠ²Π½ΠΎΡΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π±ΡΠ°ΡΡ Π½Π° ΡΠ΅Π±Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ;
- Π‘ΡΠ΅ΠΊ Java, spring;
- ΠΠΏΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ;
- ΠΠΏΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ CI/CD;
- ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ Kubernetes/OpenShift;
- ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Message/Streaming-oriented middleware (Kafka/RabbitMQ).
- ΠΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ, ΡΠΌΠ΅Π½ΠΈΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΎΠ±ΡΠΈΠΉ ΡΠ·ΡΠΊ ΠΊΠ°ΠΊ Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊ ΠΈ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΡΠΌΠ΅ΠΆΠ½ΡΠΌΠΈ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ.
#ΠΏΠΎΠ»Π½ΡΠΉΠ΄Π΅Π½Ρ #ΡΠ΄Π°Π»Π΅Π½ΠΊΠ°
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ: ΠΠ½Π½ΠΎΡΠ΅Ρ
ΠΠΌΠ΅ΡΡΠ΅ Ρ Π½Π°ΠΌΠΈ ΡΠ΅Π±Π΅ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ:
- ΠΠ° ΡΡΠ°ΡΡΠ΅ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅;
- ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΊΡΠΎΡΡ-ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠ±ΠΎΡΠ° ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°;
- ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ, ΡΠ°Π±ΠΎΡΠ° Ρ ΠΌΠΎΡΠΈΠ²Π°ΡΠΈΠ΅ΠΉ, ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ²;
- ΠΠ΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½ΠΎΠ² ΡΠ°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΎΡΠ΅Π½ΠΊΠ° ΡΡΡΠ΄ΠΎΡΠΌΠΊΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡ;
- ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Solution Architect Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ;
- Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° back-end ΡΠ°ΡΡΠΈ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π² ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ c ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Spring Boot;
- Π‘ΡΠ°ΡΡ code owner ΡΠ°ΡΡΠΈ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΈΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΠΌ;
- Π£ΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠΈ API;
- Π£ΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π΄Π°Π½Π½ΡΡ ;
- ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ;
R&D ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΡΠ°ΡΡΠΊΠΎΠ² ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌ.
ΠΠ°ΠΊΠΈΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΈ Π½Π°Π²ΡΠΊΠΈ Π΄Π»Ρ Π½Π°Ρ Π²Π°ΠΆΠ½Ρ:
- ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Π² Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ ΠΎΡ 2 Π»Π΅Ρ;
- ΠΠΏΡΡ BE ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡ 5-Ρ Π»Π΅Ρ;
- ΠΠΎΡΠΎΠ²Π½ΠΎΡΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π±ΡΠ°ΡΡ Π½Π° ΡΠ΅Π±Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ;
- Π‘ΡΠ΅ΠΊ Java, spring;
- ΠΠΏΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ;
- ΠΠΏΡΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ CI/CD;
- ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ Kubernetes/OpenShift;
- ΠΠΏΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Message/Streaming-oriented middleware (Kafka/RabbitMQ).
- ΠΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ, ΡΠΌΠ΅Π½ΠΈΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΎΠ±ΡΠΈΠΉ ΡΠ·ΡΠΊ ΠΊΠ°ΠΊ Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊ ΠΈ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΡΠΌΠ΅ΠΆΠ½ΡΠΌΠΈ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ.
#ΠΠΎΠΏΡΠΎΡΡ_Ρ_ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ
ποΈ ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ»ΠΈ ΡΠ°ΡΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π² Java?
Π§Π°ΡΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π²Π½Π΅ ΠΊΠ»Π°ΡΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠΌ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΅Π³ΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ. Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ ΡΠΈΠ³Π½Π°ΡΡΡΠΎΠΉ ΠΊΠ°ΠΊ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ, ΡΠ°ΠΊ ΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠΊΡΠΎΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅. ΠΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΠΊΠ°ΠΊ ΡΠΎΠΊΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°.
ποΈ ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ»ΠΈ ΡΠ°ΡΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π² Java?
Π’Π΅Ρ
Π½ΠΈΠΊΠ° Β«10 ΡΠ΅ΡΡΠΎΠ² Π² Π΄Π΅Π½ΡΒ» β ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ
ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ
Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ Java.
ΠΠ°Π½Π°Π» Java Guru Π²ΡΠ»ΠΎΠΆΠΈΠ» Π² ΠΎΡΠΊΡΡΡΡΠΉ Π΄ΠΎΡΡΡΠΏ ΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°ΡΡ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ Π² ΡΠΎΠΏΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π²ΡΠΎΠ΄Π΅ Π―Π½Π΄Π΅ΠΊΡ ΠΈ MailRu.
β€ ΠΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ Π·Π°Π΄Π°ΡΠΊΡ β Π²ΡΠ±ΠΈΡΠ°Π΅ΡΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ β Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ ΠΈ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΊ Π½Π΅ΠΌΡ. Π’Π°ΠΊ Π²Ρ ΡΡΠ²ΠΎΠΈΡΠ΅ Π½Π° 50% Π±ΠΎΠ»ΡΡΠ΅ Π·Π½Π°Π½ΠΈΠΉ Π² ΡΠΆΠ°ΡΡΠ΅ ΡΡΠΎΠΊΠΈ.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ΡΡ ΠΈ ΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠΊΠΈΠ»Π»Ρ: @javatasks
ΠΠ°Π½Π°Π» Java Guru Π²ΡΠ»ΠΎΠΆΠΈΠ» Π² ΠΎΡΠΊΡΡΡΡΠΉ Π΄ΠΎΡΡΡΠΏ ΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°ΡΡ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ Π² ΡΠΎΠΏΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π²ΡΠΎΠ΄Π΅ Π―Π½Π΄Π΅ΠΊΡ ΠΈ MailRu.
β€ ΠΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ Π·Π°Π΄Π°ΡΠΊΡ β Π²ΡΠ±ΠΈΡΠ°Π΅ΡΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ β Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ ΠΈ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΊ Π½Π΅ΠΌΡ. Π’Π°ΠΊ Π²Ρ ΡΡΠ²ΠΎΠΈΡΠ΅ Π½Π° 50% Π±ΠΎΠ»ΡΡΠ΅ Π·Π½Π°Π½ΠΈΠΉ Π² ΡΠΆΠ°ΡΡΠ΅ ΡΡΠΎΠΊΠΈ.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ΡΡ ΠΈ ΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠΊΠΈΠ»Π»Ρ: @javatasks