ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ื‘ืžื” ืฉื•ื ื” Java ืžืฉืคื•ืช ืคื•ืคื•ืœืจื™ื•ืช ืื—ืจื•ืช? ืžื“ื•ืข Java ืฆืจื™ื›ื” ืœื”ื™ื•ืช ื”ืฉืคื” ื”ืจืืฉื•ื ื” ืœืœืžื•ื“? ื‘ื•ื ื ื™ืฆื•ืจ ืชื•ื›ื ื™ืช ืฉืชืขื–ื•ืจ ืœืš ืœืœืžื•ื“ Java ื”ืŸ ืžืืคืก ื•ื”ืŸ ืขืœ ื™ื“ื™ ื™ื™ืฉื•ื ืžื™ื•ืžื ื•ื™ื•ืช ืชื›ื ื•ืช ื‘ืฉืคื•ืช ืื—ืจื•ืช. ื‘ื•ืื• ื ืคืจื˜ ืืช ื”ื”ื‘ื“ืœื™ื ื‘ื™ืŸ ื™ืฆื™ืจืช ืงื•ื“ ื™ื™ืฆื•ืจ ื‘-Java ืœื‘ื™ืŸ ืคื™ืชื•ื— ื‘ืฉืคื•ืช ืื—ืจื•ืช. ืžื™ื›ืื™ืœ ื–ืื˜ืคื™ืืงื™ืŸ ืงืจื ืืช ื”ื“ื•ื— ื”ื–ื” ื‘ืคื’ื™ืฉื” ืœืžืฉืชืชืคื™ื ืขืชื™ื“ื™ื™ื ื”ืชืžื—ื•ื™ื•ืช Yandex ื•ืžืคืชื—ื™ื ืžืชื—ื™ืœื™ื ืื—ืจื™ื - Java Junior meetup.


- ืฉืœื•ื ืœื›ื•ืœื, ืฉืžื™ ืžื™ืฉื”. ืื ื™ ืžืคืชื— ืž-Yandex.Market, ื•ื”ื™ื•ื ืื ื™ ืื’ื™ื“ ืœืš ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ืื™ืš ืœืขืฉื•ืช ืืช ื–ื” ื‘ื™ืขื™ืœื•ืช. ืื•ืœื™ ืชืฉืืœ ืฉืืœื” ืกื‘ื™ืจื”: ืœืžื” ืื ื™ ืืกืคืจ ืืช ื”ืกื™ืคื•ืจ ื”ื–ื”, ื•ืœื ืื™ื–ื” ืžืคืชื— ื—ื–ืง ืขื ื ื™ืกื™ื•ืŸ ืจื‘ ืฉื ื™ื? ื”ืขื•ื‘ื“ื” ื”ื™ื ืฉืื ื™ ืขืฆืžื™ ืœืžื“ืชื™ ื’'ืื•ื•ื” ืœืื—ืจื•ื ื”, ืœืคื ื™ ื›ืฉื ื” ื•ื—ืฆื™, ืื– ืื ื™ ืขื“ื™ื™ืŸ ื–ื•ื›ืจ ืื™ืš ื–ื” ื”ื™ื” ื•ืื™ื–ื” ืžืœื›ื•ื“ื•ืช ื™ืฉ.

ืœืคื ื™ ืฉื ื” ืงื™ื‘ืœืชื™ ื”ืชืžื—ื•ืช ื‘-Yandex.Market. ืคื™ืชื—ืชื™ ืืช ื”-backend ืขื‘ื•ืจ Beru, ืขื‘ื•ืจ ื”ืฉื•ืง ืขืฆืžื•, ื›ื ืจืื” ืฉื”ืฉืชืžืฉืช ื‘ื•. ืขื›ืฉื™ื• ืื ื™ ืžืžืฉื™ืš ืœืขื‘ื•ื“ ืฉื, ื‘ืฆื•ื•ืช ืื—ืจ. ืื ื• ื™ื•ืฆืจื™ื ืคืœื˜ืคื•ืจืžื” ืื ืœื™ื˜ื™ืช ืขื‘ื•ืจ Yandex.Market ืขื‘ื•ืจ ืฉื•ืชืคื™ื ืขืกืงื™ื™ื.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ื‘ื•ืื• ื ืชื—ื™ืœ. ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ืžื ืงื•ื“ืช ืžื‘ื˜ ืžืขืฉื™ืช? ื”ืขื•ื‘ื“ื” ื”ื™ื ืฉ-Java ื”ื™ื ืฉืคืช ืชื›ื ื•ืช ืžืื•ื“ ืžืคื•ืจืกืžืช. ื™ืฉ ื‘ื” ืงื”ื™ืœื” ื’ื“ื•ืœื” ืžืื•ื“.

ืœื“ื•ื’ืžื”, ืงื™ื™ื ืื™ื ื“ืงืก TIOBE ื›ื–ื”, ืื™ื ื“ืงืก ืคื•ืคื•ืœืจื™ ืœืคื•ืคื•ืœืจื™ื•ืช ืฉืœ ืฉืคื•ืช ืชื›ื ื•ืช, ื•ื’'ืื•ื•ื” ื‘ืžืงื•ื ื”ืจืืฉื•ืŸ ืฉื. ื›ืžื• ื›ืŸ, ื‘ืืชืจื™ ื“ืจื•ืฉื™ื ื‘ื•ื•ื“ืื™ ืชืฉื™ืžื• ืœื‘ ืฉืจื•ื‘ ื”ืžืฉืจื•ืช ื”ืคื ื•ื™ื•ืช ืขื•ืกืงื•ืช ื‘-Java, ื›ืœื•ืžืจ ื‘ืคื™ืชื•ื— ื‘-Java ืชืžื™ื“ ืชื•ื›ืœื• ืœืžืฆื•ื ืขื‘ื•ื“ื”.

ืžื›ื™ื•ื•ืŸ ืฉื”ืงื”ื™ืœื” ืžืื•ื“ ื’ื“ื•ืœื”, ื›ืœ ืฉืืœื” ืฉื™ืฉ ืœืš ืชืžืฆื ืชืฉื•ื‘ื” ื‘ืื™ื–ื” Stack Overflow ืื• ื‘ืืชืจื™ื ืื—ืจื™ื. ื›ืžื• ื›ืŸ, ื‘ืขืช ืคื™ืชื•ื— ื‘-Java, ืืชื” ืœืžืขืฉื” ื›ื•ืชื‘ ืงื•ื“ ื‘-JVM, ื›ืš ืฉืชื•ื›ืœ ืœืขื‘ื•ืจ ื‘ืงืœื•ืช ืœ-Kotlin, Scala ื•ืฉืคื•ืช ืื—ืจื•ืช ืฉืžืฉืชืžืฉื•ืช ื‘-JVM.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ืžื” ื˜ื•ื‘ ื‘ื’'ืื•ื•ื” ืžื ืงื•ื“ืช ืžื‘ื˜ ืื™ื“ื™ืื•ืœื•ื’ื™ืช? ื™ืฉ ืฉืคื•ืช ืชื›ื ื•ืช ืฉื•ื ื•ืช. ื”ื ืคื•ืชืจื™ื ื‘ืขื™ื•ืช ืฉื•ื ื•ืช, ืืชื” ื™ื•ื“ืข ืืช ื–ื”. ืœื“ื•ื’ืžื”, Python ืžืฆื•ื™ืŸ ืœื›ืชื™ื‘ืช ืกืงืจื™ืคื˜ื™ื ื‘ืฉื•ืจื” ืื—ืช ื›ื“ื™ ืœืคืชื•ืจ ื‘ืขื™ื•ืช ืžื”ื™ืจื•ืช.

