เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

Java เปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบเบžเบฒเบชเบฒเบ—เบตเปˆเบ™เบดเบเบปเบกเบญเบทเปˆเบ™เป†เปเบ™เบงเปƒเบ”? เป€เบ›เบฑเบ™เบซเบเบฑเบ‡ Java เบ„เบงเบ™เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบˆเบฐเบฎเบฝเบ™เบฎเบนเป‰? เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เปเบœเบ™เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰ Java เบ—เบฑเบ‡เปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเป‚เบ”เบเบเบฒเบ™เปƒเบŠเป‰เบ—เบฑเบเบชเบฐเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเปƒเบ™เบžเบฒเบชเบฒเบญเบทเปˆเบ™เป†. เปƒเบซเป‰เบšเบญเบเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบœเบฐเบฅเบดเบ”เปƒเบ™ Java เปเบฅเบฐเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบ™เบžเบฒเบชเบฒเบญเบทเปˆเบ™เป†. Mikhail Zatepyakin เบญเปˆเบฒเบ™เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบ™เบตเป‰เปƒเบ™เบเบญเบ‡เบ›เบฐเบŠเบธเบกเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ” เบเบถเบเบ‡เบฒเบ™ Yandex เปเบฅเบฐเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบญเบทเปˆเบ™เป† - Java Junior Meetup.


โ€” เบชเบฐเบšเบฒเบเบ”เบตเบ—เบธเบเบ„เบปเบ™, เบ‚เป‰เบญเบเบŠเบทเปˆ Misha. เบ‚เป‰เบญเบเป€เบ›เบฑเบ™เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบˆเบฒเบ Yandex.Market, เปเบฅเบฐเบกเบทเป‰เบ™เบตเป‰เบ‚เป‰เบญเบเบˆเบฐเบšเบญเบเป€เบˆเบปเป‰เบฒเบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ–เบฒเบกเบ„เปเบฒเบ–เบฒเบกเบ—เบตเปˆเบชเบปเบกเป€เบซเบ”เบชเบปเบกเบœเบปเบ™: เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ‚เป‰เบญเบเบˆเบฐเบšเบญเบเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰, เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™เบซเบผเบฒเบเบ›เบต? เบ„เบงเบฒเบกเบˆเบดเบ‡เปเบฅเป‰เบงเปเบกเปˆเบ™เบงเปˆเบฒเบ‚เป‰เบญเบเป€เบญเบ‡เป„เบ”เป‰เบชเบถเบเบชเบฒ Java เบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰, เบ›เบฐเบกเบฒเบ™เบซเบ™เบถเปˆเบ‡เบ›เบตเปเบฅเบฐเป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเบเบฑเบ‡เบˆเบทเปˆเป„เบ”เป‰เบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”เปเบฅเบฐเบกเบตเบ‚เบธเบกเปเบ™เบงเปƒเบ”.

เบ›เบตเบเปˆเบญเบ™เบ‚เป‰เบญเบเป„เบ”เป‰เบเบถเบเบ‡เบฒเบ™เบขเบนเปˆ Yandex.Market. เบ‚เป‰เบญเบเป„เบ”เป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ backend เบชเปเบฒเบฅเบฑเบš Beru, เบชเปเบฒเบฅเบฑเบšเบ•เบฐเบซเบผเบฒเบ”เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เบกเบฑเบ™. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบชเบทเบšเบ•เปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™, เปƒเบ™เบ—เบตเบกเบ‡เบฒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป€เบงเบ—เบตเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบชเปเบฒเบฅเบฑเบš Yandex.Market เบชเปเบฒเบฅเบฑเบšเบ„เบนเปˆเบฎเปˆเบงเบกเบ‡เบฒเบ™เบ—เบธเบฅเบฐเบเบดเบ”.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เปƒเบซเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เบˆเบฒเบเบˆเบธเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”? เบ„เบงเบฒเบกเบˆเบดเบ‡เปเบฅเป‰เบงเปเบกเปˆเบ™เบงเปˆเบฒ Java เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบชเบฝเบ‡เบซเบผเบฒเบ. เบกเบฑเบ™เบกเบตเบŠเบธเบกเบŠเบปเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบ.

เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, เบกเบตเบ”เบฑเบ”เบŠเบฐเบ™เบต TIOBE, เบ”เบฑเบ”เบŠเบฐเบ™เบตเบ—เบตเปˆเบ™เบดเบเบปเบกเบ‚เบญเบ‡เบ„เบงเบฒเบกเบ™เบดเบเบปเบกเบ‚เบญเบ‡เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก, เปเบฅเบฐ Java เบˆเบฑเบ”เบญเบฑเบ™เบ”เบฑเบšเบ—เปเบฒเบญเบดเบ”เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเบงเบฝเบเบซเบงเปˆเบฒเบ‡เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบเปˆเบฝเบงเบเบฑเบš Java, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เป‚เบ”เบเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบ™ Java, เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบงเบฝเบเป„เบ”เป‰เบ•เบฐเบซเบผเบญเบ”เป€เบงเบฅเบฒ.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบŠเบธเบกเบŠเบปเบ™เบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบ, เบ„เปเบฒเบ–เบฒเบกเปƒเบ”เป†เบ—เบตเปˆเบ—เปˆเบฒเบ™เบกเบตเบˆเบฐเบŠเบญเบเบซเบฒเบ„เปเบฒเบ•เบญเบšเบขเบนเปˆเปƒเบ™เบšเบฒเบ‡ Stack Overflow เบซเบผเบทเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบญเบทเปˆเบ™เป†. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบกเบทเปˆเบญเบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบ™ Java, เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบงเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบขเบนเปˆเปƒเบ™ JVM, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ Kotlin, Scala เปเบฅเบฐเบžเบฒเบชเบฒเบญเบทเปˆเบ™เป†เบ—เบตเปˆเปƒเบŠเป‰ JVM เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เปเบกเปˆเบ™เบซเบเบฑเบ‡เบ—เบตเปˆเบ”เบตเบเปˆเบฝเบงเบเบฑเบš Java เบˆเบฒเบเบ—เบฑเบ”เบชเบฐเบ™เบฐเบ—เบฒเบ‡เบญเบธเบ”เบปเบกเบเบฒเบ™? เบกเบตเบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบ—เปˆเบฒเบ™เบฎเบนเป‰เบงเปˆเบฒ. เบ•เบปเบงเบขเปˆเบฒเบ‡, Python เปเบกเปˆเบ™เบ”เบตเป€เบฅเบตเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™ script เปเบ–เบงเบ”เบฝเบงเป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเป„เบง.

เปƒเบ™เบ”เป‰เบฒเบ™เบšเบงเบ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเบฅเบฐเบซเบฑเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบฅเบปเบ”, เบฅเบปเบ” Yandex driverless, เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบกเปˆเบ™เบ‚เบฝเบ™เป€เบ›เบฑเบ™ pluses. เป€เบ›เบฑเบ™เบซเบเบฑเบ‡? Java เบกเบตเบชเบดเปˆเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง - เบœเบนเป‰เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ. เบกเบฑเบ™เบฅเป‰เบฒเบ‡ RAM เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™. เบชเบดเปˆเบ‡เบ™เบตเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบ spontaneous เปเบฅเบฐเบขเบธเบ” - เป‚เบฅเบ, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบกเบฑเบ™เบขเบธเบ”เป‚เบ„เบ‡เบเบฒเบ™เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเปเบฅเบฐเป„เบ›เบ™เบฑเบšเบงเบฑเบ”เบ–เบธ, เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ. เบ–เป‰เบฒเบชเบดเปˆเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ drone, เบกเบฑเบ™เบšเปเปˆเป€เบขเบฑเบ™. drone เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เบˆเบฐโ€‹เบ‚เบฑเบšโ€‹เบŠเบทเปˆโ€‹, เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹เบ™เบตเป‰โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบ„เบงเบฒเบกโ€‹เบŠเบปเบ‡โ€‹เบˆเปเบฒโ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เปเบˆเป‰เบ‡โ€‹เปเบฅเบฐโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เป€เบšเบดเปˆเบ‡โ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบ–เบฐโ€‹เบซเบ™เบปเบ™โ€‹เบซเบปเบ™โ€‹เบ—เบฒเบ‡โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹. เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™, drone เปเบกเปˆเบ™เบฅเบฒเบเบฅเบฑเบเบญเบฑเบเบชเบญเบ™เบเปˆเบฝเบงเบเบฑเบš pros เป„เบ”เป‰.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

