ΠΡΠ°ΡΠΈΠ²ΡΠΉ ΠΊΠΎΠ΄ Ρ Java Optional ΠΈ Either
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Java ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅, ΡΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ· Π²ΠΈΠ΄Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. π
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΡΠ°ΡΡΡ Π½Π°ΡΡΠΈΡ Π²Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Optional ΠΈ Either Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΊΡΠ°ΡΠΈΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π₯ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ!
https://dzone.com/articles/the-beauty-of-java-optional-and-either
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Java ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅, ΡΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ· Π²ΠΈΠ΄Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. π
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΡΠ°ΡΡΡ Π½Π°ΡΡΠΈΡ Π²Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Optional ΠΈ Either Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΊΡΠ°ΡΠΈΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Π₯ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ!
https://dzone.com/articles/the-beauty-of-java-optional-and-either
DZone
The Beauty of Java Optional and Either
Many Java developers often overlook its functional programming capabilities. Learn how to chain Optional and Either to write concise and beautiful code.
ΠΠ΅Π΄ΡΡΠΈΠΉ 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?