ื‘ืฆื“ ื”ื—ื™ื•ื‘ื™, ืืชื” ื™ื›ื•ืœ ืœืฉืœื•ื˜ ื‘ืื•ืคืŸ ืžืœื ื‘ืงื•ื“ ื”ื”ืคืขืœื”. ืœื“ื•ื’ืžื”, ื™ืฉ ืœื ื• ืžื›ื•ื ื™ื•ืช, ืžื›ื•ื ื™ื•ืช ืœืœื ื ื”ื’ ืฉืœ Yandex, ื”ืงื•ื“ ืฉืœื”ืŸ ื›ืชื•ื‘ ื‘ืคืœื•ืกื™ื. ืœืžื”? ืœื’'ืื•ื•ื” ื™ืฉ ื“ื‘ืจ ื›ื–ื” - Garbage Collector. ื–ื” ืžื ืงื” ื–ื™ื›ืจื•ืŸ RAM ืžื—ืคืฆื™ื ืžื™ื•ืชืจื™ื. ื”ื“ื‘ืจ ื”ื–ื” ืžืชื—ื™ืœ ื‘ืื•ืคืŸ ืกืคื•ื ื˜ื ื™ ื•ืขื•ืฆืจ ืืช ื”ืขื•ืœื, ื›ืœื•ืžืจ, ื”ื•ื ืขื•ืฆืจ ืืช ืฉืืจ ื”ืชื•ื›ื ื™ืช ื•ื”ื•ืœืš ืœืกืคื•ืจ ื—ืคืฆื™ื, ื–ื™ื›ืจื•ืŸ ื ืงื™ ืฉืœ ื—ืคืฆื™ื. ืื ื“ื‘ืจ ื›ื–ื” ืขื•ื‘ื“ ื‘ืžื–ืœ"ื˜, ื–ื” ืœื ืžื’ื ื™ื‘. ื”ืžืœ"ื˜ ืฉืœืš ื™ื™ืกืข ื™ืฉืจ, ื‘ืจื’ืข ื–ื” ื™ื ืงื” ืืช ื”ื–ื™ื›ืจื•ืŸ ืฉืœื• ื•ืœื ื™ืกืชื›ืœ ืขืœ ื”ื›ื‘ื™ืฉ ื›ืœืœ. ืœื›ืŸ, ื”ืžืœ"ื˜ ื›ืชื•ื‘ ืขืœ ื”ืžืงืฆื•ืขื ื™ื.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ืื™ืœื• ื‘ืขื™ื•ืช ื’'ืื•ื•ื” ืคื•ืชืจ? ื–ื•ื”ื™ ื‘ืขื™ืงืจ ืฉืคื” ืœืคื™ืชื•ื— ืชื•ื›ื ื™ื•ืช ื’ื“ื•ืœื•ืช ืฉื ื›ืชื‘ื•ืช ืœืื•ืจืš ืฉื ื™ื, ืขืœ ื™ื“ื™ ืขืฉืจื•ืช ืื• ืžืื•ืช ืื ืฉื™ื. ื‘ืคืจื˜, ื—ืœืง ื’ื“ื•ืœ ืžื”-backend ื‘-Yandex.Market ื›ืชื•ื‘ ื‘ื’'ืื•ื•ื”. ื™ืฉ ืœื ื• ืฆื•ื•ืช ืžื‘ื•ื–ืจ ื‘ืžืกืคืจ ืขืจื™ื, ืขืฉืจื” ืื ืฉื™ื ื‘ื›ืœ ืื—ืช. ื•ื”ืงื•ื“ ืงืœ ืœืชื—ื–ื•ืงื”, ื”ื•ื ื ืชืžืš ื›ื‘ืจ ืขืฉืจ ืฉื ื™ื ืื• ื™ื•ืชืจ, ื•ื‘ืžืงื‘ื™ืœ ื ื›ื ืกื™ื ืื ืฉื™ื ื—ื“ืฉื™ื ื•ืžื‘ื™ื ื™ื ืืช ื”ืงื•ื“ ื”ื–ื”.

ืื™ืœื• ืžืืคื™ื™ื ื™ื ืฆืจื™ื›ื™ื ืœื”ื™ื•ืช ืœืฉืคื” ื›ื“ื™ ืฉื”ืงื•ื“ ื‘ื” ื™ืชืžื•ืš ื‘ืงืœื•ืช ื•ื›ื“ื™ ืฉื ื™ืชืŸ ื™ื”ื™ื” ืœืคืชื— ืื•ืชื” ื‘ืงืœื•ืช ื‘ืฆื•ื•ืชื™ื ื’ื“ื•ืœื™ื. ืงื•ื“ื ื›ืœ, ื–ื” ืฆืจื™ืš ืœื”ื™ื•ืช ืงื•ื“ ืงืจื™ื, ื•ื–ื” ืฆืจื™ืš ืœื”ื™ื•ืช ืงืœ ืœื™ื™ืฉื ืคืชืจื•ื ื•ืช ืืจื›ื™ื˜ืงื˜ื•ื ื™ื™ื ืžื•ืจื›ื‘ื™ื. ื›ืœื•ืžืจ, ื–ื” ืฆืจื™ืš ืœื”ื™ื•ืช ืงืœ ืœื›ืชื•ื‘ ื”ืคืฉื˜ื•ืช ื‘ืจืžื” ื’ื‘ื•ื”ื” ื•ื›ื•'. ื›ืœ ื–ื” ืžื” ืฉ-Java ืžืกืคืงืช ืœื ื•. ื–ื•ื”ื™ ืฉืคื” ืžื›ื•ื•ื ืช ืขืฆืžื™ื. ื–ื” ืžืžืฉ ืงืœ ืœื™ื™ืฉื ื”ืคืฉื˜ื•ืช ื‘ืจืžื” ื’ื‘ื•ื”ื” ื•ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืžื•ืจื›ื‘ื•ืช.

ื™ืฉ ื’ื ื”ืจื‘ื” ืžืกื’ืจื•ืช ื•ืกืคืจื™ื•ืช ืœ-Java, ื›ื™ ื”ืฉืคื” ื”ื™ื ื‘ืช ื™ื•ืชืจ ืž-15 ืฉื ื™ื. ื‘ืžื”ืœืš ื”ื–ืžืŸ ื”ื–ื”, ื›ืœ ืžื” ืฉืืคืฉืจ ื”ื™ื” ืœื›ืชื•ื‘ ืขืœื™ื• ื”ื™ื” ื›ืชื•ื‘, ื›ืš ืฉื™ืฉ ื˜ื•ื ื•ืช ืฉืœ ืกืคืจื™ื•ืช ืœื›ืœ ืžื” ืฉืืชื” ืฆืจื™ืš.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ืื™ืœื• ื›ื™ืฉื•ืจื™ื ื‘ืกื™ืกื™ื™ื, ืœื“ืขืชื™, ืฆืจื™ื›ื™ื ืœื”ื™ื•ืช ืœืฉื—ืงืŸ JA ืžืชื—ื™ืœ? ืงื•ื“ื ื›ืœ, ืžื“ื•ื‘ืจ ื‘ื™ื“ืข ื‘ืฉืคืช ื”ืœื™ื‘ื” ืฉืœ Java. ื”ื‘ื ื”ื•ื ืื™ื–ื•ืฉื”ื™ ืžืกื’ืจืช ืฉืœ ื”ื–ืจืงืช ืชืœื•ืช. ื”ื“ื•ื‘ืจ ื”ื‘ื, ืงื™ืจื™ืœ, ื™ื“ื‘ืจ ืขืœ ื–ื” ื‘ืฆื•ืจื” ืžืœืื” ื™ื•ืชืจ. ืื ื™ ืœื ืื›ื ืก ื™ื•ืชืจ ืžื“ื™ ืœืขื•ืžืง. ื”ื‘ื ื”ื•ื ื“ืคื•ืกื™ ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ื•ื”ืขื™ืฆื•ื‘. ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ื™ื•ืช ืžืกื•ื’ืœื™ื ืœื›ืชื•ื‘ ืงื•ื“ ื™ืคื” ืžื‘ื—ื™ื ื” ืืจื›ื™ื˜ืงื˜ื•ื ื™ืช ื›ื“ื™ ืœื›ืชื•ื‘ ื™ื™ืฉื•ืžื™ื ื’ื“ื•ืœื™ื. ื•ื–ื” ืกื•ื’ ืฉืœ SQL ืื• ORM ืœืžืฉื™ืžื•ืช ืฉืœ ืขื‘ื•ื“ื” ืขื ืžืกื“ ื”ื ืชื•ื ื™ื. ื•ื–ื” ื—ืœ ื™ื•ืชืจ ืขืœ ื”ืงืฆื” ื”ืื—ื•ืจื™.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ืœืœื›ืช! ืœื™ื‘ืช Java. ืื ื™ ืœื ื‘ืืžืช ืื’ืœื” ื›ืืŸ ืืช ืืžืจื™ืงื” - ืืชื” ืฆืจื™ืš ืœื“ืขืช ืืช ื”ืฉืคื” ืขืฆืžื”. ืœืžื” ื›ื“ืื™ ืœืฉื™ื ืœื‘. ืจืืฉื™ืช, ื’'ืื•ื•ื” ื”ื•ืฆื™ืื” ื”ืจื‘ื” ื’ืจืกืื•ืช ื‘ืฉื ื™ื ื”ืื—ืจื•ื ื•ืช, ื›ืœื•ืžืจ ื‘-2014-2015 ื™ืฆืื” ื”ืฉื‘ื™ืขื™ืช, ืื—ืจ ื›ืš ื”ืฉืžื™ื ื™ืช, ื”ืชืฉื™ืขื™ืช, ื”ืขืฉื™ืจื™ืช, ื”ืจื‘ื” ื’ืจืกืื•ืช ื—ื“ืฉื•ืช, ื•ื”ื•ืฆื’ื• ื‘ื”ืŸ ื”ืจื‘ื” ื“ื‘ืจื™ื ืžื’ื ื™ื‘ื™ื. , ืœืžืฉืœ, Java Stream API , lambda ื•ื›ื•'. ื“ื‘ืจื™ื ืžืื•ื“ ืžื’ื ื™ื‘ื™ื, ื˜ืจื™ื™ื, ืžื’ื ื™ื‘ื™ื ืฉืžืฉืชืžืฉื™ื ื‘ื”ื ื‘ืงื•ื“ ื™ื™ืฆื•ืจ, ืขืœ ืžื” ืฉื•ืืœื™ื ื‘ืจืื™ื•ื ื•ืช ื•ืฉืืชื ืฆืจื™ื›ื™ื ืœื“ืขืช. ืœื›ืŸ, ืืกื•ืจ ืœืงื—ืช ืกืคืจ ืžื”ืžื“ืฃ ื‘ืกืคืจื™ื™ืช Java-4 ื•ืœืœื›ืช ืœืœืžื•ื“ ืื•ืชื•. ื–ื• ื”ืชื•ื›ื ื™ืช ืฉืœื ื•: ืื ื—ื ื• ืœื•ืžื“ื™ื Java-8 ื•ืžืขืœื”.