Java เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเปƒเบ”เปเบ”เปˆ? เบกเบฑเบ™เบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เบžเบฒเบชเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™เป„เบฅเบเบฐเบ›เบต, เป‚เบ”เบเบ›เบฐเบŠเบฒเบŠเบปเบ™เบซเบผเบฒเบเบชเบดเบšเบ„เบปเบ™เบซเบผเบทเบซเบผเบฒเบเบฎเป‰เบญเบเบ„เบปเบ™. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบซเบผเบฒเบเป† backend เปƒเบ™ Yandex.Market เปเบกเปˆเบ™เบ‚เบฝเบ™เปƒเบ™ Java. เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ—เบตเบกเบ‡เบฒเบ™เปเบˆเบเบขเบฒเบเบขเบนเปˆเปƒเบ™เบซเบผเบฒเบเป€เบกเบทเบญเบ‡, เบชเบดเบšเบ„เบปเบ™เปƒเบ™เปเบ•เปˆเบฅเบฐ. เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบฎเบฑเบเบชเบฒ, เบกเบฑเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบชเบดเบšเบ›เบตเบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบ„เบปเบ™เปƒเบซเบกเปˆเป€เบ‚เบปเป‰เบฒเบกเบฒเปเบฅเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบฅเบฐเบซเบฑเบ”เบ™เบตเป‰.

เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเปƒเบ”เบ—เบตเปˆเบžเบฒเบชเบฒเบ„เบงเบ™เบกเบตเป€เบžเบทเปˆเบญเปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบขเบนเปˆเปƒเบ™เบ™เบฑเป‰เบ™เบ–เบทเบเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป„เบ”เป‰เบ‡เปˆเบฒเบเปเบฅเบฐเป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบžเบฑเบ”เบ—เบฐเบ™เบฒเป„เบ”เป‰เบ‡เปˆเบฒเบเปƒเบ™เบ—เบตเบกเปƒเบซเบเปˆ. เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป„เบ”เป‰, เปเบฅเบฐเบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบเป‰เป„เบ‚เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เบšเบปเบ”เบ„เบฑเบ”เบซเบเปเป‰เบ—เบตเปˆเบกเบตเบฅเบฐเบ”เบฑเบšเบชเบนเบ‡, เปเบฅเบฐเบญเบทเปˆเบ™เป†, เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆ Java เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒ. เบ™เบตเป‰เปเบกเปˆเบ™เบžเบฒเบชเบฒเบ—เบตเปˆเป€เบ™เบฑเป‰เบ™เบงเบฑเบ”เบ–เบธ. เบกเบฑเบ™เบ‡เปˆเบฒเบเปเบ—เป‰เป†เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบšเปเปˆเบกเบตเบ•เบปเบงเบ•เบปเบ™เปƒเบ™เบฅเบฐเบ”เบฑเบšเบชเบนเบ‡เปเบฅเบฐเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเบชเบฑเบšเบชเบปเบ™.

เบเบฑเบ‡เบกเบตเบเบญเบšเปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบš Java, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบžเบฒเบชเบฒเปเบกเปˆเบ™เบซเบผเบฒเบเบเปˆเบงเบฒ 15 เบ›เบต. เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบงเบฅเบฒเบ™เบตเป‰, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เป„เบ”เป‰เปเบกเปˆเบ™เบ‚เบฝเบ™เปƒเบชเปˆเบกเบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบซเบผเบฒเบเป‚เบ•เบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เปƒเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ—เบฑเบเบชเบฐเบžเบทเป‰เบ™เบ–เบฒเบ™เบญเบฑเบ™เปƒเบ”เบ—เบตเปˆเบœเบนเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ JA เบ„เบงเบ™เบกเบต? เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบžเบฒเบชเบฒเบซเบผเบฑเบเบ‚เบญเบ‡ Java. เบ•เปเปˆเป„เบ›เปเบกเปˆเบ™เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เป‚เบ„เบ‡เบฎเปˆเบฒเบ‡เบเบฒเบ™ Injection Dependency. เบœเบนเป‰เป€เบงเบปเป‰เบฒเบ•เปเปˆเป„เบ›, Kirill, เบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ. เบ‚เป‰เบญเบเบˆเบฐเบšเปเปˆเป€เบฅเบดเบเป€เบเบตเบ™เป„เบ›. เบ•เปเปˆเป„เบ›เปเบกเปˆเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปเบฅเบฐเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบญเบญเบเปเบšเบš. เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบงเบเบ‡เบฒเบกเบ—เบฒเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเป€เบžเบทเปˆเบญเบ‚เบฝเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ SQL เบซเบผเบท ORM เบชเปเบฒเบฅเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™. เปเบฅเบฐเบ™เบตเป‰เปƒเบŠเป‰เบซเบผเบฒเบเบเบฑเบš backend.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เป„เบ›! เบซเบผเบฑเบ Java. เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบˆเบฐโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ„เบปเป‰เบ™โ€‹เบžเบปเบšโ€‹เบญเบฒโ€‹เป€เบกเบฅเบดโ€‹เบเบฒโ€‹เบขเบนเปˆโ€‹เบ—เบตเปˆโ€‹เบ™เบตเป‰ โ€” เบ—เปˆเบฒเบ™โ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบฎเบนเป‰โ€‹เบžเบฒโ€‹เบชเบฒโ€‹เบ•เบปเบงโ€‹เบกเบฑเบ™โ€‹เป€เบญเบ‡. เบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ„เบงเบ™เป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆ. เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, Java เป„เบ”เป‰เบ›เปˆเบญเบเบญเบญเบเบกเบฒเบซเบผเบฒเบเบฅเบธเป‰เบ™เปƒเบ™เบŠเบธเบกเบ›เบตเบกเปเปˆเป†เบกเบฒเบ™เบตเป‰, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เปƒเบ™เบ›เบต 2014-2015, เบชเบฐเบšเบฑเบšเบ—เบต 4 เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบฎเบธเปˆเบ™เบ—เบต 8, เป€เบเบปเป‰เบฒ, เบชเบดเบš, เบฎเบธเปˆเบ™เปƒเบซเบกเปˆเบซเบผเบฒเบ, เปเบฅเบฐเบชเบดเปˆเบ‡เปƒเบซเบกเปˆเป†เบซเบผเบฒเบเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเปƒเบ™เบžเบงเบเบกเบฑเบ™. , เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, Java Stream API , lambda, เปเบฅเบฐเบญเบทเปˆเบ™เป†เบซเบผเบฒเบ, เบชเบปเบ”, เป€เบขเบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบœเบฐเบฅเบดเบ”, เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ–เบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบชเปเบฒเบžเบฒเบ”เปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฎเบนเป‰. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบšเปเปˆเบ„เบงเบ™เป€เบญเบปเบฒเบ›เบทเป‰เบกเบˆเบฒเบเบŠเบฑเป‰เบ™เบงเบฒเบ‡เปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” Java-XNUMX เปเบฅเบฐเป„เบ›เบฎเบฝเบ™เบฎเบนเป‰เบกเบฑเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เปเบœเบ™เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ: เบžเบงเบเป€เบฎเบปเบฒเบฎเบฝเบ™เบฎเบนเป‰ Java-XNUMX เบซเบผเบทเบชเบนเบ‡เบเบงเปˆเบฒ.

เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ”เบดเบ”เบชเป‰เบฒเบ‡เป€เบŠเบฑเปˆเบ™ Stream API, var, เปเบฅเบฐเบญเบทเปˆเบ™เป†.เบžเบงเบเป€เบ‚เบปเบฒเบ–เบทเบเบ–เบฒเบกเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเปเบฒเบžเบฒเบ”เปเบฅเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, Stream API เปเบกเปˆเบ™เป€เบขเบฑเบ™เบเบงเปˆเบฒ loops, เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบง, เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบขเบฑเบ™เบซเบผเบฒเบ. เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบˆเบฐเป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆ.

เปเบฅเบฐเบกเบตเบ—เบธเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ•เปˆเบฒเบ‡เป†เป€เบŠเบฑเปˆเบ™: iterators, เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบšเปเปˆเบชเปเบฒเบ„เบฑเบ™เบ•เปเปˆเป€เบˆเบปเป‰เบฒเบ•เบฒเบšเปƒเบ”เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบ™เป‰เบญเบเป†เบ”เป‰เบงเบเบ•เบปเบงเป€เบญเบ‡. เบ—เปˆเบฒเบ™เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เปƒเบœเบ•เป‰เบญเบ‡เบเบฒเบ™เบžเบงเบเบกเบฑเบ™? เปเบ•เปˆเบžเบงเบเป€เบ‚เบปเบฒเปเบ™เปˆเบ™เบญเบ™เบˆเบฐเบ–เบทเบเบ–เบฒเบกเปƒเบ™เป€เบงเบฅเบฒเบชเปเบฒเบžเบฒเบ”, เบžเบงเบเป€เบ‚เบปเบฒเปเบ™เปˆเบ™เบญเบ™เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบ—เปˆเบฒเบ™เบ„เบงเบ™เป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเบเบฑเบšเบ‚เปเป‰เบเบปเบเป€เบงเบฑเป‰เบ™, iterators เปเบฅเบฐเบชเบดเปˆเบ‡เบญเบทเปˆเบ™เป†.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™. เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เป„เบ›เป‚เบ”เบเบšเปเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡, เปเบ•เปˆเบกเบฑเบ™เบˆเบฐเบ”เบตเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบฎเบนเป‰เบงเปˆเบฒเบกเบตเบŠเบธเบ”, เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบก, เปเบฅเบฐเปเบœเปˆเบ™. เปเบฅเบฐเบเบฑเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบกเบ”เบฝเบงเบเบฑเบ™เปƒเบ™ Java เบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบผเบฒเบเบขเปˆเบฒเบ‡, เบฅเบงเบกเบ—เบฑเบ‡ HashMap เปเบฅเบฐ TreeMap. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบกเบต asymptotics เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบžเบฒเบเปƒเบ™. เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฎเบนเป‰เบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบ™เบงเปƒเบ”เปเบฅเบฐเป€เบงเบฅเบฒเปƒเบ”เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบญเบฑเบ™เปƒเบ”.

เบกเบฑเบ™เบเบฑเบ‡เบˆเบฐเป€เบขเบฑเบ™เบซเบผเบฒเบเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฎเบนเป‰เบงเปˆเบฒเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบเบžเบฒเบเปƒเบ™เปเบ™เบงเปƒเบ”. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบฎเบนเป‰ asymptotics เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ - เบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”เบเบฒเบ™เป€เบ”เบตเบกเบžเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบ, เป„เบฅเบเบฐเป€เบงเบฅเบฒเบœเปˆเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ, เปเบ•เปˆเบงเปˆเบฒเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบžเบฒเบเปƒเบ™ - เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เบฑเบ‡เปƒเบ™ HashMap เปเบกเปˆเบ™เบซเบเบฑเบ‡.

เบกเบฑเบ™เบเบฑเบ‡เบกเบตเบกเบนเบ™เบ„เปˆเบฒเบเบฒเบ™เป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเบเบฑเบšเบ•เบปเป‰เบ™เป„เบกเป‰เปเบฅเบฐเบเบฒเบŸ. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเบ—เปเบฒเบกเบฐเบ”เบฒเบซเบผเบฒเบเปƒเบ™เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบœเบฐเบฅเบดเบ”, เปเบ•เปˆเบžเบงเบเป€เบ‚เบปเบฒเบ–เบทเบเบฎเบฑเบเปƒเบ™เบเบฒเบ™เบชเปเบฒเบžเบฒเบ”. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเบฒเบกเบฒเบ”เบ‚เป‰เบฒเบกเบ•เบปเป‰เบ™เป„เบกเป‰, เป€เบชเบฑเป‰เบ™เบชเบฐเปเบ”เบ‡เปƒเบ™เบ„เบงเบฒเบกเบเบงเป‰เบฒเบ‡เปเบฅเบฐเบ„เบงเบฒเบกเป€เบฅเบดเบ. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™ algorithms เบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”.

เบ—เบฑเบ™เบ—เบตเบ—เบตเปˆเบ—เปˆเบฒเบ™เป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”, เบฅเบฐเบซเบฑเบ”เบซเบผเบฒเบเบŠเบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเบฐเบฎเบนเป‰เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบเบฒเบเบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบšเบปเบšเปเบฅเบฐเปเบเป‰เป„เบ‚เบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบš. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™ Maven เปเบฅเบฐ Gradle เบ•เบปเป‰เบ™เบ•เป. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบ™เปเบ–เบงเบ”เบฝเบง. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ—เปˆเบฒเบ™เบ‚เบฝเบ™ xml เปเบ–เบงเบ”เบฝเบงเปเบฅเบฐเบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบ‚เบปเป‰เบฒเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™. เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบเบดเปˆเบ‡เปƒเบซเบเปˆ. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปเบกเปˆเบ™เบ›เบฐเบกเบฒเบ™เบ”เบฝเบงเบเบฑเบ™, เปƒเบŠเป‰เบซเบ™เบถเปˆเบ‡ - Maven เบซเบผเบท Gradle.

เบ•เปเปˆเป„เบ› - เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบชเบฐเบšเบฑเบš. เบ‚เป‰เบญเบเบ‚เปเปเบ™เบฐเบ™เบณ Git เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบ™เบดเบเบปเบก เปเบฅเบฐเบกเบตเบซเบผเบฒเบเบšเบปเบ”เบชเบญเบ™. เป€เบเบทเบญเบšเบ—เบธเบเบ„เบปเบ™เปƒเบŠเป‰ Git, เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบขเบฑเบ™, เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ”เปเบฒเบฅเบปเบ‡เบŠเบตเบงเบดเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบกเบฑเบ™.

เปเบฅเบฐเบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ. เบ‚เป‰เบญเบเบ‚เปเปเบ™เบฐเบ™เปเบฒ IntelliJ Idea. เบกเบฑเบ™เป€เบฅเบฑเปˆเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ, เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบซเบผเบฒเบ, เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ” boilerplate เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™, เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบกเบฑเบ™เป€เบขเบฑเบ™.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เบฅเบดเป‰เบ‡เบˆเบฒเบเบชเบฐเป„เบฅเป‰: SQLZOO, habrapost