ืื ื• ืžืงื“ื™ืฉื™ื ืชืฉื•ืžืช ืœื‘ ืจื‘ื” ืœื—ื™ื“ื•ืฉื™ื ื›ื’ื•ืŸ Stream API, var ื•ื›ื•'. ื”ื ื ืฉืืœื™ื ื‘ืžื”ืœืš ืจืื™ื•ื ื•ืช ื•ืžืฉืžืฉื™ื ื›ืœ ื”ื–ืžืŸ ื‘ื™ื™ืฆื•ืจ. ื›ืœื•ืžืจ, ื”-API ืฉืœ Stream ื”ืจื‘ื” ื™ื•ืชืจ ืžื’ื ื™ื‘ ืžืœื•ืœืื•ืช, ื‘ืื•ืคืŸ ื›ืœืœื™, ื“ื‘ืจ ืžืื•ื“ ืžื’ื ื™ื‘. ื”ืงืคื“ ืœืฉื™ื ืœื‘.

ื•ื™ืฉ ื›ืœ ืžื™ื ื™ ื“ื‘ืจื™ื ื›ืžื• ืื™ื˜ืจื˜ื•ืจื™ื, ื—ืจื™ื’ื™ื ื•ื›ืŸ ื”ืœืื”. ื“ื‘ืจื™ื ืฉื ืจืื™ื ืœืš ืœื ื—ืฉื•ื‘ื™ื ื›ืœ ืขื•ื“ ืืชื” ื›ื•ืชื‘ ืื™ื–ื” ืงื•ื“ ืงื˜ืŸ ื‘ืขืฆืžืš. ืืชื” ืœื ืฆืจื™ืš ืืช ื”ื—ืจื™ื’ื™ื ื”ืืœื”, ืžื™ ืฆืจื™ืš ืื•ืชื ื‘ื›ืœืœ? ืื‘ืœ ื”ื ื‘ื”ื—ืœื˜ ื™ืฉืืœื• ื‘ืจืื™ื•ื ื•ืช, ื”ื ื‘ื”ื—ืœื˜ ื™ื•ืขื™ืœื• ืœืš ื‘ื”ืคืงื”. ื‘ืื•ืคืŸ ื›ืœืœื™, ื›ื“ืื™ ืœืฉื™ื ืœื‘ ืœื—ืจื™ื’ื™ื, ืื™ื˜ืจื˜ื•ืจื™ื ื•ื“ื‘ืจื™ื ืื—ืจื™ื.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ืžื‘ื ื™ ืžื™ื“ืข. ืืชื” ืœื ื™ื›ื•ืœ ืœืœื›ืช ื‘ืœื™ ืžื‘ื ื™ื, ืื‘ืœ ื–ื” ื™ื”ื™ื” ื ื”ื“ืจ ืื ืืชื” ืœื ืจืง ื™ื•ื“ืข ืฉื™ืฉ ืกื˜ื™ื, ืžื™ืœื•ื ื™ื ื•ื’ื™ืœื™ื•ื ื•ืช. ื•ื’ื ื™ื™ืฉื•ืžื™ื ืฉื•ื ื™ื ืฉืœ ืžื‘ื ื™ื. ืœื“ื•ื’ืžื”, ืœืื•ืชื• ืžื™ืœื•ืŸ ื‘-Java ื™ืฉ ื™ื™ืฉื•ืžื™ื ืจื‘ื™ื, ื›ื•ืœืœ HashMap ื•-TreeMap. ื™ืฉ ืœื”ื ืืกื™ืžืคื˜ื•ื˜ื™ืงื•ืช ืฉื•ื ื•ืช, ื”ื ื‘ื ื•ื™ื™ื ืื—ืจืช ืžื‘ืคื ื™ื. ืืชื” ืฆืจื™ืš ืœื“ืขืช ืื™ืš ื”ื ืฉื•ื ื™ื ื•ืžืชื™ ืœื”ืฉืชืžืฉ ื‘ืื™ื–ื” ืžื”ื.

ื–ื” ื™ื”ื™ื” ื’ื ืžืื•ื“ ืžื’ื ื™ื‘ ืื ืืชื” ื™ื•ื“ืข ืื™ืš ืžื‘ื ื™ ื”ื ืชื•ื ื™ื ื”ืืœื” ืขื•ื‘ื“ื™ื ื‘ืื•ืคืŸ ืคื ื™ืžื™. ื›ืœื•ืžืจ, ืœื ืงืœ ืœื“ืขืช ืืช ื”ืืกื™ืžืคื˜ื•ื˜ื™ืงื” ืฉืœื”ื - ื›ืžื” ื”ื”ื™ืžื•ืจ ืขื•ื‘ื“, ื›ืžื” ื–ืžืŸ ืขื•ื‘ื“ ื”ืžืขื‘ืจ, ืื‘ืœ ืื™ืš ื”ืžื‘ื ื” ืขื•ื‘ื“ ื‘ืคื ื™ื - ืœืžืฉืœ, ืžื” ื–ื” ื“ืœื™ ื‘-HashMap.

ื›ื“ืื™ ืœืฉื™ื ืœื‘ ื’ื ืœืขืฆื™ื ื•ืœื’ืจืคื™ื. ืืœื” ื“ื‘ืจื™ื ืฉื”ื ืœื ืžืื•ื“ ื ืคื•ืฆื™ื ื‘ืงื•ื“ ื”ื™ื™ืฆื•ืจ, ืื‘ืœ ื”ื ืคื•ืคื•ืœืจื™ื™ื ื‘ืจืื™ื•ื ื•ืช. ื‘ื”ืชืื, ืืชื” ืฆืจื™ืš ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœื—ืฆื•ืช ืขืฆื™ื, ื’ืจืคื™ื ืœืจื•ื—ื‘ ื•ืœืขื•ืžืง. ื›ืœ ืืœื• ืืœื’ื•ืจื™ืชืžื™ื ืคืฉื•ื˜ื™ื.

ื‘ืจื’ืข ืฉืชืชื—ื™ืœ ืœื›ืชื•ื‘ ื›ืœ ืงื•ื“ ื’ื“ื•ืœ, ืžื•ืจื›ื‘, ื‘ืืžืฆืขื•ืช ืกืคืจื™ื•ืช, ืงื•ื“ ืจื‘ ืžื—ืœืงื•ืช, ืชื‘ื™ืŸ ืฉืงืฉื” ืœืš ื‘ืœื™ ืœื‘ื ื•ืช ืžืขืจื›ื•ืช ื•ืœืคืชื•ืจ ืชืœื•ืช. ืืœื” ื”ื ื‘ืขื™ืงืจ Maven ื•- Gradle. ื”ื ืžืืคืฉืจื™ื ืœืš ืœื™ื™ื‘ื ืกืคืจื™ื•ืช ืœืคืจื•ื™ืงื˜ ืฉืœืš ื‘ืฉื•ืจื” ืื—ืช. ื›ืœื•ืžืจ, ืืชื” ื›ื•ืชื‘ XML ื‘ืฉื•ืจื” ืื—ืช ื•ืžื™ื™ื‘ื ืกืคืจื™ื•ืช ืœืคืจื•ื™ืงื˜. ืžืขืจื›ื•ืช ืžืขื•ืœื•ืช. ื”ื ื‘ืขืจืš ื–ื”ื™ื, ื”ืฉืชืžืฉ ื‘ืื—ื“ ืžื”ื - Maven ืื• Gradle.