SQL. เป€เบฅเบฑเบเบ™เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบš backenders. เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบกเบตเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบ•เบฐเบซเบฅเบปเบเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰. เบชเบญเบ‡เบกเบทเป‰เบเปˆเบญเบ™เบเบฒเบ™เบชเปเบฒเบžเบฒเบ”เบเบฒเบ™เบเบถเบเบ‡เบฒเบ™เบ„เบฑเป‰เบ‡เบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบเบดเบ‡ HR เป‚เบ—เบซเบฒเบ‚เป‰เบญเบเปเบฅเบฐเป€เบงเบปเป‰เบฒเบงเปˆเบฒเปƒเบ™เบชเบญเบ‡เบกเบทเป‰เบžเบงเบเป€เบ‚เบปเบฒเบˆเบฐเบ–เบฒเบกเบ‚เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบš SQL เปเบฅเบฐ HTTP, เบ‚เป‰เบญเบเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰เบกเบฑเบ™. เปเบฅเบฐเบ‚เป‰เบญเบเบฎเบนเป‰เป€เบเบทเบญเบšเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบเปˆเบฝเบงเบเบฑเบš SQL เบซเบผเบท HTTP. เปเบฅเบฐเบ‚เป‰เบญเบเบžเบปเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเป€เบขเบฑเบ™เบ™เบตเป‰ - SQLZOO. เบ‚เป‰เบญเบเป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰ SQL เปƒเบ™ 12 เบŠเบปเปˆเบงเป‚เบกเบ‡, เบ‚เป‰เบญเบเบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ, syntax SQL, เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบฝเบ™ SELECT queries, JOIN, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเป€เบขเบฑเบ™เบซเบผเบฒเบ, เบ‚เป‰เบญเบเบ‚เปเปเบ™เบฐเบ™เปเบฒเบกเบฑเบ™. เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เปƒเบ™ 12 เบŠเบปเปˆเบงเป‚เบกเบ‡เบ‚เป‰เบญเบเป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰ 90% เบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบ‚เป‰เบญเบเบฎเบนเป‰เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™.

เปเบฅเบฐเบกเบฑเบ™เบเปเปˆเบ”เบตเบ—เบตเปˆเบˆเบฐเบฎเบนเป‰เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ—เบธเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เบต, เบ”เบฑเบ”เบชเบฐเบ™เบต, normalization. เบกเบตเบŠเบธเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เบขเบนเปˆเปƒเบ™Habre.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เปƒเบ™ Java, เบ™เบญเบ เป€เปœเบทเบญ เป„เบ›เบˆเบฒเบ SQL, เบกเบตเบฅเบฐเบšเบปเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบงเบฑเบ”เบ–เบธเป€เบŠเบฑเปˆเบ™ JPA. เบกเบตเบฅเบฐเบซเบฑเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡. เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เปเบฒเบญเบดเบ”เบกเบตเบšเบฒเบ‡เบฅเบฐเบซเบฑเบ” SQL - SELECT id name FROM info.users WHERE id IN userIds. เบˆเบฒเบเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบœเบนเป‰เปƒเบŠเป‰, เบˆเบฒเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡, ID เปเบฅเบฐเบŠเบทเปˆเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบš.

เบ•เปเปˆเป„เบ›, เบกเบตเบœเบนเป‰เบชเป‰เบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เบงเบฑเบ”เบ–เบธเบˆเบฒเบเบ–เบฒเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบงเบฑเบ”เบ–เบธ Java. เปเบฅเบฐเบกเบตเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเบชเบฒเบกเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡. เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเปเบ—เบ™เบ—เบตเปˆเป‚เบ”เบเปƒเบŠเป‰ JPA เบ”เป‰เบงเบเป€เบชเบฑเป‰เบ™เบซเบ™เบถเปˆเบ‡, เป€เบŠเบดเปˆเบ‡เบ‚เบฝเบ™เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰. เบกเบฑเบ™เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ”เบฝเบงเบเบฑเบ™ - เบŠเบญเบเบซเบฒ ByIdIn เบ—เบฑเบ‡เบซเบกเบปเบ”. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบญเบตเบ‡เบ•เบฒเบกเบŠเบทเปˆเบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™, เบกเบฑเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเบ–เบฒเบก SQL เบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™.

เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบขเบฑเบ™เบซเบผเบฒเบ. เบ‚เป‰เบญเบเป€เบญเบ‡, เป€เบกเบทเปˆเบญเบ‚เป‰เบญเบเบšเปเปˆเบฎเบนเป‰ SQL, เปƒเบŠเป‰ JPA. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆ. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ‚เบตเป‰เบเบฝเบ”เป€เบเบตเบ™เป„เบ›เบ—เบตเปˆเบˆเบฐเบฎเบฝเบ™เบฎเบนเป‰ SQL, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบžเบžเบดเบšเบฑเบ”. เปเบฅเบฐ, เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เป„เบŸ!

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เบžเบฒเบเบฎเบฝเบ™ spring. เปƒเบœเป€เบ„เบตเบเป„เบ”เป‰เบเบดเบ™เป€เบฅเบทเปˆเบญเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบ›เบฑเบ™เบเบญเบšเบžเบฒเบเบฎเบฝเบ™ spring? เป€เบˆเบปเป‰เบฒเป€เบซเบฑเบ™เบšเปเปˆเบงเปˆเบฒเป€เบˆเบปเป‰เบฒเบกเบตเบˆเบฑเบเบ„เบปเบ™? เบšเปเปˆเปเบกเปˆเบ™เบšเปเปˆเบกเบตเป€เบซเบ”เบœเบปเบ™. เบžเบฒเบเบฎเบฝเบ™ spring เปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เบธเบเป†เบšเปˆเบญเบ™เบซเบงเปˆเบฒเบ‡เบ‚เบญเบ‡ Java backend เบ—เบตเบชเบญเบ‡. เบ–เป‰เบฒเบšเปเปˆเบกเบตเบกเบฑเบ™, เบšเปเปˆเบกเบตเบšเปˆเบญเบ™เปƒเบ”เปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบญเบฑเบ™เปƒเบซเบเปˆเบซเบผเบงเบ‡. เบžเบฒเบเบฎเบฝเบ™ spring เปเบกเปˆเบ™เบซเบเบฑเบ‡? เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เบ™เบตเป‰เปเบกเปˆเบ™เบเบญเบšเบเบฒเบ™เบชเบตเบ”เปเบšเบšเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช. เบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰ เบˆเบฐเบšเบญเบ เบฅเปเบฒเป‚เบžเบ‡เบ•เปเปˆเป„เบ›. เปเบ•เปˆเปƒเบ™เบชเบฑเป‰เบ™, เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ‚เบญเบ‡เบšเบฒเบ‡เบŠเบฑเป‰เบ™เบฎเบฝเบ™เปƒเบชเปˆเบ„เบปเบ™เบญเบทเปˆเบ™. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ„เบงเบฒเบกเบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ.

Spring Boot เปเบกเปˆเบ™เบŠเบดเป‰เบ™เบชเปˆเบงเบ™เบ‚เบญเบ‡ Spring เบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบŠเบตเบŸเป€เบงเบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ”เป‰เบงเบเบ›เบธเปˆเบกเบ”เบฝเบง. เบ—เปˆเบฒเบ™เป„เบ›เบ—เบตเปˆ THID, เบเบปเบ”เบ›เบธเปˆเบกเบชเบญเบ‡เบชเบฒเบกเบ›เบธเปˆเบก, เปเบฅเบฐเบ•เบญเบ™เบ™เบตเป‰เบ—เปˆเบฒเบ™เบกเบตเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบŠเบตเบŸเป€เบงเบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ localhost 8080. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบšเปเปˆเป„เบ”เป‰เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบ”เบฝเบง, เปเบ•เปˆเบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบฅเป‰เบง. เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบขเบฑเบ™เบซเบผเบฒเบ. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ‚เบฝเบ™เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เป„เบŸ!

เบžเบฒเบเบฎเบฝเบ™ spring เป€เบ›เบฑเบ™เบเบญเบšเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบ. เบกเบฑเบ™เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเป€เบฅเบทเบญเบเป€เบญเบปเบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบŠเบตเบŸเป€เบงเบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฒเบ™เปƒเบชเปˆเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช. เบกเบฑเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เบซเบผเบฒเบเบชเบดเปˆเบ‡, เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบงเบดเบ—เบตเบเบฒเบ™ REST API. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ—เปˆเบฒเบ™เป„เบ”เป‰เบ‚เบฝเบ™เบšเบฒเบ‡เบงเบดเบ—เบตเปเบฅเบฐเบ„เบฑเบ”เบ•เบดเบ”เป€เบญเบปเบฒเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเปเบœเบ™เบ—เบตเปˆ Get เบเบฑเบšเบกเบฑเบ™. เปเบฅเบฐเบ•เบญเบ™เบ™เบตเป‰เบ—เปˆเบฒเบ™เบกเบตเบงเบดเบ—เบตเบเบฒเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปƒเบ™ localhost เบ—เบตเปˆเบ‚เบฝเบ™ Hello world เปƒเบซเป‰เบเบฑเบšเป€เบˆเบปเป‰เบฒเปเบฅเป‰เบง. เบชเบญเบ‡เบชเบฒเบเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบ. เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบขเบฑเบ™.

เบžเบฒเบเบฎเบฝเบ™ spring เบเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ‚เบฝเบ™เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™. เบšเปเปˆเบกเบตเบ—เบฒเบ‡เบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบฅเบฐเบซเบฑเบ”เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš. เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ™เบตเป‰, Java เบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบขเบฑเบ™ JUnit 5. เปเบฅเบฐ JUnit เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เปเบ•เปˆเบชเบฐเบšเบฑเบšเบซเบฅเป‰เบฒเบชเบธเบ”เปเบกเปˆเบ™เบซเป‰เบฒ. เบกเบตเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เบ—เบธเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบขเบทเบ™เบขเบฑเบ™เปเบฅเบฐเบชเบดเปˆเบ‡เบญเบทเปˆเบ™เป†.

เปเบฅเบฐเบกเบตเบเบญเบš Mockito เบ—เบตเปˆเบซเบ™เป‰เบฒเบซเบงเบฒเบ”เบชเบฝเบง. เบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ—เบปเบ”เบชเบญเบš. เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป€เบฎเบฑเบ”เบซเบผเบฒเบเบขเปˆเบฒเบ‡, เบฅเบงเบกเบ—เบฑเบ‡, เบšเบฒเบ‡เบšเปˆเบญเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ‡, เบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš VKontakte เบ”เป‰เบงเบ ID เบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบŠเบทเปˆเปเบฅเบฐเบ™เบฒเบกเบชเบฐเบเบธเบ™เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰ VKontakte เบˆเบฒเบ ID. เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบฅเบงเบกเป€เบญเบปเบฒ VKontakte เปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เปเบ›เบ. เปเบ•เปˆเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ™เบตเป‰, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Mockito, mok เบกเบฑเบ™, imitation เบกเบฑเบ™.

เบ—เปˆเบฒเบ™เบˆเบฐเป€เบงเบปเป‰เบฒเบงเปˆเบฒเป€เบกเบทเปˆเบญเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเป€เบ‚เบปเป‰เบฒเบกเบฒเปƒเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ™เบตเป‰เบ”เป‰เบงเบ ID เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบกเบฑเบ™เบˆเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบšเบฒเบ‡เบ™เบฒเบกเบชเบฐเบเบธเบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡, Vasya Pupkin. เปเบฅเบฐเบกเบฑเบ™เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบ. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ—เปˆเบฒเบ™เบˆเบฐเบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบš mok เบซเบ™เบถเปˆเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™. เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบขเบฑเบ™เบซเบผเบฒเบ.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฒเบเบชเบฐเป„เบฅเป‰

เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบญเบญเบเปเบšเบš. เบกเบฑเบ™โ€‹เปเบกเปˆเบ™โ€‹เบซเบเบฑเบ‡? เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เปเบกเปˆเปเบšเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ›เบปเบเบเบฐเบ•เบดเบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ. เปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบซเบผเบทเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบกเบฑเบเบˆเบฐเป€เบเบตเบ”เบ‚เบทเป‰เบ™เบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ”เบตเบ—เบตเปˆเบˆเบฐเปเบเป‰เป„เบ‚เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป„เบ”เป‰เบ”เบต. เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™, เบ›เบฐเบŠเบฒเบŠเบปเบ™เป„เบ”เป‰เบกเบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”, เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™, เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เบกเบตเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ™เบดเบเบปเบกเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ” - refactoring.guru, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เบกเบฑเบ™, เบŠเบญเบเบซเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบกเบตเบฎเบนเบšเปเบšเบš, เบญเปˆเบฒเบ™เบ—เบดเบ”เบชเบฐเบ”เบตเบซเบผเบฒเบ. เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เบซเบเบฑเบ‡เป€เบฅเบตเบ. เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบšเปเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ.

เบ—เปˆเบฒเบ™เบˆเบฐเป„เบ”เป‰เบเบดเบ™เบเปˆเบฝเบงเบเบฑเบšเบšเบฒเบ‡เบฎเบนเบšเปเบšเบšเป€เบŠเบฑเปˆเบ™ Singletone เบซเบผเบท Builder. เปƒเบœเป„เบ”เป‰เบเบดเบ™เบ„เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰? เบ„เบปเบ™โ€‹เบซเบผเบฒเบ. เบกเบตเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบ—เปˆเบฒเบ™เป€เบญเบ‡. เปเบ•เปˆเบฎเบนเบšเปเบšเบšเบชเปˆเบงเบ™เปƒเบซเบเปˆ: เบเบธเบ”เบ—เบฐเบชเบฒเบ”, เป‚เบฎเบ‡เบ‡เบฒเบ™, facade - เบกเบฑเบ™เบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™เบšเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™.

เปเบฅเบฐเบˆเบปเบ™เบเบงเปˆเบฒเป€เบˆเบปเป‰เบฒเบˆเบฐเป€เบซเบฑเบ™เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ„เบปเบ™เบญเบทเปˆเบ™เบšเบฒเบ‡เบšเปˆเบญเบ™เบ—เบตเปˆเบฎเบนเบšเปเบšเบšเบ™เบตเป‰เบ–เบทเบเบ™เบณเปƒเบŠเป‰, เป€เบˆเบปเป‰เบฒเบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ™เบณเปƒเบŠเป‰เบกเบฑเบ™เป€เบญเบ‡เป„เบ”เป‰. เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบเบเบฑเบšเบฎเบนเบšเปเบšเบš. เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบญเปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบžเบงเบเบกเบฑเบ™เบขเบนเปˆเปƒเบ™ refactoring.guru เปเบกเปˆเบ™เบšเปเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เบซเบผเบฒเบ, เปเบ•เปˆเบกเบฑเบ™เบ„เบธเป‰เบกเบ„เปˆเบฒเปเบ™เปˆเบ™เบญเบ™.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบฎเบนเบšเปเบšเบš? เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบตเบฅเบฐเบ”เบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™. เบกเบฑเบ™เบกเบต ID เปเบฅเบฐเบŠเบทเปˆ. เบœเบนเป‰เปƒเบŠเป‰เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบ•เป‰เบญเบ‡เบกเบตเบ—เบฑเบ‡ Id เปเบฅเบฐเบŠเบทเปˆ. เบŠเป‰เบฒเบเป€เบ—เบดเบ‡เปเบกเปˆเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™.