ื”ื‘ื - ืื™ื–ื•ืฉื”ื™ ืžืขืจื›ืช ื‘ืงืจืช ื’ืจืกืื•ืช. ืื ื™ ืžืžืœื™ืฅ ืขืœ Git ื›ื™ ื–ื” ืคื•ืคื•ืœืจื™ ื•ื™ืฉ ื”ืžื•ืŸ ืžื“ืจื™ื›ื™ื. ื›ืžืขื˜ ื›ื•ืœื ืžืฉืชืžืฉื™ื ื‘-Git, ื–ื” ื“ื‘ืจ ืžื’ื ื™ื‘, ืืชื” ืœื ื™ื›ื•ืœ ืœื—ื™ื•ืช ื‘ืœืขื“ื™ื•.

ื•ืื™ื–ื” ืกื‘ื™ื‘ืช ืคื™ืชื•ื—. ืื ื™ ืžืžืœื™ืฅ ืขืœ IntelliJ Idea. ื–ื” ืžืื•ื“ ืžื–ืจื– ืืช ืชื”ืœื™ืš ื”ืคื™ืชื•ื—, ืขื•ื–ืจ ืœืš ืžืื•ื“, ื›ื•ืชื‘ ืœืš ืืช ื›ืœ ืงื•ื“ ื”-boilerplate, ื‘ืื•ืคืŸ ื›ืœืœื™, ื–ื” ืžื’ื ื™ื‘.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ืงื™ืฉื•ืจื™ื ืžื”ืฉืงื•ืคื™ืช: SQLZOO, ื”ื‘ืจืืคื•ืกื˜

SQL. ืงืฆืช ืขืœ backenders. ื“ื•ื•ืงื ื”ื™ื” ื›ืืŸ ืžืงืจื” ืžืฆื—ื™ืง. ื™ื•ืžื™ื™ื ืœืคื ื™ ืจืื™ื•ืŸ ื”ื”ืชืžื—ื•ืช ื”ืฉื ื™ ืฉืœื™, ื ืขืจืช ืžืฉืื‘ื™ ืื ื•ืฉ ื”ืชืงืฉืจื” ืืœื™ื™ ื•ืืžืจื” ืฉื‘ืขื•ื“ ื™ื•ืžื™ื™ื ื™ืฉืืœื• ืื•ืชื™ ืขืœ SQL ื•-HTTP, ืื ื™ ืฆืจื™ื›ื” ืœืœืžื•ื“ ืืช ื–ื”. ื•ืœื ื™ื“ืขืชื™ ื›ืžืขื˜ ื›ืœื•ื ืขืœ SQL ืื• HTTP. ื•ืžืฆืืชื™ ืืช ื”ืืชืจ ื”ืžื’ื ื™ื‘ ื”ื–ื” - SQLZOO. ืœืžื“ืชื™ ืขืœื™ื• SQL ืชื•ืš 12 ืฉืขื•ืช, ื›ืœื•ืžืจ ืชื—ื‘ื™ืจ SQL, ืื™ืš ื›ื•ืชื‘ื™ื ืฉืื™ืœืชื•ืช SELECT, JOIN ื•ื›ื•'. ืืชืจ ืžื’ื ื™ื‘ ืžืื•ื“, ืžืžืœื™ืฅ ืขืœื™ื• ื‘ื—ื•ื. ืœืžืขืฉื”, ืชื•ืš 12 ืฉืขื•ืช ืœืžื“ืชื™ 90% ืžืžื” ืฉืื ื™ ื™ื•ื“ืข ืขื›ืฉื™ื•.

ื•ื–ื” ื’ื ื ื”ื“ืจ ืœื”ื›ื™ืจ ืืช ืืจื›ื™ื˜ืงื˜ื•ืจืช ืžืกื“ื™ ื”ื ืชื•ื ื™ื. ืืœื” ื›ืœ ืžื™ื ื™ ืžืคืชื—ื•ืช, ืื™ื ื“ืงืกื™ื, ื ื•ืจืžืœื™ื–ืฆื™ื”. ื™ืฉ ืกื“ืจื” ืฉืœ ืคื•ืกื˜ื™ื ืขืœ ื–ื” ื‘-Habrรฉ.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ื‘-Java, ื‘ื ื•ืกืฃ ืœ-SQL, ื™ืฉ ื›ืœ ืžื™ื ื™ ืžืขืจื›ื•ืช ืžื™ืคื•ื™ ื™ื—ืก ืื•ื‘ื™ื™ืงื˜ ื›ืžื• JPA. ื™ืฉ ืื™ื–ื” ืงื•ื“. ื‘ืฉื™ื˜ื” ื”ืจืืฉื•ื ื” ื™ืฉ ืงื•ื“ SQL ื›ืœืฉื”ื• - SELECT id name FROM info.users WHERE id IN userIds. ืžืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœ ื”ืžืฉืชืžืฉื™ื, ืžื”ื˜ื‘ืœื”, ืžืชืงื‘ืœื™ื ื”ืžื–ื”ื™ื ื•ื”ืฉืžื•ืช ืฉืœื”ื.

ืœืื—ืจ ืžื›ืŸ, ื™ืฉ ืžืžืคื” ืžืกื•ื™ื™ื ืฉื”ื•ืคืš ืื•ื‘ื™ื™ืงื˜ ืžื”ื‘ืกื™ืก ืœืื•ื‘ื™ื™ืงื˜ Java. ื•ื™ืฉื ื” ืฉื™ื˜ื” ืฉืœื™ืฉื™ืช ืœืžื˜ื” ืฉื‘ืขืฆื ืžื‘ืฆืขืช ืืช ื”ืงื•ื“ ื”ื–ื”. ืืช ื›ืœ ื–ื” ื ื™ืชืŸ ืœื”ื—ืœื™ืฃ ื‘ืืžืฆืขื•ืช JPA ื‘ืฉื•ืจื” ืื—ืช, ืฉื›ืชื•ื‘ื” ืœืžื˜ื”. ื–ื” ืขื•ืฉื” ืืช ืื•ืชื• ื”ื“ื‘ืจ - ืžืฆื ืืช All ByIdIn. ื›ืœื•ืžืจ, ื‘ื”ืชื‘ืกืก ืขืœ ืฉื ื”ืฉื™ื˜ื”, ื”ื™ื ืžื™ื™ืฆืจืช ืขื‘ื•ืจืš ืฉืื™ืœืชืช SQL.

ื“ื‘ืจ ืžื’ื ื™ื‘ ืžืื•ื“. ืื ื™ ืขืฆืžื™, ื›ืฉืœื ื”ื›ืจืชื™ SQL, ื”ืฉืชืžืฉืชื™ ื‘-JPA. ื‘ืื•ืคืŸ ื›ืœืœื™, ืฉื™ืžื• ืœื‘. ืื ืืชื” ืขืฆืœืŸ ืžื›ื“ื™ ืœืœืžื•ื“ SQL, ื–ื” ืืกื•ืŸ. ื•ื‘ื›ืœืœ, ืืฉ!

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ืื‘ื™ื‘. ืžื™ ืฉืžืข ืขืœ ื“ื‘ืจ ื›ื–ื” ืžืกื’ืจืช ืื‘ื™ื‘? ืืชื” ืจื•ืื” ื›ืžื” ืžื›ื ื™ืฉ? ืœื ื‘ืœื™ ืกื™ื‘ื”. ืื‘ื™ื‘ ื›ืœื•ืœ ื‘ื“ืจื™ืฉื•ืช ืฉืœ ื›ืœ ืžืฉืจื” ืฉื ื™ื™ื” ื‘-Java backend. ื‘ืœื™ ื–ื”, ืื™ืŸ ื‘ืืžืช ืžืงื•ื ืœื”ืชืคืชื—ื•ืช ื’ื“ื•ืœื”. ืžื”ื• ืื‘ื™ื‘? ืงื•ื“ื ื›ืœ, ื–ื• ืžืกื’ืจืช ืฉืœ ื”ื–ืจืงืช ืชืœื•ืช. ื’ื ืขืœ ื–ื” ื™ืกืคืจ ื”ื“ื•ื‘ืจ ื”ื‘ื. ืื‘ืœ ื‘ืงื™ืฆื•ืจ, ื–ื” ื“ื‘ืจ ืฉืžืืคืฉืจ ืœืš ืœื”ืงืœ ืขืœ ื™ื™ื‘ื•ื โ€‹โ€‹ื”ืชืœื•ืช ืฉืœ ืžื—ืœืงื•ืช ืžืกื•ื™ืžื•ืช ืœืื—ืจื•ืช. ื›ืœื•ืžืจ, ื”ื™ื“ืข ืขืœ ืชืœื•ืช ืžืคื•ืฉื˜.