เบงเบดเบ—เบตเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบœเบนเป‰เปƒเบŠเป‰เปเบกเปˆเบ™เบซเบเบฑเบ‡? เบกเบตเบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบ - เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™ constructor เบซเบผเบท setter. เบ‚เปเป‰เป€เบชเบเบ‚เบญเบ‡เบ—เบฑเบ‡เบชเบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เปเบกเปˆเบ™เบซเบเบฑเบ‡?

เบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡. เบœเบนเป‰เปƒเบŠเป‰เปƒเปเปˆ (7, "เบžเบฑเบ™เบ—เบฐเบšเบฑเบ”"), เบ•เบปเบเบฅเบปเบ‡. เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบกเบต User class, เปเบ•เปˆเบกเบตเบญเบตเบเบญเบฑเบ™เปœเบถเปˆเบ‡, เบกเบต XNUMX เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ•เบปเบงเป€เบฅเบ. เป€เบˆเบปเป‰เบฒเบˆเบฐเบกเบตเบ•เบปเบงเบชเป‰เบฒเบ‡เบ—เบตเปˆเบšเบฑเบ™เบˆเบธเป€เบˆเบฑเบ”เบ•เบปเบงเป€เบฅเบเบ•เบดเบ”เบ•เปเปˆเบเบฑเบ™. เบเบฑเบ‡โ€‹เบšเปเปˆโ€‹เป€เบ›เบฑเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เปเบˆเป‰เบ‡โ€‹เป€เบ—เบทเปˆเบญโ€‹เบงเปˆเบฒโ€‹เบ•เบปเบงโ€‹เป€เบฅเบโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบซเบเบฑเบ‡ โ€‹เปเบฅเบฐโ€‹เบญเบฑเบ™โ€‹เปƒเบ”โ€‹เป€เบ›เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบŠเบฑเบšโ€‹เบชเบดเบ™โ€‹เปƒเบ”. เบœเบนเป‰เบญเบญเบเปเบšเบšเบšเปเปˆเบเบดเปˆเบ‡เปƒเบซเบเปˆ.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™ setter. เบ—เปˆเบฒเบ™เบ‚เบฝเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™: setId(7), setName("เบžเบฑเบ™เบ—เบฐเบšเบฑเบ”"). เบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบŠเบฑเบšเบชเบดเบ™เปƒเบ”เป€เบ›เบฑเบ™เบ‚เบญเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเปƒเบ”. เปเบ•เปˆ setter เบกเบตเบšเบฑเบ™เบซเบฒ. เบ›เบฐเบเบฒเบ™เบ—เปเบฒเบญเบดเบ”, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบฅเบทเบกเบ—เบตเปˆเบˆเบฐเบกเบญเบšเบซเบกเบฒเบเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡, เปเบฅเบฐเบญเบฑเบ™เบ—เบตเบชเบญเบ‡, เบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบเบฒเบเป€เบ›เบฑเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡. เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบเบฐเบ—เบนเป‰เบ—เบตเปˆเบ›เบญเบ”เป„เบžเปเบฅเบฐเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบญเปˆเบฒเบ™เบฅเบฐเบซเบฑเบ”เป€เบฅเบฑเบเบ™เป‰เบญเบ. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบ„เบปเบ™เบกเบฒเบเบฑเบšเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเป€เบขเบฑเบ™ - Builder.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เบญเบฑเบ™เบ™เบตเป‰เบเปˆเบฝเบงเบเบฑเบšเบซเบเบฑเบ‡? เปƒเบซเป‰เบžเบฐเบเบฒเบเบฒเบกเบชเบปเบกเบ—เบปเบšเบ„เบงเบฒเบกเป„เบ”เป‰เบ›เบฝเบšเบ‚เบญเบ‡เบ—เบฑเบ‡เบชเบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™ - setter เปเบฅเบฐ constructor - เปƒเบ™เบซเบ™เบถเปˆเบ‡. เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™, Builder, เป€เบŠเบดเปˆเบ‡เบเบฑเบ‡เบˆเบฐเบกเบต Id เปเบฅเบฐ Name fields, เป€เบŠเบดเปˆเบ‡เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ setter, เปเบฅเบฐเป€เบŠเบดเปˆเบ‡เบˆเบฐเบกเบตเบงเบดเบ—เบตเบเบฒเบ™ Build เบ—เบตเปˆเบชเบปเปˆเบ‡เบ„เบทเบ™เบœเบนเป‰เปƒเบŠเป‰เปƒเบซเบกเปˆเปƒเบซเป‰เบเบฑเบšเป€เบˆเบปเป‰เบฒเบ—เบตเปˆเบกเบตเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ—เบฑเบ‡เบซเบกเบปเบ”. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เปเบฅเบฐเบ•เบปเบงเบ•เบฑเป‰เบ‡. เป€เบขเบฑเบ™!

เบกเบตเบšเบฑเบ™เบซเบฒเบซเบเบฑเบ‡เปเบ”เปˆ? เบ—เบตเปˆเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบกเบต Builder เบ„เบฅเบฒเบชเบชเบดเบ. เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบฅเบทเบกเบเบฒเบ™เบเบงเบ”เบชเบญเบšเปƒเบ™เบšเบฒเบ‡เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก. เปเบฅเบฐเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบฅเบทเบกเป„เบ›เบขเป‰เบฝเบกเบขเบฒเบก ID, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เปƒเบ™ Builder เบกเบฑเบ™เบ–เบทเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™เบชเบนเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบ›เบฐเป€เบžเบ” int เบšเปเปˆเบชเบฒเบกเบฒเบ” nullable. เปเบฅเบฐเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเป‰เบ‡เบŠเบทเปˆ "เบžเบฑเบ™เบ—เบฐเบšเบฑเบ”" เปเบฅเบฐเบฅเบทเบกเป„เบ›เบขเป‰เบฝเบกเบขเบฒเบกเบซเป‰เบญเบ‡เบเบฒเบ™ ID, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบกเบตเบœเบนเป‰เปƒเบŠเป‰เปƒเบซเบกเปˆเบ—เบตเปˆเบกเบต ID "0" เปเบฅเบฐเบŠเบทเปˆ "เบžเบฑเบ™เบ—เบฐเบšเบฑเบ”". เบšเปเปˆเป€เบขเบฑเบ™.

เปƒเบซเป‰เบžเบฐเบเบฒเบเบฒเบกเบ•เปเปˆเบชเบนเป‰เบเบฑเบšเบ™เบตเป‰. เปƒเบ™ Builder เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ›เปˆเบฝเบ™ int เป€เบ›เบฑเบ™ int เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™ nullable. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบเบดเปˆเบ‡เปƒเบซเบเปˆ.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบžเบฐเบเบฒเบเบฒเบกเบชเป‰เบฒเบ‡เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบกเบตเบŠเบทเปˆ "เบžเบฑเบ™เบ—เบฐเบšเบฑเบ”", เบฅเบทเบกเปƒเบชเปˆ ID, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบปเบเป€เบงเบฑเป‰เบ™เบ•เบปเบงเบŠเบตเป‰ null, เป€เบžเบฒเบฐเบงเปˆเบฒ ID เบšเปเปˆเปเบกเปˆเบ™ null, เปเบ•เปˆ Builder เบกเบต null, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ pointer เบเบปเบเป€เบงเบฑเป‰เบ™.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบฅเบทเบกเปƒเบชเปˆเบŠเบทเปˆ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบถเปˆเบ‡เบ•เบฑเป‰เบ‡เบงเบฑเบ”เบ–เบธ replay เป€เบ›เบฑเบ™ null. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเบฒเบ Builder, เบกเบฑเบ™เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบšเปเปˆเปเบกเปˆเบ™ nullable. เปเบฅเบฐเบ™เบฑเป‰เบ™เบšเปเปˆเปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”.

เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบชเบธเบ”เบ—เป‰เบฒเบ. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบงเบฒเบ‡ null เปƒเบ™ ID runtime, เบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ”เบตเบ—เบตเปˆเบˆเบฐเบฎเบนเป‰เบ—เบฑเบ™เบ—เบตเบงเปˆเบฒเบ—เปˆเบฒเบ™เป„เบ”เป‰เป€เบฎเบฑเบ”เบกเบฑเบ™เปเบฅเบฐเบกเบฑเบ™เบšเปเปˆเป€เบขเบฑเบ™เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบœเบดเบ”เปƒเบ™เบ•เบญเบ™เบ™เบตเป‰.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เบ—เปˆเบฒเบ™ เบˆเบณ เป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ–เบดเป‰เบกเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เป€เบงเบฅเบฒเบ‚เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบœเบนเป‰เปƒเบŠเป‰, เปเบ•เปˆเป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบ•เบฑเป‰เบ‡ null เบเบฑเบš ID. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™ Builder เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ›เปˆเบฝเบ™ setter Integer เป€เบ›เบฑเบ™ int, เปเบฅเบฐเบฅเบฒเบงเบˆเบฐเบชเบฒเบšเบฒเบ™เบ—เบฑเบ™เบ—เบตเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบ–เบดเป‰เบก null.

เปƒเบ™เบชเบฑเป‰เบ™, เบˆเบธเบ”เปเบกเปˆเบ™เบซเบเบฑเบ‡? เบกเบตเบฎเบนเบšเปเบšเบš Builder เบ‡เปˆเบฒเบเบ”เบฒเบ, เปเบ•เปˆเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบกเบฑเบ™เบเบฑเบ‡เบกเบตเบšเบฒเบ‡ subtleties, เบชเบฐเบ™เบฑเป‰เบ™เบกเบฑเบ™เป€เบขเบฑเบ™เบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบฎเบนเบšเปเบšเบš. เปเบ•เปˆเบฅเบฐเบฎเบนเบšเปเบšเบšเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบผเบฒเบเบชเบดเบšเบญเบฑเบ™. เบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบ.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™ Builder เปƒเบ™เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบœเบฐเบฅเบดเบ”เปเบ™เบงเปƒเบ”? เบ™เบตเป‰เปเบกเปˆเบ™เบœเบนเป‰เปƒเบŠเป‰เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบžเบงเบเป€เบฎเบปเบฒเบ„เบฑเบ”เบ•เบดเบ”เบเบฒเบ™เบซเบกเบธเบ™ Builder เบˆเบฒเบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” Lombok เบเบฑเบšเบกเบฑเบ™, เปเบฅเบฐเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบชเป‰เบฒเบ‡ Builder เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เปƒเบ”เป†, เปเบ•เปˆ Java เบ„เบดเบ”เบงเปˆเบฒเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ™เบตเป‰เบกเบต Builder, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบญเบตเป‰เบ™เบกเบฑเบ™เปเบšเบšเบ™เบตเป‰.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบงเบปเป‰เบฒเปเบฅเป‰เบงเบงเปˆเบฒ Java เบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเปเบฒเบฅเบฑเบšเป€เบเบทเบญเบšเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡, เบฅเบงเบกเบ—เบฑเบ‡ Lombok, เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบขเบฑเบ™เบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ‚เบฝเบ™ boilerplate. เบœเบนเป‰เบเปเปˆเบชเป‰เบฒเบ‡, เป„เบ”เป‰เบฎเบฑเบš.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เบฎเบนเบšเปเบšเบšเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ - เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบซเป‰เบญเบ‡เบฎเบฝเบ™เบซเบ™เบถเปˆเบ‡, เปเบ•เปˆเบเบฑเบšเบฅเบฐเบšเบปเบšเบ—เบฑเบ‡เบซเบกเบปเบ”. เบกเบตเบซเบผเบฑเบเบเบฒเบ™เบ—เบตเปˆเป€เบขเบฑเบ™เปƒเบ™เบเบฒเบ™เบญเบญเบเปเบšเบšเบฅเบฐเบšเบปเบš: เบซเบผเบฑเบเบเบฒเบ™เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ”เบฝเบง. เบฅเบฒเบงเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบซเบเบฑเบ‡? เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเปเบ•เปˆเบฅเบฐเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ•เป‰เบญเบ‡เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบšเบฒเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบกเบต Controller เบ—เบตเปˆเบ•เบดเบ”เบ•เปเปˆเบชเบทเปˆเบชเบฒเบ™เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰, JSON objects. เบกเบต Facade, เป€เบŠเบดเปˆเบ‡เบ›เปˆเบฝเบ™เบงเบฑเบ”เบ–เบธ JSON เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ—เบตเปˆเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Java เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš. เบกเบตเบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบกเบตเป€เบซเบ”เบœเบปเบ™เบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ•เบปเบงเปเบšเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เบกเบต Data Access Object เบ—เบตเปˆเป€เบญเบปเบฒเบ•เบปเบงเปเบšเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™. เปเบฅเบฐเบกเบตเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡. เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบซเบ™เบถเปˆเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™, เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบชเป‰เบฒเบ‡เบซเป‰เบฒเบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เปเบฅเบฐเบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบฎเบนเบšเปเบšเบšเบญเบทเปˆเบ™.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰ Java เบซเบผเบฒเบเบซเบผเบทเบซเบ™เป‰เบญเบ, เบกเบฑเบ™เบ”เบตเบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡เบ—เบตเปˆเบˆเบฐเบกเบตเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš APIs เบญเบทเปˆเบ™เป†, เปเบฅเบฐเป€เบ›เบตเบ”เป€เบœเบตเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบŠเบตเบŸเป€เบงเบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบซเป‰เบเบฑเบšเบฅเบนเบเบ„เป‰เบฒ REST API. เบ™เบตเป‰เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ”เบตเบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบŠเบตเบงเบฐเบ›เบฐเบซเบงเบฑเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ, เบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เบˆเบธเบ”เบˆเบปเบšเบ—เบตเปˆเบ”เบตเบเบฑเบšเบเบฒเบ™เบชเบถเบเบชเบฒเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ. เบ”เป‰เบงเบเบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ›เปเบฅเบฐเป„เบ”เป‰เบงเบฝเบ.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบŠเบตเบŸเป€เบงเบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ. เปƒเบ™เบ›เบตเบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ‚เป‰เบญเบเป„เบ”เป‰เบ‚เบฝเบ™เบšเบปเบ”เบšเบฑเบ™เบ—เบถเบเบเบฑเบšเบ„เบปเบ™. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบเปเบฒเบฅเบฑเบ‡เบ‚เบฝเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบกเบทเบ–เบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบเบดเบ”เบˆเบฐเบเปเบฒ. เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™, เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเบœเปˆเบฒเบ™ VKontakte, เบงเบฒเบ‡เบˆเบธเบ”เปƒเบ™เปเบœเบ™เบ—เบตเปˆ, เบชเป‰เบฒเบ‡เป€เบซเบ”เบเบฒเบ™, เป€เบŠเบทเป‰เบญเป€เบŠเบตเบ™เป€เบžเบทเปˆเบญเบ™เบกเบดเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ, เบšเบฑเบ™เบ—เบถเบเบฎเบนเบšเบžเบฒเบšเบ‚เบญเบ‡เป€เบซเบ”เบเบฒเบ™, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เบ‚เป‰เบญเบเป„เบ”เป‰เป€เบฎเบฑเบ”เบซเบเบฑเบ‡เปเบ”เปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™? เบ‚เบฝเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบŠเบตเบŸเป€เบงเบตเปƒเบ™ Spring Boot เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เปƒเบŠเป‰ SQL. เบ‚เป‰เบญเบเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบเบฅเบฒเบง, เบ‚เป‰เบญเบเปƒเบŠเป‰ JPA. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เปเบ™เบงเปƒเบ”? เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš VK เบœเปˆเบฒเบ™ OAuth-2. เป€เบญเบปเบฒ token เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰, เป„เบ›เบซเบฒ VK เบเบฑเบšเบกเบฑเบ™, เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡. เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบœเปˆเบฒเบ™ VKontakte. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เบœเปˆเบฒเบ™ JPA. เบŠเปเบฒเบ™เบดเบŠเปเบฒเบ™เบฒเบ™เบšเบฑเบ™เบ—เบถเบเบฎเบนเบšเบžเบฒเบšเปเบฅเบฐเป„เบŸเบฅเปŒเบญเบทเปˆเบ™เป†เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ„เบญเบกเบžเบดเบงเป€เบ•เบต, เปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒเปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™. เปƒเบ™เป€เบงเบฅเบฒเบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเบšเปเปˆเบฎเบนเป‰เบงเปˆเบฒเบกเบตเบงเบฑเบ”เบ–เบธ CLOB เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเบˆเบถเปˆเบ‡เป€เบฎเบฑเบ”เปเบšเบšเบ™เบตเป‰. เบกเบต REST API เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰, เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒ. เปเบฅเบฐเบกเบตเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™.