Spring Boot ื”ื•ื ื—ืœืง ืฉืœ Spring ื”ืžืืคืฉืจ ืœืš ืœื”ืคืขื™ืœ ืืช ืืคืœื™ืงืฆื™ื™ืช ื”ืฉืจืช ืฉืœืš ืขื ื›ืคืชื•ืจ ืื—ื“. ืืชื” ืขื•ื‘ืจ ืืœ THID, ืœื•ื—ืฅ ืขืœ ื›ืžื” ื›ืคืชื•ืจื™ื, ื•ืขื›ืฉื™ื• ื™ืฉ ืœืš ืืช ืืคืœื™ืงืฆื™ื™ืช ื”ืฉืจืช ืฉืœืš ื•ืคื•ืขืœืช ืขืœ localhost 8080. ื›ืœื•ืžืจ, ืขื“ื™ื™ืŸ ืœื ื›ืชื‘ืช ืฉื•ืจืช ืงื•ื“ ืื—ืช, ืื‘ืœ ื–ื” ื›ื‘ืจ ืขื•ื‘ื“. ื“ื‘ืจ ืžื’ื ื™ื‘ ืžืื•ื“. ืื ืืชื” ื›ื•ืชื‘ ืžืฉื”ื• ืžืฉืœืš, ืืฉ!

ื”ืื‘ื™ื‘ ื”ื•ื ืžืกื’ืจืช ื’ื“ื•ืœื” ืžืื•ื“. ื–ื” ืœื ืจืง ืงื•ืœื˜ ืืช ื™ื™ืฉื•ื ื”ืฉืจืช ืฉืœืš ื•ืคื•ืชืจ ืืช ื”ื–ืจืงืช ืชืœื•ืช. ื–ื” ืžืืคืฉืจ ืœืš ืœืขืฉื•ืช ื”ืจื‘ื” ื“ื‘ืจื™ื, ื›ื•ืœืœ ื™ืฆื™ืจืช ืฉื™ื˜ื•ืช REST API. ื›ืœื•ืžืจ, ื›ืชื‘ืช ืฉื™ื˜ื” ื›ืœืฉื”ื™ ื•ืฆื™ืจืคืช ืœื” ืืช ื”ืขืจืช Get mapping. ื•ืขื›ืฉื™ื• ื›ื‘ืจ ื™ืฉ ืœืš ืฉื™ื˜ื” ื›ืœืฉื”ื™ ื‘-localhost ืฉื›ื•ืชื‘ืช ืœืš Hello world. ืฉืชื™ ืฉื•ืจื•ืช ืงื•ื“ ื•ื–ื” ืขื•ื‘ื“. ื“ื‘ืจื™ื ืžื’ื ื™ื‘ื™ื.

ื”ืื‘ื™ื‘ ื’ื ืžืงืœ ืขืœ ื›ืชื™ื‘ืช ืžื‘ื—ื ื™. ืื™ืŸ ื“ืจืš ื‘ืœื™ ื‘ื“ื™ืงื” ื‘ืคื™ืชื•ื— ื’ื“ื•ืœ. ืฆืจื™ืš ืœื‘ื“ื•ืง ืืช ื”ืงื•ื“. ืœืฆื•ืจืš ื›ืš, ืœ-Java ื™ืฉ ืกืคืจื™ื™ื” ืžื’ื ื™ื‘ื” JUnit 5. ื•-JUnit ื‘ืื•ืคืŸ ื›ืœืœื™, ืื‘ืœ ื”ื’ืจืกื” ื”ืื—ืจื•ื ื” ื”ื™ื ื”ื—ืžื™ืฉื™ืช. ื™ืฉ ื”ื›ืœ ืœื‘ื“ื™ืงื”, ื›ืœ ืžื™ื ื™ ืงื‘ื™ืขื•ืช ื•ื“ื‘ืจื™ื ืื—ืจื™ื.

ื•ื™ืฉ ืžืกื’ืจืช Mockito ืžื“ื”ื™ืžื”. ืชืืจ ืœืขืฆืžืš ืฉื™ืฉ ืœืš ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื›ืœืฉื”ื™ ืฉืืชื” ืจื•ืฆื” ืœื‘ื“ื•ืง. ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืขื•ืฉื” ื”ืจื‘ื” ื“ื‘ืจื™ื, ื›ื•ืœืœ, ืื™ืคืฉื”ื• ื‘ืืžืฆืข, ื”ื™ื ื ื›ื ืกืช ืœ-VKontakte ืขื ื”ืžื–ื”ื” ืฉืœืš, ืœืžืฉืœ, ื•ืžืงื‘ืœืช ืืช ื”ืฉื ื”ืคืจื˜ื™ ื•ื”ืžืฉืคื—ื” ืฉืœ ืžืฉืชืžืฉ VKontakte ืžื”ืžื–ื”ื”. ื›ื ืจืื” ืฉืœื ืชื›ืœื•ืœ ืืช VKontakte ื‘ืžื‘ื—ื ื™ื, ื–ื” ืžื•ื–ืจ. ืื‘ืœ ืืชื” ืฆืจื™ืš ืœื‘ื“ื•ืง ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช, ืื– ืขืฉื™ืช ืืช ื”ืžื—ืœืงื” ื”ื–ื•, ื‘ืืžืฆืขื•ืช Mockito, mok it, ื—ื™ืงื•ื™ ืื•ืชื”.

ืืชื” ืชื’ื™ื“ ืฉื›ืืฉืจ ืžื’ื™ืขื” ื‘ืงืฉื” ืœื›ื™ืชื” ื”ื–ื• ืขื ืชืขื•ื“ื” ืžื–ื”ื” ื›ื–ื• ืื• ืื—ืจืช, ื”ื™ื ืžื—ื–ื™ืจื” ืื™ื–ื” ืฉื ืžืฉืคื—ื”, ืœืžืฉืœ, Vasya Pupkin. ื•ื–ื” ื™ืขื‘ื•ื“. ื›ืœื•ืžืจ, ืชื‘ื“ื•ืง ืืช ื›ืœ ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืขื‘ื•ืจ mok one class. ื“ื‘ืจ ืžื’ื ื™ื‘ ืžืื•ื“.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ืงื™ืฉื•ืจ ืžืฉืงื•ืคื™ืช

ืชื‘ื ื™ื•ืช ืขื™ืฆื•ื‘. ืžื” ื–ื”? ืืœื• ื”ืŸ ืชื‘ื ื™ื•ืช ืœืคืชืจื•ืŸ ื‘ืขื™ื•ืช ื˜ื™ืคื•ืกื™ื•ืช ื”ืžืชืขื•ืจืจื•ืช ื‘ืคื™ืชื•ื—. ื‘ืคื™ืชื•ื—, ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืžืชืขื•ืจืจื•ืช ื‘ืขื™ื•ืช ื–ื”ื•ืช ืื• ื“ื•ืžื•ืช ืฉื™ื”ื™ื” ื ื”ื“ืจ ืœืคืชื•ืจ ืื™ื›ืฉื”ื• ื‘ืฆื•ืจื” ื˜ื•ื‘ื”. ืœื›ืŸ, ืื ืฉื™ื ื”ืžืฆื™ืื• ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช, ืชื‘ื ื™ื•ืช ืžืกื•ื™ืžื•ืช, ื›ื™ืฆื“ ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื•ืช ื”ืœืœื•.

ื™ืฉ ืืชืจ ืขื ื”ื“ืคื•ืกื™ื ื”ืคื•ืคื•ืœืจื™ื™ื ื‘ื™ื•ืชืจ - refactoring.guru, ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืื•ืชื•, ืœื’ืœื•ืช ืื™ืœื• ื“ืคื•ืกื™ื ื™ืฉ, ืœืงืจื•ื ื—ื‘ื•ืจื” ืฉืœ ืชื™ืื•ืจื™ื•ืช. ื”ื‘ืขื™ื” ื”ื™ื ืฉื–ื” ื›ืžืขื˜ ื—ืกืจ ืชื•ืขืœืช. ืœืžืขืฉื”, ื“ืคื•ืกื™ื ืœืœื ืชืจื’ื•ืœ ืื™ื ื ืฉื™ืžื•ืฉื™ื™ื ื‘ืžื™ื•ื—ื“.

ืชืฉืžืขื• ืขืœ ื›ืžื” ื“ืคื•ืกื™ื ื›ืžื• Singletone ืื• Builder. ืžื™ ืฉืžืข ืืช ื”ืžื™ืœื™ื ื”ืืœื”? ื”ืจื‘ื” ืื ืฉื™ื. ื™ืฉ ื“ืคื•ืกื™ื ื›ืœ ื›ืš ืคืฉื•ื˜ื™ื ืฉืืชื” ื™ื›ื•ืœ ืœื™ื™ืฉื ื‘ืขืฆืžืš. ืื‘ืœ ืจื•ื‘ ื”ื“ืคื•ืกื™ื: ืืกื˜ืจื˜ื’ื™ื”, ืžืคืขืœ, ื—ื–ื™ืช - ืœื ื‘ืจื•ืจ ื”ื™ื›ืŸ ืœื™ื™ืฉื ืื•ืชื.