[โ€ฆ] เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบเบ‚เบญเบ‡เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เบ—เบตเปˆเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบš Java. เปƒเบ™เบ›เบตเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเบขเบนเปˆเปƒเบ™เบกเบฐเบซเบฒเบงเบดเบ—เบฐเบเบฒเป„เบฅ, เบ‚เป‰เบญเบเป„เบ”เป‰เบ–เบทเบเบชเบญเบ™ C# เปเบฅเบฐเปƒเบซเป‰เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก OOP - เบซเป‰เบญเบ‡เบฎเบฝเบ™เปƒเบ”, เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš, abstraction เปเบกเปˆเบ™, เปเบฅเบฐเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบงเบเบกเบฑเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™. เบกเบฑเบ™เบŠเปˆเบงเบเบ‚เป‰เบญเบเบซเบผเบฒเบ. เบ–เป‰เบฒเบšเปเปˆเบกเบตเบชเบดเปˆเบ‡เบ™เบตเป‰, เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบเบฒเบ; เบกเบฑเบ™เบšเปเปˆเบˆเบฐเปเบˆเป‰เบ‡เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบซเป‰เบญเบ‡เบฎเบฝเบ™เบˆเบถเปˆเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™.

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เป‰เบญเบ‡เบฎเบฝเบ™เบฎเบนเป‰ Java เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ Yandex

เปƒเบ™เบ›เบตเบ—เบตเบชเบญเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบเบขเบนเปˆเปƒเบ™เบกเบฐเบซเบฒเบงเบดเบ—เบฐเบเบฒเป„เบฅ, เบžเบงเบเป€เบ‚เบปเบฒเป„เบ”เป‰เบชเบญเบ™ Java core เบญเบตเบเป€เบ—เบทเปˆเบญ เปœเบถเปˆเบ‡, เปเบ•เปˆเบ‚เป‰เบญเบเบšเปเปˆเป„เบ”เป‰เบขเบธเบ”เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™, เบ‚เป‰เบญเบเป„เบ”เป‰เป„เบ›เบฎเบฝเบ™ Spring เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เปเบฅเบฐเบ‚เบฝเบ™เป€เบญเบเบฐเบชเบฒเบ™เบซเบผเบฑเบเบชเบนเบ”, เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เป€เบŠเบดเปˆเบ‡เบ‚เป‰เบญเบเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡. เปเบฅเบฐเบ”เป‰เบงเบเบชเบดเปˆเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป„เบ›เบเบถเบเบ‡เบฒเบ™เบขเบนเปˆ Yandex, เบœเปˆเบฒเบ™เบเบฒเบ™เบชเปเบฒเบžเบฒเบ”, เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ Yandex.Market. เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเบ‚เบฝเบ™ backend เบชเปเบฒเบฅเบฑเบš Beru, เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบฐเบซเบผเบฒเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เปเบฅเบฐเบชเปเบฒเบฅเบฑเบš Yandex.Market เป€เบญเบ‡.

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบซเบปเบเป€เบ”เบทเบญเบ™เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป‚เบญเบ™เป„เบ›เบซเบฒเบ—เบตเบกเบ‡เบฒเบ™เบญเบทเปˆเบ™เบžเบฒเบเปƒเบ™เบ•เบฐเบซเบผเบฒเบ”เบ”เบฝเบงเบเบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบชเปเบฒเบฅเบฑเบšเบ„เบนเปˆเบฎเปˆเบงเบกเบ‡เบฒเบ™เบ—เบธเบฅเบฐเบเบดเบ”. เบžเบงเบเป€เบฎเบปเบฒเบขเบนเปˆเปƒเบ™เป€เบงเบ—เบตเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ, เบกเบตเบชเบฒเบกเบ„เบปเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบขเบนเปˆเปƒเบ™ backend, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเบกเบตเบชเปˆเบงเบ™เปเบšเปˆเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบญเบดเบ”เบ—เบดเบžเบปเบ™เบ•เปเปˆเป‚เบ„เบ‡เบเบฒเบ™. เบกเบฑเบ™เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบ, เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบง. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฐเบซเบ™เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบ•เบฐเบซเบผเบฒเบ”เบ•เบปเบงเบˆเบดเบ‡ - เบเบฒเบ™เบ‚เบฒเบเปเบกเปˆเบ™เบซเบเบฑเบ‡, เปƒเบ™เบ›เบฐเป€เบžเบ”เปƒเบ”, เปƒเบ™เปเบšเบšเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบชเปเบฒเบฅเบฑเบšเบ„เบนเปˆเบฎเปˆเบงเบกเบ‡เบฒเบ™เบ—เบธเบฅเบฐเบเบดเบ”, เบšเปเบฅเบดเบชเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบชเบฝเบ‡. เปเบฅเบฐเบกเบตเบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰, เปเบฅเบฐเบกเบฑเบ™เป€เบขเบฑเบ™เบซเบผเบฒเบ.

เบ‚เบญเบšโ€‹เปƒเบˆ! เบฅเบดเป‰เบ‡เบ—เบตเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”:
- "Java 8. เบ„เบนเปˆเบกเบทเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™".
- เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™.
- SQLZOO.
- เบเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ›เบปเบเบเบฐเบ•เบด.
- เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบญเบญเบเปเบšเบš.
- เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบญเบญเบเปเบšเบš.
- เบฅเบฐเบซเบฑเบ”เบชเบฐเบญเบฒเบ”.
- Java เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™