ื•ืขื“ ืฉืœื ืชืจืื” ื‘ืคื•ืขืœ ื‘ืงื•ื“ ืฉืœ ืื“ื ืื—ืจ ืžืงื•ื ืฉืืœื™ื• ืžื™ื•ืฉืžืช ื”ื“ืคื•ืก ื”ื–ื”, ืœื ืชื•ื›ืœ ืœื™ื™ืฉื ืื•ืชื• ื‘ืขืฆืžืš. ืœื›ืŸ, ืชืจื’ื•ืœ ื—ืฉื•ื‘ ืžืื•ื“ ืขื ื“ืคื•ืกื™ื. ื•ืจืง ืœืงืจื•ื ืขืœื™ื”ื ื‘- refactoring.guru ืœื ืžื•ืขื™ืœ ื‘ืžื™ื•ื—ื“, ืื‘ืœ ื‘ื”ื—ืœื˜ ืฉื•ื•ื” ืœืขืฉื•ืช ื–ืืช.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ืœืžื” ืฆืจื™ืš ื“ืคื•ืกื™ื? ื ื ื™ื— ืฉื™ืฉ ืœืš ืžื—ืœืงื” ืžืกื•ื™ืžืช ืฉืœ User. ื™ืฉ ืœื–ื” ืžื–ื”ื” ื•ืฉื. ืœื›ืœ ืžืฉืชืžืฉ ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื’ื ืžื–ื”ื” ื•ื’ื ืฉื. ืžืฉืžืืœ ืœืžืขืœื” ื”ื™ื ื”ื›ื™ืชื”.

ืžื”ืŸ ื”ื“ืจื›ื™ื ืœืืชื—ืœ ืžืฉืชืžืฉ? ื™ืฉื ืŸ ืฉืชื™ ืืคืฉืจื•ื™ื•ืช - ืื• ืงื•ื ืกื˜ืจื•ืงื˜ื•ืจ ืื• ืกื˜ื˜ืจ. ืžื”ื ื”ื—ืกืจื•ื ื•ืช ืฉืœ ืฉืชื™ ื”ื’ื™ืฉื•ืช?

ื‘ึผึทื ึทืึดื™. ืžืฉืชืžืฉ ื—ื“ืฉ (7, "ื‘ื•ื ื“"), ื‘ืกื“ืจ. ืขื›ืฉื™ื• ื ื ื™ื— ืฉืื™ืŸ ืœื ื• ืžื—ืœืงื” User, ืืœื ืžื—ืœืงื” ืื—ืจืช, ืขื ืฉื‘ืขื” ืฉื“ื•ืช ืžืกืคืจื™ื™ื. ื™ื”ื™ื” ืœืš ื‘ื ืื™ ื”ืžื›ื™ืœ ืฉื‘ืขื” ืžืกืคืจื™ื ืขื•ืงื‘ื™ื. ืœื ื‘ืจื•ืจ ืžื”ื ื”ืžืกืคืจื™ื ื”ืœืœื• ื•ืื™ื–ื” ืžื”ื ืฉื™ื™ืš ืœืื™ื–ื” ื ื›ืก. ื”ืžืขืฆื‘ ืœื ื’ื“ื•ืœ.

ื”ืืคืฉืจื•ืช ื”ืฉื ื™ื™ื” ื”ื™ื ืžืงื‘ืข. ืืชื” ื›ื•ืชื‘ ื‘ื‘ื™ืจื•ืจ: setId(7), setName(โ€œBondโ€). ืืชื” ืžื‘ื™ืŸ ืื™ื–ื” ื ื›ืก ืฉื™ื™ืš ืœืื™ื–ื” ืชื—ื•ื. ืื‘ืœ ืœืžื’ื“ื™ืจ ื™ืฉ ื‘ืขื™ื”. ืจืืฉื™ืช, ืืชื” ืขืœื•ืœ ืœืฉื›ื•ื— ืœื”ืงืฆื•ืช ืžืฉื”ื•, ื•ืฉื ื™ืช, ื”ืื•ื‘ื™ื™ืงื˜ ืฉืœืš ืžืชื‘ืจืจ ื›ื ื™ืชืŸ ืœืฉื™ื ื•ื™. ื–ื” ืื™ื ื• ื‘ื˜ื•ื— ื‘ืฉืจืฉื•ืจ ื•ืžืคื—ื™ืช ืžืขื˜ ืืช ืงืจื™ืื•ืช ื”ืงื•ื“. ืœื›ืŸ ืื ืฉื™ื ื”ืžืฆื™ืื• ื“ืคื•ืก ืžื’ื ื™ื‘ - Builder.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ืขืœ ืžื” ื–ื”? ื‘ื•ืื• ื ื ืกื” ืœืฉืœื‘ ืืช ื”ื™ืชืจื•ื ื•ืช ืฉืœ ืฉืชื™ ื”ื’ื™ืฉื•ืช - ืžื’ื“ื™ืจ ื•ื‘ื ืื™ - ื‘ืื—ืช. ืื ื—ื ื• ื™ื•ืฆืจื™ื ืื•ื‘ื™ื™ืงื˜ ืžืกื•ื™ื, Builder, ืฉื™ื”ื™ื• ื‘ื• ื’ื ืฉื“ื•ืช Id ื•-Name, ืฉื‘ืขืฆืžื• ื™ื™ื‘ื ื” ืขืœ ืกืžืš ื”ืงื•ื‘ืข, ื•ืฉืชื”ื™ื” ืœื• ืฉื™ื˜ืช Build ืฉืžื—ื–ื™ืจื” ืœืš ืžืฉืชืžืฉ ื—ื“ืฉ ืขื ื›ืœ ื”ืคืจืžื˜ืจื™ื. ืื ื—ื ื• ืžืงื‘ืœื™ื ืื•ื‘ื™ื™ืงื˜ ื‘ืœืชื™ ืžืฉืชื ื” ื•ืžื’ื“ื™ืจ. ืžื’ื ื™ื‘!

ืžื” ื”ื‘ืขื™ื•ืช? ื›ืืŸ ื™ืฉ ืœื ื• ืืช ื”-Builder ื”ืงืœืืกื™. ื”ื‘ืขื™ื” ื”ื™ื ืฉืื ื—ื ื• ืขื“ื™ื™ืŸ ื™ื›ื•ืœื™ื ืœืฉื›ื•ื— ืœื‘ื“ื•ืง ื‘ืื™ื–ื” ืฉื“ื”. ื•ืื ืฉื›ื—ื ื• ืœื‘ืงืจ ืืช ื”ืžื–ื”ื”, ื‘ืžืงืจื” ื”ื–ื” ื‘-Builder ื”ื•ื ืžืื•ืชื—ืœ ืœืืคืก, ื›ื™ ื”ืกื•ื’ int ืื™ื ื• ื ื™ืชืŸ ืœ- null. ื•ืื ื ืขืฉื” ืืช ื”ืฉื "ื‘ื•ื ื“" ื•ื ืฉื›ื— ืœื‘ืงืจ ื‘ืžืฉืจื“ ื”ืžื–ื”ื”, ื™ื”ื™ื” ืœื ื• ืžืฉืชืžืฉ ื—ื“ืฉ ืขื ืžื–ื”ื” "0" ื•ื”ืฉื "ื‘ื•ื ื“". ืœื ืžื’ื ื™ื‘.

ื‘ื•ืื• ื ื ืกื” ืœื”ื™ืœื—ื ื‘ื–ื”. ื‘-Builder ื ืฉื ื” ืืช int ืœ-int ื›ืš ืฉื™ื”ื™ื” nullable. ืขื›ืฉื™ื• ื”ื›ืœ ืžืฆื•ื™ืŸ.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ืื ื ื ืกื” ืœื™ืฆื•ืจ ืžืฉืชืžืฉ ื‘ืฉื "Bond", ื›ืฉืฉื›ื— ืœืฉื™ื ืืช ื”ืžื–ื”ื” ืฉืœื•, ื ืงื‘ืœ ื—ืจื™ื’ ืžืฆื‘ื™ืข null, ื›ื™ ื”ืžื–ื”ื” ืื™ื ื• ื ื™ืชืŸ ืœ-null, ื•ืœ-Builder ื™ืฉ null, ื‘ืžื™ื•ื—ื“ ื—ืจื™ื’ ืžืฆื‘ื™ืข.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ืื‘ืœ ืื ื—ื ื• ืขื“ื™ื™ืŸ ื™ื›ื•ืœื™ื ืœืฉื›ื•ื— ืœืฉื™ื ืฉื, ืื– ื”ื’ื“ืจื ื• ืืช ื”ืฉื™ื“ื•ืจ ื”ื—ื•ื–ืจ ืฉืœ ื”ืื•ื‘ื™ื™ืงื˜ ืœ-null. ื›ืขืช, ื›ืืฉืจ ืื ื• ื‘ื•ื ื™ื ืืช ื”ืื•ื‘ื™ื™ืงื˜ ืฉืœื ื• ืž-Builder, ื”ื•ื ื‘ื•ื“ืง ืฉื”ืฉื“ื” ืื™ื ื• ื ื™ืชืŸ ืœ- null. ื•ื–ื” ืœื ื”ื›ืœ.

ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื”ื“ื•ื’ืžื” ื”ืื—ืจื•ื ื”. ื‘ืžืงืจื” ื”ื–ื”, ืื ืื™ื›ืฉื”ื• ื ืฉื™ื ืืช null ื‘ื–ืžืŸ ื”ืจื™ืฆื” ืฉืœ ืžื–ื”ื”, ื–ื” ื™ื”ื™ื” ื ื”ื“ืจ ืœื“ืขืช ืžื™ื“ ืฉืขืฉื™ืช ืืช ื–ื” ื•ื–ื” ืœื ืžื’ื ื™ื‘ ืฉืืชื” ืขื•ืฉื” ื˜ืขื•ืช ืขื›ืฉื™ื•.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ืืชื” ืฆืจื™ืš ืœื–ืจื•ืง ืฉื’ื™ืื” ืœื ื‘ืจื’ืข ื™ืฆื™ืจืช ื”ืžืฉืชืžืฉ, ืืœื ื›ืืฉืจ ืืชื” ืžื’ื“ื™ืจ null ืœืžื–ื”ื”. ืœื›ืŸ, ื‘ื‘ื•ื ื” ื ืฉื ื” ืืช ื”ืงื•ื‘ืข ืฉืœื ืœ-int, ื•ืžื™ื“ ื™ืฉื‘ืข ืฉื–ืจืงื• ื‘ื˜ืœ.

ื‘ืงื™ืฆื•ืจ, ืžื” ื”ื˜ืขื? ื™ืฉ ื“ืคื•ืก Builder ืคืฉื•ื˜, ืื‘ืœ ืืคื™ืœื• ืœื™ื™ืฉื•ื ืฉืœื• ื™ืฉ ื›ืžื” ื“ืงื•ื™ื•ืช, ืื– ื–ื” ืžืื•ื“ ืžื’ื ื™ื‘ ืœื”ืกืชื›ืœ ืขืœ ื™ื™ืฉื•ืžื™ื ืฉื•ื ื™ื ืฉืœ ื“ืคื•ืกื™ื. ืœื›ืœ ื“ืคื•ืก ื™ืฉ ืขืฉืจื•ืช ื™ื™ืฉื•ืžื™ื. ื›ืœ ื–ื” ืžืื•ื“ ืžืขื ื™ื™ืŸ.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ืื™ืš ื ื›ืชื•ื‘ Builder ื‘ืงื•ื“ ื™ื™ืฆื•ืจ? ื”ื ื” ื”ืžืฉืชืžืฉ ืฉืœื ื•. ืื ื• ืžืฆืžื™ื“ื™ื ืืœื™ื• ืกื™ื‘ื•ื‘ Builder ืžืกืคืจื™ื™ืช Lombok, ื•ื”ื•ื ืขืฆืžื• ืžื™ื™ืฆืจ ืขื‘ื•ืจื ื• Builder. ื›ืœื•ืžืจ, ืื ื—ื ื• ืœื ื›ื•ืชื‘ื™ื ืฉื•ื ืงื•ื“, ืื‘ืœ Java ื›ื‘ืจ ื—ื•ืฉื‘ืช ืฉืœืžื—ืœืงื” ื”ื–ื• ื™ืฉ Builder, ื•ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืงืจื•ื ืœื–ื” ื›ื›ื”.

ื›ื‘ืจ ืืžืจืชื™ ืฉืœื’'ืื•ื•ื” ื™ืฉ ืกืคืจื™ื•ืช ื›ืžืขื˜ ืœื›ืœ ื“ื‘ืจ, ื›ื•ืœืœ Lombok, ืกืคืจื™ื™ื” ืžื’ื ื™ื‘ื” ืฉืžืืคืฉืจืช ืœื”ื™ืžื ืข ืžื›ืชื™ื‘ืช boilerplate. ื‘ื•ื ื”, GET.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ื“ืคื•ืกื™ื ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช ืื“ืจื™ื›ืœื™ื™ื - ืงืฉื•ืจื™ื ืœื ืจืง ืœืžื—ืœืงื” ืื—ืช, ืืœื ืœืžืขืจื›ืช ื›ื•ืœื”. ื™ืฉ ืขื™ืงืจื•ืŸ ื›ืœ ื›ืš ืžื’ื ื™ื‘ ื‘ืชื›ื ื•ืŸ ืžืขืจื›ืช: ืขื™ืงืจื•ืŸ ืื—ืจื™ื•ืช ื™ื—ื™ื“ื”. ืขืœ ืžื” ื”ื•ื ืžื“ื‘ืจ? ื”ืขื•ื‘ื“ื” ืฉื›ืœ ืžื—ืœืงื” ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ืื—ืจืื™ืช ืœื—ืœืง ืžื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœื”. ื‘ืžืงืจื” ื–ื”, ื™ืฉ ืœื ื• ื‘ืงืจ ืฉืžืชืงืฉืจ ืขื ืžืฉืชืžืฉื™ื, ืื•ื‘ื™ื™ืงื˜ื™ JSON. ื™ืฉ ืืช Facade, ืืฉืจ ืžืžื™ืจื” ืื•ื‘ื™ื™ืงื˜ื™ JSON ืœืžื•ื“ืœื™ื ืฉืืคืœื™ืงืฆื™ื™ืช Java ืชืขื‘ื•ื“ ืื™ืชื. ื™ืฉ ืฉื™ืจื•ืช ืฉื™ืฉ ืœื• ื”ื™ื’ื™ื•ืŸ ืžื•ืจื›ื‘ ืฉืขื•ื‘ื“ ืขื ื”ืžื•ื“ืœื™ื ื”ืืœื”. ื™ืฉ Data Access Object ืฉืžื›ื ื™ืก ืืช ื”ืžื•ื“ืœื™ื ื”ืœืœื• ืœืžืกื“ ื”ื ืชื•ื ื™ื ื•ืžื—ื–ื™ืจ ืื•ืชื ืžืžืกื“ ื”ื ืชื•ื ื™ื. ื•ื™ืฉ ืืช ืžืกื“ ื”ื ืชื•ื ื™ื ืขืฆืžื•. ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ื–ื” ืœื ื”ื›ืœ ื‘ืžื—ืœืงื” ืื—ืช, ืื‘ืœ ืื ื—ื ื• ืขื•ืฉื™ื ื—ืžื™ืฉื” ืžื—ืœืงื•ืช ืฉื•ื ื•ืช, ื•ื–ื” ืขื•ื“ ื“ืคื•ืก.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ืœืื—ืจ ืฉืœืžื“ืช ืคื—ื•ืช ืื• ื™ื•ืชืจ ื’'ืื•ื•ื”, ื–ื” ื ื”ื“ืจ ืœื›ืชื•ื‘ ืคืจื•ื™ืงื˜ ืžืฉืœืš ืฉื™ื›ืœื•ืœ ืžืกื“ ื ืชื•ื ื™ื, ื™ืขื‘ื•ื“ ืขื ืžืžืฉืงื™ API ืื—ืจื™ื, ื•ื™ื—ืฉื•ืฃ ืืช ืืคืœื™ืงืฆื™ื™ืช ื”ืฉืจืช ืฉืœืš ืœืœืงื•ื—ื•ืช REST API. ื–ื” ื™ื”ื™ื” ื“ื‘ืจ ื ื”ื“ืจ ืœื”ื•ืกื™ืฃ ืœืงื•ืจื•ืช ื”ื—ื™ื™ื ืฉืœืš, ื–ื” ื™ื”ื™ื” ืกื™ื•ื ืžื’ื ื™ื‘ ืœื—ื™ื ื•ืš ืฉืœืš. ืขื ื–ื” ืืชื” ื™ื›ื•ืœ ืœืœื›ืช ื•ืœืงื‘ืœ ืขื‘ื•ื“ื”.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ื”ื ื” ื“ื•ื’ืžื” ืœื™ื™ืฉื•ื ื”ืฉืจืช ืฉืœื™. ื‘ืฉื ื” ื”ืฉื ื™ื™ื” ืฉืœื™, ื›ืชื‘ืชื™ ืขื‘ื•ื“ื” ืขื ื”ื—ื‘ืจ'ื”. ื”ื ื›ืชื‘ื• ืืคืœื™ืงืฆื™ื” ืœื ื™ื™ื“ ืœืืจื’ื•ืŸ ืื™ืจื•ืขื™ื. ืฉื, ืžืฉืชืžืฉื™ื ื™ื›ืœื• ืœื”ื™ื›ื ืก ื“ืจืš VKontakte, ืœืžืงื ื ืงื•ื“ื•ืช ืขืœ ื”ืžืคื”, ืœื™ืฆื•ืจ ืื™ืจื•ืขื™ื, ืœื”ื–ืžื™ืŸ ืืช ื—ื‘ืจื™ื”ื ืืœื™ื”ื, ืœืฉืžื•ืจ ืชืžื•ื ื•ืช ืฉืœ ืื™ืจื•ืขื™ื ื•ื›ื•'.

ืžื” ืขืฉื™ืชื™ ื‘ืคืจื•ื™ืงื˜? ื›ืชื‘ ื™ื™ืฉื•ื ืฉืจืช ื‘-Spring Boot ืžื‘ืœื™ ืœื”ืฉืชืžืฉ ื‘-SQL. ืœื ื”ื›ืจืชื™ ืื•ืชื•, ื”ืฉืชืžืฉืชื™ ื‘-JPA. ืžื” ื–ื” ื™ื›ื•ืœ ืœืขืฉื•ืช? ื”ื™ื›ื ืก ืœ-VK ื“ืจืš OAuth-2. ืงื— ืืช ื”ืืกื™ืžื•ืŸ ืฉืœ ื”ืžืฉืชืžืฉ, ืœืš ืื™ืชื• ืœ-VK, ืชื‘ื“ื•ืง ืฉื–ื” ืžืฉืชืžืฉ ืืžื™ืชื™. ืงื‘ืœ ืžื™ื“ืข ืขืœ ืžืฉืชืžืฉื™ื ื“ืจืš VKontakte. ื”ื•ื ื”ืฆืœื™ื— ืœืฉืžื•ืจ ืžื™ื“ืข ื‘ืžืกื“ ื ืชื•ื ื™ื, ื’ื ื‘ืืžืฆืขื•ืช JPA. ืฉืžื•ืจ ื‘ืžื™ื•ืžื ื•ืช ืชืžื•ื ื•ืช ื•ืงื‘ืฆื™ื ืื—ืจื™ื ื‘ื–ื™ื›ืจื•ืŸ ื”ืžื—ืฉื‘, ื•ืฉืžื•ืจ ืงื™ืฉื•ืจื™ื ืืœื™ื”ื ื‘ืžืกื“ ื”ื ืชื•ื ื™ื. ื‘ืื•ืชื• ื–ืžืŸ ืœื ื™ื“ืขืชื™ ืฉื™ืฉ ืื•ื‘ื™ื™ืงื˜ื™ CLOB ื‘ืžืกื“ ื”ื ืชื•ื ื™ื, ืื– ืขืฉื™ืชื™ ืืช ื–ื” ื›ื›ื”. ื”ื™ื” REST API ืขื‘ื•ืจ ืžืฉืชืžืฉื™ื, ื™ื™ืฉื•ืžื™ ืœืงื•ื—. ื•ื”ื™ื• ื‘ื“ื™ืงื•ืช ื™ื—ื™ื“ื” ืœืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื‘ืกื™ืกื™ืช.

[โ€ฆ] ื“ื•ื’ืžื” ืงื˜ื ื” ืœืœืžื™ื“ื” ื”ืžื•ืฆืœื—ืช ืฉืœื™ ืฉืœ ื’'ืื•ื•ื”. ื‘ืฉื ื” ื”ืจืืฉื•ื ื” ืฉืœื™ ื‘ืื•ื ื™ื‘ืจืกื™ื˜ื” ืœื™ืžื“ื• ืื•ืชื™ C# ื•ืงื™ื‘ืœืชื™ ื”ื‘ื ื” ื‘ืชื›ื ื•ืช OOP - ืžื” ื–ื” ืฉื™ืขื•ืจื™ื, ืžืžืฉืงื™ื, ื”ืคืฉื˜ื” ื•ืœืžื” ื”ื ื ื—ื•ืฆื™ื. ื–ื” ืขื–ืจ ืœื™ ืžืื•ื“. ื‘ืœื™ ื–ื”, ืœื™ืžื•ื“ Java ื”ื•ื ื“ื™ ืงืฉื”; ืœื ื‘ืจื•ืจ ืžื“ื•ืข ื™ืฉ ืฆื•ืจืš ื‘ืฉื™ืขื•ืจื™ื.

ืœืžื” ืœืœืžื•ื“ ื’'ืื•ื•ื” ื•ื›ื™ืฆื“ ืœืขืฉื•ืช ื–ืืช ื‘ื™ืขื™ืœื•ืช. ื“ื•ื— Yandex

ื‘ืฉื ื” ื”ืฉื ื™ื™ื” ืฉืœื™ ื‘ืื•ื ื™ื‘ืจืกื™ื˜ื”, ืฉื•ื‘ ืœื™ืžื“ื• ืืช Java core, ืื‘ืœ ืœื ืขืฆืจืชื™ ืฉื, ื”ืœื›ืชื™ ืœืœืžื•ื“ ืื‘ื™ื‘ ื‘ืขืฆืžื™ ื•ื›ืชื‘ืชื™ ืขื‘ื•ื“ื” ื‘ืงื•ืจืก, ื”ืคืจื•ื™ืงื˜ ืฉืœื™, ืฉืฆื™ื™ื ืชื™ ืœืžืขืœื”. ื•ืขื ื›ืœ ื–ื”, ื™ืฆืืชื™ ืœื”ืชืžื—ื•ืช ื‘-Yandex, ืขื‘ืจืชื™ ืจืื™ื•ืŸ ื•ื ื›ื ืกืชื™ ืœ-Yandex.Market. ืฉื ื›ืชื‘ืชื™ ืืช ื”-backend ืขื‘ื•ืจ Beru, ื–ื” ื”ืฉื•ืง ืฉืœื ื•, ื•ืขื‘ื•ืจ Yandex.Market ืขืฆืžื•.

ืœืื—ืจ ืžื›ืŸ, ืœืคื ื™ ื—ืฆื™ ืฉื ื”, ืขื‘ืจืชื™ ืœืฆื•ื•ืช ืื—ืจ ื‘ืื•ืชื• ืฉื•ืง. ืื ื• ืขื•ืฉื™ื ืื ืœื™ื˜ื™ืงื” ืขื‘ื•ืจ ืฉื•ืชืคื™ื ืขืกืงื™ื™ื. ืื ื—ื ื• ื‘ืคืœื˜ืคื•ืจืžื” ื”ืื ืœื™ื˜ื™ืช, ืื ื—ื ื• ืฉืœื•ืฉื” ื‘-backend, ืื– ื™ืฉ ืœื™ ื ืชื— ื’ื“ื•ืœ ืžืื•ื“ ืฉืœ ื”ืฉืคืขื” ืขืœ ื”ืคืจื•ื™ืงื˜. ื–ื” ืžืื•ื“ ืžืขื ื™ื™ืŸ, ืœืžืขืŸ ื”ืืžืช. ื›ืœื•ืžืจ ืื ื—ื ื• ื‘ืขืฆื ืžืกืคืงื™ื ื ืชื•ื ื™ื ืขืœ ื”ืฉื•ืง โ€“ ืžื”ืŸ ื”ืžื›ื™ืจื•ืช, ื‘ืื™ืœื• ืงื˜ื’ื•ืจื™ื•ืช, ื‘ืื™ืœื• ื“ื’ืžื™ื, ืœืฉื•ืชืคื™ื ืขืกืงื™ื™ื, ื—ื‘ืจื•ืช ื’ื“ื•ืœื•ืช ื•ืžื•ื›ืจื•ืช. ื•ืื ื—ื ื• ืจืง ืฉืœื•ืฉื”, ืื ื—ื ื• ื›ื•ืชื‘ื™ื ืืช ื”ืงื•ื“ ื”ื–ื”, ื•ื–ื” ืžืื•ื“ ืžื’ื ื™ื‘.

ืชื•ื“ื”! ืงื™ืฉื•ืจื™ื ืฉื™ืžื•ืฉื™ื™ื:
- "Java 8. ืžื“ืจื™ืš ืœืžืชื—ื™ืœื™ื".
- ืžื‘ื ื™ ืžื™ื“ืข.
- SQLZOO.
- ื ื•ืจืžืœื™ื–ืฆื™ื” ืฉืœ ืžืกื“ื™ ื ืชื•ื ื™ื.
- ืชื‘ื ื™ื•ืช ืขื™ืฆื•ื‘.
- ืชื‘ื ื™ื•ืช ืขื™ืฆื•ื‘.
- ืงื•ื“ ื ืงื™.
- ื’'ืื•ื•ื” ื™ืขื™ืœื”.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”