{"id":414503,"date":"2024-06-29T23:48:11","date_gmt":"2024-06-29T23:48:11","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=414503"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-06-29T23:48:11","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=414503","title":{"rendered":"<span>\u041e\u0441\u0435\u043d\u043d\u0438\u0439 Java-\u0445\u0430\u0440\u0434\u043a\u043e\u0440 \u043d\u0430 Joker 2021<\/span>"},"content":{"rendered":"<div><!--[--><img loading=\"lazy\" decoding=\"async\" height=\"1\" src=\"https:\/\/www.facebook.com\/tr?id=2610199939046212&amp;ev=PageView&amp;noscript=1\" style=\"display:none;\" width=\"1\"><img loading=\"lazy\" decoding=\"async\" height=\"1\" src=\"https:\/\/vk.com\/rtrg?p=VK-RTRG-395749-3h3dN\" style=\"display:none;\" width=\"1\"><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b39\/28c\/4bb\/b3928c4bbed26dade15c5a6b853fe5b3.png\" width=\"1920\" height=\"1008\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b39\/28c\/4bb\/b3928c4bbed26dade15c5a6b853fe5b3.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043e\u043a\u0442\u044f\u0431\u0440\u0435 Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u043d\u0435\u043c\u0430\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e: \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 <a href=\"https:\/\/jokerconf.com\/?utm_source=habr&amp;utm_medium=580848\"><strong><u>Joker<\/u><\/strong><\/a> \u0431\u0443\u0434\u0443\u0442 \u0438 \u0445\u0430\u0440\u0434\u043a\u043e\u0440\u043d\u044b\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u044b, \u0438 \u043b\u044e\u0431\u0438\u043c\u044b\u0435 \u0441\u043f\u0438\u043a\u0435\u0440\u044b, \u0438 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b.<\/p>\n<p><strong>\u041e \u0445\u0430\u0440\u0434\u043a\u043e\u0440\u0435<\/strong>: \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u043d\u0435 \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0438 \u043e\u0434\u0438\u043d Joker, \u043d\u043e \u0432 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043a\u043e\u043c\u0438\u0442\u0435\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0434\u043e\u0432\u043e\u043b\u0435\u043d \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u043c\u0441\u044f. \u0412 \u0441\u043f\u0438\u0441\u043a\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u0432 \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u043c\u044b \u043f\u043e\u043c\u0435\u0442\u0438\u043b\u0438 \u0445\u0430\u0440\u0434\u043a\u043e\u0440\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u043a\u043e\u043c ?.<\/p>\n<p><strong>\u041e \u0441\u043f\u0438\u043a\u0435\u0440\u0430\u0445:<\/strong> \u0431\u0443\u0434\u0443\u0442 \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c \u0438\u043c\u0435\u043d\u0430 (<strong>\u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0428\u0438\u043f\u0438\u043b\u0451\u0432<\/strong>, <strong>\u0414\u0436\u043e\u0448 \u041b\u043e\u043d\u0433<\/strong>, <strong>\u0415\u0432\u0433\u0435\u043d\u0438\u0439 \u0411\u043e\u0440\u0438\u0441\u043e\u0432<\/strong>), \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043d\u043e\u0432\u044b\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0431\u0443\u0434\u0435\u0442 \u043f\u0430\u0440\u043d\u044b\u0439 \u0434\u043e\u043a\u043b\u0430\u0434 \u041c\u044d\u0442\u0442\u0430 \u0420\u0430\u0439\u0431\u043b\u0430 \u0438 \u0411\u0440\u0430\u0439\u0430\u043d\u0430 \u0414\u0435\u043c\u0435\u0440\u0441\u0430, \u0430 \u0443 \u043e\u0431\u043e\u0438\u0445 \u044d\u0442\u0438\u0445 \u043b\u044e\u0434\u0435\u0439 \u0435\u0441\u0442\u044c \u0437\u0432\u0430\u043d\u0438\u0435 Java Champion \u2014 \u0447\u0430\u0441\u0442\u043e \u043b\u0438 \u0443\u0441\u043b\u044b\u0448\u0438\u0448\u044c \u0434\u0432\u0443\u0445 \u00ab\u0447\u0435\u043c\u043f\u0438\u043e\u043d\u043e\u0432\u00bb \u0441\u0440\u0430\u0437\u0443?<\/p>\n<p><strong>\u041e \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445:<\/strong> \u0434\u043e\u043a\u043b\u0430\u0434\u044b \u0432\u0430\u0436\u043d\u044b, \u043d\u043e \u0432 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0434\u0435\u043b\u043e \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u0441\u044f \u0438\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0415\u0432\u0433\u0435\u043d\u0438\u0439 \u0411\u043e\u0440\u0438\u0441\u043e\u0432 \u0432 \u043f\u0440\u044f\u043c\u043e\u043c \u044d\u0444\u0438\u0440\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u0442 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u043d\u0430 senior-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.\u00a0<\/p>\n<p>\u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u2014 \u043f\u043e\u043b\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u0440\u0430\u0437\u0431\u0438\u0442\u0430\u044f \u043d\u0430 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u043b\u043e\u043a\u0438.<\/p>\n<hr\/>\n<p><a href=\"#special\"><strong>\u0421\u043f\u0435\u0446\u0444\u043e\u0440\u043c\u0430\u0442\u044b<\/strong><\/a><\/p>\n<p><a href=\"#runtime\"><strong>VM\/Runtime<\/strong><\/a><\/p>\n<p><a href=\"#jvm\"><strong>JVM-\u044f\u0437\u044b\u043a\u0438<\/strong><\/a><\/p>\n<p><a href=\"#tooling\"><strong>\u0422\u0443\u043b\u0438\u043d\u0433 \u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#spring\"><strong><em>Spring<\/em><\/strong><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#codegen\"><strong><em>\u041a\u043e\u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f<\/em><\/strong><\/a><\/p>\n<\/li>\n<\/ul>\n<p><a href=\"#architecture\"><strong>\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430<\/strong><\/a><\/p>\n<p><a href=\"#processing\"><strong>Data storage and processing<\/strong><\/a><\/p>\n<p><a href=\"#secur\"><strong>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c<\/strong><\/a><\/p>\n<p><a href=\"#test\"><strong>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/strong><\/a><\/p>\n<hr\/>\n<p><a class=\"anchor\" name=\"special\" id=\"special\"><\/a><\/p>\n<h2>\u0421\u043f\u0435\u0446\u0444\u043e\u0440\u043c\u0430\u0442\u044b<\/h2>\n<p><strong>\u00a0<\/strong>\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044e \u043e\u0442\u043a\u0440\u043e\u0435\u0442 \u043a\u0435\u0439\u043d\u043e\u0443\u0442 \u041d\u0438\u043a\u0438\u0442\u044b \u041f\u043e\u0432\u0430\u0440\u043e\u0432\u0430 \u0438 \u0420\u043e\u043c\u0430\u043d\u0430 \u041f\u043e\u0431\u043e\u0440\u0447\u0435\u0433\u043e \u0438\u0437 JetBrains <strong>\u00ab<\/strong><a href=\"https:\/\/jokerconf.com\/talks\/self-writing-code\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u0421\u0430\u043c\u043e\u043f\u0438\u0448\u0443\u0449\u0438\u0439\u0441\u044f \u043a\u043e\u0434\u00bb<\/strong><\/a>.\u00a0<\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/6df\/838\/b92\/6df838b921461566428cff852c97fedf.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6df\/838\/b92\/6df838b921461566428cff852c97fedf.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u041d\u0438\u043a\u0438\u0442\u0430 \u041f\u043e\u0432\u0430\u0440\u043e\u0432<\/h5>\n<p persona=\"true\" class=\"persona__text\">JetBrains<\/p>\n<\/div>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/d09\/54c\/d4b\/d0954cd4b42e40553f521a4d127687a8.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d09\/54c\/d4b\/d0954cd4b42e40553f521a4d127687a8.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0420\u043e\u043c\u0430\u043d \u041f\u043e\u0431\u043e\u0440\u0447\u0438\u0439<\/h5>\n<p persona=\"true\" class=\"persona__text\">JetBrains<\/p>\n<\/div>\n<p>\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e Joker \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0434\u043e\u043a\u043b\u0430\u0434 <a class=\"mention\" href=\"\/users\/lany\">@lany<\/a> \u043e \u0442\u043e\u043c, \u0437\u0430\u043c\u0435\u043d\u044f\u0442 \u043b\u0438 \u0440\u043e\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 (\u043c\u044b \u0434\u0430\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/534866\/\"><u>\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e<\/u><\/a> \u0434\u043b\u044f \u0425\u0430\u0431\u0440\u0430). \u041d\u043e \u0437\u0430 \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0439 \u0433\u043e\u0434 \u0442\u0435\u043c\u0430 \u0441\u0442\u0430\u043b\u0430 \u043b\u0438\u0448\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0435\u0435 \u043f\u0440\u0435\u0436\u043d\u0435\u0433\u043e: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0431\u044b\u043b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 GitHub Copilot.\u00a0<\/p>\n<p>\u0422\u0430\u043a \u0447\u0442\u043e \u043c\u044b \u0441\u043d\u043e\u0432\u0430 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u0442\u0435\u043c\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0438\u0448\u0443\u0442 \u043a\u043e\u0434. \u041e\u0441\u0432\u0435\u0442\u044f\u0442 \u0435\u0451 \u0434\u0432\u043e\u0435 \u0441\u043f\u0438\u043a\u0435\u0440\u043e\u0432 \u0438\u0437 JetBrains \u2014 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0433\u0434\u0435 \u043e\u0431 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0437\u043d\u0430\u044e\u0442 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e. \u041f\u0440\u0438\u0447\u0451\u043c \u041d\u0438\u043a\u0438\u0442\u0430 \u041f\u043e\u0432\u0430\u0440\u043e\u0432 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 ML-\u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439, \u0442\u0430\u043a \u0447\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u043f\u0435\u0440\u0432\u044b\u0445 \u0440\u0443\u043a, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u041d\u0438\u043a\u0438\u0442\u0430 \u0438 \u0420\u043e\u043c\u0430\u043d \u0440\u0430\u0437\u0431\u0435\u0440\u0443\u0442, \u043a\u0430\u043a \u00ab\u0441\u0430\u043c\u043e\u043a\u043e\u0434\u043d\u044b\u0435\u00bb \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c, \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u044f\u0442 \u0438\u0445 \u0441\u0438\u043b\u044c\u043d\u044b\u0435 \u0438 \u0441\u043b\u0430\u0431\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443\u0442, \u0447\u0442\u043e \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u0435\u043b\u0430\u044e\u0442 \u0432 JetBrains.<\/p>\n<hr\/>\n<p>\u0418\u0437 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u043d\u0430\u0441 \u0442\u0430\u043a\u0436\u0435 \u0436\u0434\u0435\u0442 <a href=\"https:\/\/jokerconf.com\/talks\/technical-interview-with-evgeny-borisov\/?utm_source=habr&amp;utm_medium=580848\"><u>\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u0441 \u0415\u0432\u0433\u0435\u043d\u0438\u0435\u043c \u0411\u043e\u0440\u0438\u0441\u043e\u0432\u044b\u043c<\/u><\/a>. \u0412\u0441\u0435 \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435 \u0435\u0433\u043e \u043a\u0430\u043a \u0437\u043d\u0430\u0442\u043e\u043a\u0430 \u0438 \u043f\u043e\u0442\u0440\u043e\u0448\u0438\u0442\u0435\u043b\u044f Spring. \u0410 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0431\u044b \u0432\u044b \u043f\u043e\u043f\u0430\u043b\u0438 \u043a \u043d\u0435\u043c\u0443 \u043d\u0430 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435? \u041f\u0440\u043e\u0448\u043b\u0438 \u0431\u044b?<\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/15a\/e7a\/0e7\/15ae7a0e71a4c1772036c8f8613968bb.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/15a\/e7a\/0e7\/15ae7a0e71a4c1772036c8f8613968bb.png\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0415\u0432\u0433\u0435\u043d\u0438\u0439 \u0411\u043e\u0440\u0438\u0441\u043e\u0432<\/h5>\n<p persona=\"true\" class=\"persona__text\">\u00a0EPAM<\/p>\n<\/div>\n<p>\u0420\u0430\u0434\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c, \u043a\u0430\u043a\u043e\u0432\u043e \u044d\u0442\u043e: \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0432\u043c\u0435\u0441\u0442\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0415\u0432\u0433\u0435\u043d\u0438\u0439 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u0442 \u0432 \u043f\u0440\u044f\u043c\u043e\u043c \u044d\u0444\u0438\u0440\u0435 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0433\u043e\u043d\u044f\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u0438\u0442\u0435\u0442\u0430 Joker \u043f\u043e \u0445\u0430\u0440\u0434-\u0441\u043a\u0438\u043b\u043b\u0430\u043c. \u0410 \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0431\u044b\u043b\u043e \u043a\u0430\u043a \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u044b \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0437\u043d\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u044b.<\/p>\n<p>\u0411\u0443\u0434\u0435\u0442 \u0438 \u0432\u0435\u0441\u0435\u043b\u043e, \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0438 \u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u2014 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0448\u0430\u0433 \u043f\u043e \u043a\u0430\u0440\u044c\u0435\u0440\u043d\u043e\u0439 \u043b\u0435\u0441\u0442\u043d\u0438\u0446\u0435 \u0438 \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0435\u0441\u044c \u043a \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e.<\/p>\n<hr\/>\n<p>\u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0435-\u0434\u043e\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438, \u043d\u043e \u043e\u043d\u0438 \u0434\u043e\u0431\u0430\u0432\u044f\u0442\u0441\u044f \u043f\u043e\u0437\u0436\u0435 \u2014 \u0430 \u043f\u043e\u043a\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u0441 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u043c\u0438 \u0434\u043e\u043a\u043b\u0430\u0434\u0430\u043c\u0438.<\/p>\n<p><\/p>\n<p><a class=\"anchor\" name=\"runtime\" id=\"runtime\"><\/a><\/p>\n<h2>VM\/Runtime<\/h2>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/java-objects-inside-out\/?utm_source=habr&amp;utm_medium=580848\"><strong>Java-\u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430\u0438\u0437\u043d\u0430\u043d\u043a\u0443<\/strong><\/a><strong> ?<\/strong><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/33e\/d23\/ea2\/33ed23ea2b2cc4e7b0f01dc8787809d8.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/33e\/d23\/ea2\/33ed23ea2b2cc4e7b0f01dc8787809d8.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0428\u0438\u043f\u0438\u043b\u0451\u0432  <\/h5>\n<p persona=\"true\" class=\"persona__text\">Red Hat<\/p>\n<\/div>\n<p>\u0412 \u043e\u043f\u0440\u043e\u0441\u0430\u0445 \u00ab\u043a\u043e\u0433\u043e \u0431\u044b \u0432\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 Joker\u00bb \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0428\u0438\u043f\u0438\u043b\u0451\u0432 \u0432\u0435\u0447\u043d\u043e \u0432 \u0447\u0438\u0441\u043b\u0435 \u043b\u0438\u0434\u0435\u0440\u043e\u0432: \u0435\u0433\u043e \u0445\u0430\u0440\u0434\u043a\u043e\u0440\u043d\u044b\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u044b \u0432 Java-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435 \u043d\u0430 \u0432\u0435\u0441 \u0437\u043e\u043b\u043e\u0442\u0430. \u0418 \u0435\u0441\u043b\u0438 \u043d\u0430 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e\u0434\u043d\u0435\u043c Joker \u043e\u043d \u043b\u0438\u0448\u044c \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0432 \u043a\u0440\u0443\u0433\u043b\u043e\u043c \u0441\u0442\u043e\u043b\u0435, \u0442\u043e \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u0442 \u0441 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u043c \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u043c.<\/p>\n<p>\u041e\u0434\u0438\u043d \u0438\u0437 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043e\u0431 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0445 \u0432 Java \u2014 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u043e\u043d\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438? \u0412 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u0439 \u0438\u043b\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u00absizeof\u00bb, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430\u043c \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0433\u0430\u0434\u0430\u0442\u044c \u043e \u0444\u0443\u0442\u043f\u0440\u0438\u043d\u0442\u0435 \u0438\u0445 \u043a\u043e\u0434\u0430 \u0438\u043b\u0438 \u0441\u0441\u044b\u043b\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043b\u0435\u0433\u0435\u043d\u0434\u044b \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0434\u043e\u043a\u043b\u0430\u0434\u0435 \u043c\u044b \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 \u0438\u0437\u043d\u0430\u043d\u043a\u0443 Java-\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u0432 \u043d\u0438\u0445 \u043b\u0435\u0436\u0438\u0442. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u0442\u0430\u0442\u044c \u044f\u0441\u043d\u044b \u043c\u043d\u043e\u0433\u0438\u0435 \u0442\u0440\u044e\u043a\u0438 \u0432 \u0444\u0443\u0442\u043f\u0440\u0438\u043d\u0442\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0441\u0442\u0430\u043d\u0443\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u043e\u0432, \u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0438 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0433\u0440\u044f\u0437\u043d\u044b\u0445 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u0446\u0435\u043b\u044f\u0445. \u00a0\u00a0<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/project-lilliput-shrinking-object-headers-in-the-hotspot-jvm\/?utm_source=habr&amp;utm_medium=580848\"><strong>Project Lilliput: Shrinking object headers in the Hotspot JVM<\/strong><\/a><strong> <\/strong>?<\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/96f\/414\/0d3\/96f4140d38fbe7b88f63029d369f9bec.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/96f\/414\/0d3\/96f4140d38fbe7b88f63029d369f9bec.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">Roman Kennke<\/h5>\n<p persona=\"true\" class=\"persona__text\">Red Hat<\/p>\n<\/div>\n<p>\u0422\u0443\u0442 \u0442\u043e\u0436\u0435 \u0442\u0435\u043c\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0442\u043e\u0436\u0435 \u0441\u043f\u0438\u043a\u0435\u0440 \u0438\u0437 Red Hat. \u0412 Hotspot JVM \u0443 Java-\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0435\u0441\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0438\u0437 128 \u0431\u0438\u0442: 64-\u0431\u0438\u0442\u043d\u043e\u0435 \u043c\u043d\u043e\u0433\u043e\u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0438 64-\u0431\u0438\u0442\u043d\u044b\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043a\u043b\u0430\u0441\u0441\u0430. \u041f\u0440\u0438 \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u043d\u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 5-6 \u0441\u043b\u043e\u0432 \u044d\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e: 2 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0441\u043b\u043e\u0432 \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0430\u043d\u044f\u0442\u044b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c. \u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430, \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u043f\u0430\u043c\u044f\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0445\u0438\u043f\u0430, \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0430\u043b\u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044e \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 GC \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043a\u0435\u0448\u0430.<\/p>\n<p>\u0420\u043e\u043c\u0430\u043d \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/wiki.openjdk.java.net\/display\/lilliput\"><u>Lilliput<\/u><\/a>, \u043d\u0430\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0426\u0435\u043b\u044c\u044e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0432 Hotspot \u0434\u043e 64 \u0431\u0438\u0442 \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043c\u0435\u043d\u044c\u0448\u0435. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0420\u043e\u043c\u0430\u043d \u043e\u0431\u0441\u0443\u0434\u0438\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u0435\u043b \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044e \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u0413\u043b\u0443\u0431\u043e\u043a\u043e\u0435 \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0432 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e JVM \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/project-loom-a-friend-or-foe-of-reactive\/?utm_source=habr&amp;utm_medium=580848\"><strong>Project Loom \u2014 \u0434\u0440\u0443\u0433 \u0438\u043b\u0438 \u0432\u0440\u0430\u0433 Reactive?<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/420\/4c6\/e7c\/4204c6e7ce253f013a5b80ca1c5a698f.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/420\/4c6\/e7c\/4204c6e7ce253f013a5b80ca1c5a698f.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u041e\u043b\u0435\u0433 \u0414\u043e\u043a\u0443\u043a\u0430<\/h5>\n<p persona=\"true\" class=\"persona__text\">VMware<\/p>\n<\/div>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/04a\/e46\/b07\/04ae46b077beee5c083702d7a317f399.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/04a\/e46\/b07\/04ae46b077beee5c083702d7a317f399.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0410\u043d\u0434\u0440\u0435\u0439 \u0420\u043e\u0434\u0438\u043e\u043d\u043e\u0432 <\/h5>\n<p persona=\"true\" class=\"persona__text\">National Technical University of Ukraine<\/p>\n<\/div>\n<p>\u041c\u044b \u0441\u043b\u044b\u0448\u0430\u043b\u0438 \u043e Project Loom \u2014 \u043d\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u044f\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Java \u0434\u043b\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c\u0430 \u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432. Project Loom \u0434\u0430\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c \u0432 Java, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043c\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u044b. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u043d\u0430\u0447\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c, \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0438 \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0432 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0435 Java.   <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0434\u043e\u043a\u043b\u0430\u0434\u0435 \u0441\u043f\u0438\u043a\u0435\u0440\u044b \u0440\u0430\u0437\u0432\u0435\u044e\u0442 \u043c\u0438\u0444 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e Loom \u0443\u0431\u0438\u0432\u0430\u0435\u0442 Reactive, \u0438 \u043e\u0431\u0441\u0443\u0434\u044f\u0442, \u043a\u0430\u043a \u043e\u043d \u0443\u043b\u0443\u0447\u0448\u0438\u0442 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0443 Reactive, \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0435 \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0439 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438. \u00a0<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/concurrent-thread-stack-processing-in-the-z-garbage-collector\/?utm_source=habr&amp;utm_medium=580848\"><strong>Concurrent thread-stack processing in the Z Garbage Collector<\/strong><\/a><strong> <\/strong>?<\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/600\/534\/4e6\/6005344e6a9ffa218d8dbae23942faeb.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/600\/534\/4e6\/6005344e6a9ffa218d8dbae23942faeb.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">Erik \u00d6sterlund<\/h5>\n<p persona=\"true\" class=\"persona__text\">Oracle<\/p>\n<\/div>\n<p>\u00a0\u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0446\u0435\u043b\u044c Z Garbage Collector (ZGC) \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u043b\u0430\u0441\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u0440\u0435\u043c\u044f \u043f\u0430\u0443\u0437\u044b \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u043c\u0443\u0441\u043e\u0440\u0430 \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u043b\u043e 10 \u043c\u0441. \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u0432 Oracle \u0434\u043e\u0431\u0438\u043b\u0438\u0441\u044c \u044d\u0442\u043e\u0439 \u0446\u0435\u043b\u0438, \u043d\u0430 \u044d\u0442\u043e\u043c \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u0438 \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0430\u0443\u0437\u044b \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u0443\u0431\u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u043d\u044b\u043c\u0438. \u0410 \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0435\u043a\u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0430\u0443\u0437 GC. \u042d\u0442\u043e\u0442 \u0434\u043e\u043a\u043b\u0430\u0434 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d <a href=\"https:\/\/openjdk.java.net\/jeps\/376\"><u>JEP 376<\/u><\/a> \u00abZGC: Concurrent thread-stack processing\u00bb, \u0433\u0434\u0435 \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u044f\u0442 \u0432 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0437\u044b.<\/p>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c, \u0442\u0443\u0442 \u043e\u0434\u0438\u043d \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 ZGC \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u0442 \u0432 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u0445 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0438. \u041f\u043e\u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u044d\u0442\u043e \u0432\u0430\u043c \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0434\u0435\u043d\u044c \u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435? \u0412\u0440\u044f\u0434 \u043b\u0438. \u041d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0439\u0448\u0438\u043c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u043e\u043c \u0438\u0437 \u043f\u0435\u0440\u0432\u044b\u0445 \u0440\u0443\u043a\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u043c \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043d\u0430\u043c\u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438? \u0411\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/going-beyond-the-container-compact-and-fast-containers-with-and-without\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u0412\u044b\u0445\u043e\u0434\u044f \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u2014 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0435 \u0438 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0441 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (\u0438 \u0431\u0435\u0437)<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/20a\/50a\/040\/20a50a040f529481383ea5a0c08d12cf.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/20a\/50a\/040\/20a50a040f529481383ea5a0c08d12cf.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0427\u0443\u0439\u043a\u043e<\/h5>\n<p persona=\"true\" class=\"persona__text\">BellSoft<\/p>\n<\/div>\n<p>\u0420\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f, \u043d\u0435 \u0442\u0440\u0430\u0442\u044f \u0432\u0440\u0435\u043c\u044f \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043d\u0430 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0439\u0442\u0438 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0433\u043e \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f (\u0438 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430), \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441\u0442\u0430\u043b\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u0435\u0439. \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u0432\u0443\u043c\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438 \u2014 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0438 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432, \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u043e\u0431\u043e\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0438 \u043d\u0430\u0439\u0434\u0435\u043c \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0434\u043b\u044f \u0432\u0430\u0448\u0438\u0445 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<p>\u041c\u044b \u0437\u0430\u0442\u0440\u043e\u043d\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043c, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0432\u044b\u0431\u043e\u0440 JDK \u0438 \u0444\u043b\u0430\u0433\u043e\u0432, \u0441\u0431\u043e\u0440\u043a\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041d\u0430\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0430\u043a \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432, \u0442\u0430\u043a \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0441 JDK, \u0432\u044b\u0431\u0440\u0430\u0432 \u0432\u0435\u0440\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443, \u0437\u0430\u0434\u0430\u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b. \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u0442 \u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u043e\u043c Alpine Linux, \u043f\u043e\u043b\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0431\u044b\u043b\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043a\u0430\u043a \u0434\u043b\u044f OpenJDK, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f GraalVM.<\/p>\n<p>\u0412\u044b \u043d\u0430\u0443\u0447\u0438\u0442\u0435\u0441\u044c \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c. \u0412\u043c\u0435\u0441\u0442\u0435 \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0432\u0430\u0448\u0438\u0445 \u0441\u043b\u0443\u0436\u0431 \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/static-java-graalvm-native-and-openjdk\/?utm_source=habr&amp;utm_medium=580848\"><strong>Static Java, GraalVM Native and OpenJDK<\/strong><\/a><strong> <\/strong>?<\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/3fc\/81d\/ef5\/3fc81def51b00315bf7884b9fc8681f9.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3fc\/81d\/ef5\/3fc81def51b00315bf7884b9fc8681f9.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">Andrew Dinn<\/h5>\n<p persona=\"true\" class=\"persona__text\">Red Hat<\/p>\n<\/div>\n<p>\u041f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 GraalVM Native \u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0438\u0433\u0440\u044b. \u041e\u043d\u043e \u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Java-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u0430\u043c\u044f\u0442\u0438. \u041d\u043e \u0437\u0430 \u0432\u0441\u0451 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043b\u0430\u0442\u0438\u0442\u044c. \u041d\u043e\u0432\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0441 \u00ab\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 Java\u00bb \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0433\u043e \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0440\u0438\u0441\u043a\u0438 \u2014 \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0440\u0438\u0441\u043a \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u041f\u043e\u043c\u043e\u0447\u044c \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0441 \u044d\u0442\u0438\u043c \u043f\u0440\u0438\u0437\u0432\u0430\u043d \u043f\u0440\u043e\u0435\u043a\u0442 Leyden \u0438\u0437 OpenJDK.\u00a0<\/p>\n<p>\u042d\u043d\u0434\u0440\u044e \u0414\u0438\u043d\u043d \u2014 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 Red Hat, \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u043d\u0430\u0434 Byteman \u0438 AArch64-\u043f\u043e\u0440\u0442\u043e\u043c OpenJDK, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u042d\u043d\u0434\u0440\u044e \u043f\u0440\u0438\u0447\u0430\u0441\u0442\u0435\u043d \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c GraalVM \u0438 Leyden. \u0422\u0430\u043a \u0447\u0442\u043e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442, \u0441\u0442\u043e\u0438\u0442 \u0441\u043b\u0443\u0448\u0430\u0442\u044c \u043a\u0430\u043a \u0440\u0430\u0437 \u0435\u0433\u043e.<\/p>\n<hr\/>\n<p><a class=\"anchor\" name=\"jvm\" id=\"jvm\"><\/a><\/p>\n<h2>JVM-\u044f\u0437\u044b\u043a\u0438<\/h2>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/architecture-of-math-calculations-on-kotlin\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043d\u0430 Kotlin<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/1cf\/083\/16a\/1cf08316a3268ddc119704010558581f.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1cf\/083\/16a\/1cf08316a3268ddc119704010558581f.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u041d\u043e\u0437\u0438\u043a<\/h5>\n<p persona=\"true\" class=\"persona__text\">JetBrains Research<\/p>\n<\/div>\n<p>\u0414\u043e\u043a\u043b\u0430\u0434\u043e\u0432 \u043f\u0440\u043e Kotlin \u0432 \u043c\u0438\u0440\u0435 \u0443\u0436\u0435 \u043c\u043d\u043e\u0433\u043e, \u043d\u043e \u0442\u0443\u0442 \u043d\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b\u0439 \u00abhello world\u00bb, \u0430 \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0443\u043a\u043e\u0435\u043c\u043a\u0430\u044f \u0442\u0435\u043c\u0430. \u0420\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043f\u0440\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <a href=\"https:\/\/github.com\/mipt-npm\/kmath\"><u>KMath<\/u><\/a> \u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e. \u0411\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u043a \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c API \u0438 \u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u043c \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (Python, C++, Julia, Java \u0438 Kotlin). \u0422\u0430\u043a\u0436\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0442\u043e\u043c, \u043f\u043e\u0447\u0435\u043c\u0443 \u0441\u043b\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0443 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0439. \u0414\u0435\u0442\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0431\u043e\u043a\u0441\u0438\u043d\u0433\u0430.<\/p>\n<p>\u0412\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435, \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0432 Kotlin \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0438 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u043e\u043c, \u043d\u043e \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u043c\u0438, \u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0438\u0445 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438.\u00a0<\/p>\n<p>\u0412 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0442\u043e\u043c, \u0435\u0441\u0442\u044c \u043b\u0438 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 \u0443 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 C++ (\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 Kotlin).<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/scala-war-of-effects-zio-vs-cats-effect\/?utm_source=habr&amp;utm_medium=580848\"><strong>Scala. \u0412\u043e\u0439\u043d\u0430 \u042d\u0444\u0444\u0435\u043a\u0442\u043e\u0432. ZIO vs Cats Effect<\/strong><\/a><strong> <\/strong>?<\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/d63\/068\/843\/d63068843a651220a46838d67cfe4464.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d63\/068\/843\/d63068843a651220a46838d67cfe4464.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u041e\u043b\u0435\u0433 \u041d\u0438\u0436\u043d\u0438\u043a\u043e\u0432<\/h5>\n<p persona=\"true\" class=\"persona__text\">\u0422\u0438\u043d\u044c\u043a\u043e\u0444\u0444<\/p>\n<\/div>\n<p>\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0431\u044d\u043a\u0435\u043d\u0434-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430 Scala \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u043a\u043e\u0440\u0438\u043b\u0430\u0441\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0439 concurrency \u043d\u0430 \u0431\u0430\u0437\u0435 \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0435\u0439 \u043c\u043e\u043d\u0430\u0434\u044b IO. \u041d\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0440\u0430\u0441\u043a\u043e\u043b\u043e\u0442\u044b\u043c \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 ZIO-\u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 Cats Effect. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0434\u043e\u043a\u043b\u0430\u0434\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f:<\/p>\n<ul>\n<li>\n<p>\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d IO \u0438 \u0435\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435?<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a\u0438\u0435 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043d\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0435\u0441\u0442\u044c \u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c?<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a\u0438\u0435 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043c\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u0432 Cats Effect 3?<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u0438\u0445 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u0431\u043e\u0440\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c?<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0441\u043e\u0447\u0435\u0442\u0430\u0442\u044c \u0438 \u043a\u0430\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c?<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/how-to-evolve-your-kotlin-library-painlessly-for-clients\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u041a\u0430\u043a \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043d\u0430 Kotlin \u0431\u0435\u0437\u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/0a0\/2b7\/af7\/0a02b7af788fa5a7f860fcca1b6fe19d.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0a0\/2b7\/af7\/0a02b7af788fa5a7f860fcca1b6fe19d.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u041b\u0435\u043e\u043d\u0438\u0434 \u0421\u0442\u0430\u0440\u0446\u0435\u0432<\/h5>\n<p persona=\"true\" class=\"persona__text\">JetBrains<\/p>\n<\/div>\n<p>\u0412\u044b\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u2014 \u044d\u0442\u043e \u043f\u043e\u043b\u0434\u0435\u043b\u0430, \u0434\u0430\u043b\u044c\u0448\u0435 \u0435\u0435 \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c. \u0418 \u0442\u0443\u0442, \u0441 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043d\u0430\u0434\u043e \u043d\u0435 \u043f\u043e\u0434\u0432\u0435\u0441\u0442\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e, \u0430 \u0441 \u0434\u0440\u0443\u0433\u043e\u0439, \u043d\u0435 \u0441\u043e\u0439\u0442\u0438 \u0441 \u0443\u043c\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435. \u041b\u0435\u043e\u043d\u0438\u0434 \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Kotlin-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0432 JetBrains \u0438 \u043c\u0435\u0439\u043d\u0442\u0435\u0439\u043d\u0435\u0440 kotlinx.serialization, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u043e\u0435 \u0437\u043d\u0430\u0435\u0442 \u043f\u043e \u0442\u0435\u043c\u0435 \u00ab\u043a\u0430\u043a \u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u00bb.<\/p>\n<p>\u041c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 \u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u043d\u0435 \u0441\u043b\u043e\u043c\u0430\u0442\u044c \u0435\u0451. \u0422\u0430\u043a\u0436\u0435 \u0437\u0430\u0442\u0440\u043e\u043d\u0435\u043c \u0442\u0435\u043c\u0443 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u0438 API, \u043a\u0430\u043a \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0435. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0442\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u0438\u0437 \u0432\u0441\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043d\u0430 Kotlin \u2014 \u0442\u0430\u043a\u0438\u0445, \u043a\u0430\u043a kotlinx.coroutines \u0438 kotlinx.serialization.<\/p>\n<hr\/>\n<p><a class=\"anchor\" name=\"tooling\" id=\"tooling\"><\/a><\/p>\n<h2>\u0422\u0443\u043b\u0438\u043d\u0433 \u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438<\/h2>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/simply-reactive-with-vert-x-mutiny-hibernate-reactive-and-quarkus\/?utm_source=habr&amp;utm_medium=580848\"><strong>&#171;Simply reactive&#187; with Vert.x, Mutiny, Hibernate Reactive and Quarkus<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/1ca\/c8c\/8ba\/1cac8c8bac96c44661df41c689b6ccaf.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1ca\/c8c\/8ba\/1cac8c8bac96c44661df41c689b6ccaf.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">Julien Ponge<\/h5>\n<p persona=\"true\" class=\"persona__text\">Red Hat<\/p>\n<\/div>\n<p>\u00a0\u041c\u044b \u0447\u0430\u0441\u0442\u043e \u0441\u043b\u044b\u0448\u0438\u043c, \u0447\u0442\u043e \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c &#8212; \u044d\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u043e. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u043e\u043d\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0438 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u043b\u043e\u0442\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b. \u041c\u0435\u043d\u044c\u0448\u0435 \u043d\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u0445\u043e\u0434\u0443\u0435\u043c\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b.<\/p>\n<p>\u041c\u044b \u0438\u0437\u0443\u0447\u0438\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 Vert.x \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0435\u0433\u043e \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412\u043e\u0437\u044c\u043c\u0435\u043c Mutiny, \u043d\u043e\u0432\u0443\u044e \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u0443\u044e \u0438 \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0433\u0434\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u043a\u0442\u043e\u0440\u0441\u043a\u0430\u044f \u0441\u0442\u0435\u043f\u0435\u043d\u044c \u043f\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e.<\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u0432\u043e\u0437\u044c\u043c\u0435\u043c Hibernate Reactive, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u043c\u0438 Hibernate \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0441\u044f\u0442\u0438 \u043b\u0435\u0442. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0433\u043e \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044f \u0432 \u043c\u0438\u0440 \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u043c\u044b, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0443\u0432\u0438\u0434\u0438\u043c, \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432\u0441\u0435 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 Quarkus.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0443\u0436\u0435 \u0438\u043c\u0435\u043b\u0438 \u0434\u0435\u043b\u043e \u0441 Vert.x, \u0442\u043e \u043c\u043e\u0433\u043b\u0438 \u0441\u043b\u044b\u0448\u0430\u0442\u044c \u043e \u043a\u043d\u0438\u0433\u0435 \u00abVert.x in Action\u00bb \u2014 \u0430 \u0442\u0443\u0442 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u043a\u043b\u0430\u0434 \u043e\u0442 \u0435\u0451 \u0430\u0432\u0442\u043e\u0440\u0430.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/ai-maintenance-scheduling-with-optaplanner-on-quarkus\/?utm_source=habr&amp;utm_medium=580848\"><strong>AI maintenance scheduling with OptaPlanner on Quarkus<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/eb7\/f84\/626\/eb7f846267bd5379774c19da8f925e23.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/eb7\/f84\/626\/eb7f846267bd5379774c19da8f925e23.png\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">Geoffrey De Smet<\/h5>\n<p persona=\"true\" class=\"persona__text\">Red Hat<\/p>\n<\/div>\n<p>\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u0430\u043c\u043e\u043b\u0435\u0442\u043e\u0432, \u0436\u0435\u043b\u0435\u0437\u043d\u044b\u0445 \u0434\u043e\u0440\u043e\u0433, \u044d\u043b\u0435\u043a\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0435\u0442\u0435\u0439 \u0438\u043b\u0438 \u043b\u0438\u0444\u0442\u043e\u0432 \u2014 \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u0441 \u043f\u043e\u0434\u0431\u043e\u0440\u043e\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u0438 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0439. \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u043b\u043e\u0436\u0438\u0442\u044c\u0441\u044f \u0432 \u0434\u0435\u0434\u043b\u0430\u0439\u043d, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0440\u0430\u043d\u043d\u0435\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442 \u2014 \u044d\u0442\u043e \u043f\u0443\u0441\u0442\u0430\u044f \u0442\u0440\u0430\u0442\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432: \u0435\u0441\u043b\u0438 \u0432\u044b \u0443\u0431\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044c \u0434\u043e\u043c\u0430 7 \u0434\u043d\u0435\u0439 \u043f\u043e\u0434\u0440\u044f\u0434, \u044d\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u0447\u0438\u0442, \u0447\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u043c\u043e\u0436\u043d\u043e 7 \u043d\u0435\u0434\u0435\u043b\u044c \u043f\u043e\u0434\u0440\u044f\u0434 \u043d\u0435 \u0443\u0431\u0438\u0440\u0430\u0442\u044c.<\/p>\n<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u044e\u0442 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u043d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e, \u0447\u0430\u0441\u0442\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u041d\u043e \u0443\u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u044d\u0442\u0443 \u0440\u0430\u0431\u043e\u0442\u0443 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043b\u0443\u0447\u0448\u0435. \u0414\u0436\u0435\u0444\u0444\u0440\u0438, \u0441\u043e\u0437\u0434\u0430\u0432\u0448\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 OptaPlanner, \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e OptaPlanner \u043d\u0430 Quarkus \u0438 Java (\u043d\u043e Spring \u0438\/\u0438\u043b\u0438 Kotlin \u0442\u043e\u0436\u0435 \u043f\u043e\u0434\u043e\u0439\u0434\u0443\u0442). \u041e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0435\u0435 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435, \u043a\u0430\u043a \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0447\u0438\u0445, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u0432, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044f \u0432\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0436\u0435\u0441\u0442\u043a\u0438\u0435 \u0438 \u043c\u044f\u0433\u043a\u0438\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u0439 \u0444\u0430\u043a\u0442 \u043e\u0442 JUG Ru Group: \u0445\u043e\u0442\u044f \u043c\u044b \u043d\u0435 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u043c \u0441\u0430\u043c\u043e\u043b\u0451\u0442\u044b, \u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043c IT-\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438, \u0434\u043b\u044f \u043d\u0430\u0441 OptaPlanner \u0442\u043e\u0436\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f <a href=\"https:\/\/github.com\/vlsi\/confplanner\"><u>\u043f\u043e\u043b\u0435\u0437\u0435\u043d<\/u><\/a>. \u00a0\u00a0<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/single-page-applications-without-rest-api\/?utm_source=habr&amp;utm_medium=580848\"><strong>Single Page Applications without REST API<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/96f\/03c\/7a9\/96f03c7a95a3e215e22f88158ee78ac2.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/96f\/03c\/7a9\/96f03c7a95a3e215e22f88158ee78ac2.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">Martinelli Simon<\/h5>\n<p persona=\"true\" class=\"persona__text\">72 Services LLC<\/p>\n<\/div>\n<p>\u041e\u0434\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f (SPA) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 REST API \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043c\u043e\u0441\u0442\u0430 \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0438. \u042d\u0442\u043e\u0442 API \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0438 \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d, \u0430 \u043a\u043e\u0434 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430. \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u043b\u043e\u0436\u0435\u043d \u0438 \u0447\u0440\u0435\u0432\u0430\u0442 \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438. Vaadin Fusion \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 API \u0438 \u043a\u043e\u0434 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0430\u043d\u043d\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 Java.<\/p>\n<p>\u042d\u0442\u043e\u0442 \u0434\u043e\u043a\u043b\u0430\u0434 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 Vaadin Fusion. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e Vaadin Flow, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 Java, Vaadin Fusion \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 SPA \u0441 TypeScript \u0438 \u0432\u0435\u0431-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 \u0432\u043e \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435 \u0438 Java \u0432 \u0431\u044d\u043a\u0435\u043d\u0434\u0435.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/grpc-client-side-load-balancing-why-what-how-and-wtf\/?utm_source=habr&amp;utm_medium=580848\"><strong>gRPC client-side load balancing \u2014 \u0437\u0430\u0447\u0435\u043c, \u0447\u0442\u043e, \u043a\u0430\u043a \u0438 WTF?<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e78\/a61\/c9e\/e78a61c9e516507daa80b405c92b8894.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e78\/a61\/c9e\/e78a61c9e516507daa80b405c92b8894.png\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0411\u0443\u0433\u0430\u0439\u0447\u0435\u043d\u043a\u043e<\/h5>\n<p persona=\"true\" class=\"persona__text\">\u0421\u0431\u0435\u0440<\/p>\n<\/div>\n<p>\u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u2014 gRPC. \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u0442 \u043e\u0431 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0435\u0451 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0443\u0434\u0435\u043b\u0438\u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u0443 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u041e\u0431\u044b\u0447\u043d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u2014 nginx, envoy, istio \u0438 \u0442.\u0434., \u043d\u043e \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0435\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u0422\u0435\u043c \u0431\u043e\u043b\u0435\u0435, \u0447\u0442\u043e Java-\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f gRPC \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0430 \u043d\u0430 \u043c\u043d\u043e\u0433\u043e\u0435 \u0438 \u0441\u0430\u043c\u0430, \u043d\u043e \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0435\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e&#8230;<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u043c\u0430\u043d\u0443\u0430\u043b\u043e\u0432 \u043a\u0430\u0442\u0430\u0441\u0442\u0440\u043e\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442. \u0414\u043b\u044f \u0432\u044b\u044f\u0441\u043d\u0435\u043d\u0438\u044f \u0438\u0441\u0442\u0438\u043d\u044b \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u0437\u0430\u043b\u0435\u0437\u0435\u043c \u043f\u043e\u0433\u043b\u0443\u0431\u0436\u0435 \u0432 Java-\u043a\u043e\u0434 gRPC, \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u0432 \u0442\u043e\u043c, \u043a\u0430\u043a \u043e\u043d\u043e \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u043b\u043e\u0441\u044c \u0430\u0432\u0442\u043e\u0440\u0430\u043c\u0438 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0441 \u044d\u0442\u0438\u043c \u0436\u0438\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/jreleaser-releasing-at-the-speed-of-light\/?utm_source=habr&amp;utm_medium=580848\"><strong>JReleaser \u2014 releasing at the speed of light<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ee8\/a6f\/10d\/ee8a6f10d05f083939abde4f71d2cb9c.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ee8\/a6f\/10d\/ee8a6f10d05f083939abde4f71d2cb9c.png\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">Andres Almiray<\/h5>\n<p persona=\"true\" class=\"persona__text\">Oracle<\/p>\n<\/div>\n<p>\u0412\u0430\u0448 Java-\u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043e\u0441\u0442\u0438\u0433 \u0442\u043e\u0439 \u0441\u0442\u0430\u0434\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u043f\u043b\u043e\u0445\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0432\u044b\u043b\u043e\u0436\u0438\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u043d\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0433\u0434\u0435 \u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c? \u041a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0449\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0438\u0445? \u0413\u0434\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0430\u043d\u043e\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043b\u0438\u0437\u044b? \u0418 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0451 \u044d\u0442\u043e?\u00a0<\/p>\n<p>\u041d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 JReleaser \u2014 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043e\u0442 \u0410\u043d\u0434\u0440\u0435\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u044d\u0442\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b. JReleaser \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u043d\u0430 GiHub\/GitLab\/Gitea \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0437\u0430\u0442\u0435\u043c \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0438\u0437 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u2014 \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Homebrew, Snap, Scoop \u0438 \u0434\u0440. \u0422\u0430\u043a\u0436\u0435 \u0440\u0435\u043b\u0438\u0437 \u043c\u043e\u0436\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u043d\u043e\u043d\u0441\u044b \u0432 Twitter, Slack, Gitter, Discord \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u0430\u043d\u0430\u043b\u0430\u0445 \u0441\u0432\u044f\u0437\u0438.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/long-lived-grpc-streams-issues\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b long-lived RPC \u0441\u0442\u0440\u0438\u043c\u043e\u0432<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/e8e\/40b\/9a0\/e8e40b9a036f63271497ed95913e4c68.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e8e\/40b\/9a0\/e8e40b9a036f63271497ed95913e4c68.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u042e\u0440\u0438\u0439 \u0412\u0430\u0441\u044e\u0442\u0438\u043d\u0441\u043a\u0438\u0439\u00a0<\/h5>\n<p persona=\"true\" class=\"persona__text\">FlowTraders<\/p>\n<\/div>\n<p>gRPC \u2014 \u0448\u0438\u0440\u043e\u043a\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 RPC-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a, \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0449\u0438\u0439 \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u0435\u0439. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0435\u0433\u043e \u0444\u0438\u0448\u0435\u043a \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u0430 (\u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430). \u041e\u0434\u043d\u0430\u043a\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0430\u0436\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u2014 \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u2014 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0442\u0440\u0443\u0434\u043d\u043e\u0439.<\/p>\n<p>\u041a\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0442\u0430\u044f\u0442\u0441\u044f \u0437\u0430 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u043c API, \u0438 \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0434\u043b\u044f \u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u044f? \u041e\u0431 \u044d\u0442\u043e\u043c \u043f\u043e\u0439\u0434\u0435\u0442 \u0440\u0435\u0447\u044c \u0432 \u0434\u043e\u043a\u043b\u0430\u0434\u0435.<\/p>\n<hr\/>\n<p>\u00a0<\/p>\n<p><a class=\"anchor\" name=\"spring\" id=\"spring\"><\/a><\/p>\n<h3>\u0422\u0443\u043b\u0438\u043d\u0433 \u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438: Spring<\/h3>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/bootiful-spring-graphql\/?utm_source=habr&amp;utm_medium=580848\"><strong>Bootiful Spring GraphQL<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/b26\/6d7\/3c3\/b266d73c3610813af5bb39c0d5a4037a.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b26\/6d7\/3c3\/b266d73c3610813af5bb39c0d5a4037a.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">Josh Long<\/h5>\n<p persona=\"true\" class=\"persona__text\">VMware<\/p>\n<\/div>\n<p>\u0414\u0436\u043e\u0448, \u0442\u0435\u0441\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 Spring, \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0441\u043e\u0431\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u2014 \u0435\u0433\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u044b \u0443\u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0435 \u043e\u0446\u0435\u043d\u043a\u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432. \u0412\u043e\u043f\u0440\u043e\u0441 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u043e\u043c, \u043e \u0447\u0451\u043c \u043e\u043d \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u0442 \u0442\u0435\u043f\u0435\u0440\u044c.\u00a0<\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435 \u0445\u043e\u0442\u044f\u0442 \u0431\u044b\u0442\u044c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c\u0438, \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0438\u0437 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u0432 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u043c \u043c\u0438\u0440\u0435 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0445. \u042d\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u043e. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0442\u0435\u043c, \u043a\u0430\u043a \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0445\u043e\u0440\u043e\u0448\u043e \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b, \u0438 \u0442\u0435\u043c, \u043a\u0430\u043a \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438. \u0414\u043e \u0441\u0438\u0445 \u043f\u043e\u0440. \u0412 2015 \u0433\u043e\u0434\u0443 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Facebook \u0432\u044b\u043b\u043e\u0436\u0438\u043b\u0430 \u0432 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f GraphQL (\u0432 \u0442\u043e\u043c \u0436\u0435 \u0433\u043e\u0434\u0443 \u0432\u044b\u0448\u0435\u043b \u0444\u0438\u043b\u044c\u043c &#171;\u041c\u0441\u0442\u0438\u0442\u0435\u043b\u0438: \u042d\u0440\u0430 \u0410\u043b\u044c\u0442\u0440\u043e\u043d\u0430&#187;, \u0444\u0438\u043b\u044c\u043c \u043e \u0441\u0443\u043f\u0435\u0440\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435-\u043f\u0441\u0438\u0445\u043e\u043f\u0430\u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u043e\u0442\u0435\u043b \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u043c\u0438\u0440. \u0421\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435? \u041d\u0435 \u0434\u0443\u043c\u0430\u0435\u043c&#8230;). GraphQL \u2014 \u044d\u0442\u043e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044e REST \u043d\u0430 HTTP. \u041e\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (\u0447\u0442\u0435\u043d\u0438\u0435, \u043a\u0430\u043a HTTP GET), \u043f\u043e\u0434\u043f\u0438\u0441\u043e\u043a (\u0431\u043e\u043b\u0435\u0435 \u0434\u043e\u043b\u0433\u043e\u0432\u0435\u0447\u043d\u044b\u0435, \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0443) \u0438 \u043c\u0443\u0442\u0430\u0446\u0438\u0439 (\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439).\u00a0<\/p>\n<p>\u041e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0430\u043d\u043e\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043c\u043e\u0434\u0443\u043b\u044c GraphQL \u2014 \u0414\u0436\u043e\u0448 \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u0447\u0435\u043c \u043e\u043d \u0432\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c. <\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/scaling-spring-boot-microservices\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c Spring Boot \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u044b<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/25c\/01d\/b40\/25c01db40d611df195d2d99e97ff4ef7.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/25c\/01d\/b40\/25c01db40d611df195d2d99e97ff4ef7.png\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u041a\u043e\u0436\u0435\u043d\u043a\u043e\u0432<\/h5>\n<p persona=\"true\" class=\"persona__text\">GridGain<\/p>\n<\/div>\n<p>\u041d\u0430 \u0440\u0430\u043d\u043d\u0438\u0445 \u044d\u0442\u0430\u043f\u0430\u0445 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u044b \u0447\u0430\u0441\u0442\u043e \u043d\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u0435\u043c\u0441\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0442\u043e\u043c \u0435\u0433\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u043b\u0438\u0437\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0442\u0430\u043a\u0430\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0441 \u0432\u043e\u0437\u0440\u043e\u0441\u0448\u0435\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c. \u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0433\u043e\u0442\u043e\u0432\u043e.<\/p>\n<p>\u0427\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u0435\u0448\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>schedulers;<\/p>\n<\/li>\n<li>\n<p>websockets;<\/p>\n<\/li>\n<li>\n<p>\u043a\u044d\u0448 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u043f\u0440\u043e\u0441\u0442\u044b\u0435ConcurrentHashMap \u0438\u043b\u0438 Spring Cache;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0435\u0441\u0441\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0435\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u044d\u0442\u0438\u0445 \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c, \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/what-new-is-coming-with-spring-6\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u0427\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432 Spring Framework 6? <\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/ed4\/b9e\/9b1\/ed4b9e9b134c38689ed1badd6e06eba1.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ed4\/b9e\/9b1\/ed4b9e9b134c38689ed1badd6e06eba1.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u041e\u043b\u0435\u0433 \u0414\u043e\u043a\u0443\u043a\u0430 <\/h5>\n<p>VMware<\/p>\n<\/div>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/baa\/c01\/0df\/baac010df4a2ff4846227156ecf87d2d.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/baa\/c01\/0df\/baac010df4a2ff4846227156ecf87d2d.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u041d\u0435\u0441\u0442\u0435\u0440\u043e\u0432<\/h5>\n<p persona=\"true\" class=\"persona__text\">BeZero Carbon<\/p>\n<\/div>\n<p>\u0412\u0430\u0436\u043d\u0430\u044f \u043d\u043e\u0432\u043e\u0441\u0442\u044c \u044d\u0442\u043e\u0439 \u043e\u0441\u0435\u043d\u0438 \u0432 \u043c\u0438\u0440\u0435 Java \u2014 \u044d\u0442\u043e \u0430\u043d\u043e\u043d\u0441 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Spring Framework 6. \u0425\u043e\u0442\u0438\u0442\u0435 \u0443\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0442\u0430\u043c \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f? \u041a\u0430\u043a\u0438\u0435 \u043b\u044e\u0431\u0438\u043c\u044b\u0435 \u0444\u0438\u0447\u0438 \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f, \u0430 \u043a\u0430\u043a\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u0441\u044f \u0434\u043e \u043d\u0435\u0443\u0437\u043d\u0430\u0432\u0430\u0435\u043c\u043e\u0441\u0442\u0438? \u0427\u0442\u043e \u0441\u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f, \u0430 \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439? \u041d\u0435\u0432\u0430\u0436\u043d\u043e, \u0436\u0434\u0435\u0442\u0435 \u0432\u044b \u043d\u043e\u0432\u044b\u0439 \u0440\u0435\u043b\u0438\u0437 \u0441 \u043f\u0440\u0435\u0434\u0432\u043a\u0443\u0448\u0435\u043d\u0438\u0435\u043c \u0438\u043b\u0438 \u0442\u0440\u0435\u043f\u0435\u0442\u043e\u043c, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0435 \u043a \u043d\u0430\u043c, \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u0432\u0441\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b!<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/backward-compatibility-tools-and-approaches-to-control-dependency-hell\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u041e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0430\u0434 dependency hell<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/cef\/2dd\/998\/cef2dd9983bf58c156ea1a549e7a3907.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cef\/2dd\/998\/cef2dd9983bf58c156ea1a549e7a3907.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0415\u0432\u0433\u0435\u043d\u0438\u0439 \u041a\u0430\u043b\u0438\u043d\u0438\u043d<\/h5>\n<p persona=\"true\" class=\"persona__text\">\u0421\u0431\u0435\u0440<\/p>\n<\/div>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/5e9\/dec\/f45\/5e9decf45661886fc0a286b4df32eead.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5e9\/dec\/f45\/5e9decf45661886fc0a286b4df32eead.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u041b\u0430\u043c\u043f\u0435\u043b\u044c\u00a0<\/h5>\n<p persona=\"true\" class=\"persona__text\">\u0421\u0431\u0435\u0440<\/p>\n<\/div>\n<p>\u0421\u0431\u0435\u0440\u0431\u0430\u043d\u043a \u041e\u043d\u043b\u0430\u0439\u043d (\u0421\u0411\u041e\u041b) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u041e\u043a\u043e\u043b\u043e 200+ \u0431\u0438\u0437\u043d\u0435\u0441-\u043a\u043e\u043c\u0430\u043d\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043d\u0430\u0434 \u0441\u0432\u043e\u0438\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0432 \u0421\u0411\u041e\u041b\u0435, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044f \u0441\u043e\u0442\u043d\u0438 third party-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0421\u0431\u0435\u0440\u0430.<\/p>\n<p>\u0421\u043f\u0438\u043a\u0435\u0440\u044b \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443\u0442, \u043a\u0430\u043a \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0432 \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0434\u043b\u044f \u0421\u0411\u041e\u041b\u0430, \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438, \u0447\u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u044e\u0442 \u0438 \u0432\u0435\u0440\u0441\u0438\u043e\u043d\u0438\u0440\u0443\u044e\u0442\u0441\u044f. \u0410 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443\u0442 \u043e\u0431 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438, \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u0445 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438.<em>\u00a0<\/em><\/p>\n<hr\/>\n<p><a class=\"anchor\" name=\"codegen\" id=\"codegen\"><\/a><\/p>\n<h3>\u0422\u0443\u043b\u0438\u043d\u0433 \u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438: \u043a\u043e\u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f<\/h3>\n<p>\u00a0<\/p>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/spark-magic-how-high-level-pipelines-become-distributed-hardcore\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u041c\u0430\u0433\u0438\u044f Spark: \u041a\u0430\u043a \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u044b \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0445\u0430\u0440\u0434\u043a\u043e\u0440\u043e\u043c<\/strong><\/a><strong> <\/strong>?<strong> <\/strong><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/24a\/3d9\/58b\/24a3d958bf89eecec23a82d6d55e2fab.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/24a\/3d9\/58b\/24a3d958bf89eecec23a82d6d55e2fab.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u041f\u0430\u0448\u0430 \u0424\u0438\u043d\u043a\u0435\u043b\u044c\u0448\u0442\u0435\u0439\u043d<\/h5>\n<p persona=\"true\" class=\"persona__text\">JetBrains<\/p>\n<\/div>\n<p>\u041e\u0431 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 Spark \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u0432 \u0443\u0436\u0435 \u043c\u043d\u043e\u0433\u043e, \u043d\u043e \u0442\u0443\u0442 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0434\u0440\u0443\u0433\u0430\u044f. Spark \u2014 \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445. \u041a\u0430\u0436\u0434\u044b\u0439 \u0434\u0430\u0442\u0430-\u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0437\u043d\u0430\u0435\u0442 Spark, \u0431\u043b\u0430-\u0431\u043b\u0430-\u0431\u043b\u0430&#8230; \u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u043d\u043e Spark \u2014 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 Java Streams, \u0442\u0430\u043a? \u041d\u043e \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442? \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u00abflatMap\u00bb \u0438\u043b\u0438 \u00abgroupBy\u00bb \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443. \u0412\u0441\u0442\u0443\u043f\u0430\u0435\u0442 Codegen! \u0417\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0438\u0441\u044c? \u041f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0435 \u0438 \u0443\u0437\u043d\u0430\u0439\u0442\u0435 \u0431\u043e\u043b\u044c\u0448\u0435!<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/decomposing-compose\/?utm_source=habr&amp;utm_medium=580848\"><strong>Decomposing Compose<\/strong><\/a><strong> <\/strong>?<strong> <\/strong><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/b5b\/d02\/648\/b5bd02648a6040bac4259d9eb6818f2b.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b5b\/d02\/648\/b5bd02648a6040bac4259d9eb6818f2b.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0415\u0432\u0433\u0435\u043d\u0438\u0439 \u041c\u0430\u043d\u0434\u0440\u0438\u043a\u043e\u0432<\/h5>\n<p persona=\"true\" class=\"persona__text\">SonarSource<\/p>\n<\/div>\n<p>Jetpack Compose \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0441\u044f \u043a\u0430\u043a UI-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f Android \u043e\u0442 Google, \u043d\u043e \u0437\u0430\u0442\u0435\u043c \u0432 JetBrains \u0437\u0430\u0442\u0435\u044f\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 Compose for Desktop, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043b\u0435\u0433\u043a\u043e \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c UI-\u043a\u043e\u0434 \u043c\u0435\u0436\u0434\u0443 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043e\u043c \u0438 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0430\u043c\u0438. \u041e\u0431\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0434\u0435\u043b\u0430\u044e\u0442 \u043d\u0430 \u043d\u0435\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0441\u0442\u0430\u0432\u043a\u0443 \u2014 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0442\u043e\u0433\u0434\u0430 \u0441 \u043d\u0438\u043c \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f.<\/p>\n<p>\u0415\u0432\u0433\u0435\u043d\u0438\u044e \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 JaCoCo \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u043a\u043e\u043f\u0430\u0442\u044c\u0441\u044f \u0432 \u043d\u0435\u0434\u0440\u0430\u0445 \u044d\u0442\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0438 \u0432 \u0434\u043e\u043a\u043b\u0430\u0434\u0435 \u043e\u043d \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u0442, \u043a\u0430\u043a Jetpack Compose \u0438 Compose \u0434\u043b\u044f Desktop \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c: \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0447\u0435\u0440\u0435\u0437 \u0441\u0440\u0435\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0434\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0431\u0430\u0439\u0442-\u043a\u043e\u0434\u0430. \u0415\u0441\u043b\u0438 \u0432\u044b \u0442\u043e\u0436\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a \u043f\u043e\u0432\u0441\u0435\u0434\u043d\u0435\u0432\u043d\u044b\u0435 \u0432\u0435\u0449\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438\u0437\u043d\u0443\u0442\u0440\u0438, \u0442\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0435 \u2014 \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0441\u0435\u043b\u043e \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/extending-kotlinx-serialization-functionality-with-arrow-meta\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 kotlinx.serialization \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Arrow Meta<\/strong><\/a><strong> <\/strong>?<\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/50b\/e81\/0b1\/50be810b18db6ce43a8f426fc1053c90.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/50b\/e81\/0b1\/50be810b18db6ce43a8f426fc1053c90.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u041a\u0430\u0440\u0438\u043d-\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u041c\u043e\u043d\u043e\u0438\u0434\u00a0<\/h5>\n<p persona=\"true\" class=\"persona__text\">Software Engineer<\/p>\n<\/div>\n<p>\u041d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u043c Kotlin, \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 Kotlin-first \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u043e Jackson \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c kotlinx.serialization. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 \u043b\u044e\u0431\u0438\u043c\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u0432 \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u0445 \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0444\u0438\u0447. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, global naming strategy.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u043e\u0431\u043e\u0439\u0442\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0435\u0435? \u041c\u043e\u0436\u043d\u043e! \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Arrow Meta.<\/p>\n<p>Arrow Meta \u2014 \u044d\u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d\u044b \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430, \u043b\u0438\u043d\u0442\u0435\u0440\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0434\u043e\u043a\u043b\u0430\u0434\u0435 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 use-case \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f global naming strategy \u0432 kotlinx.serialization.<\/p>\n<p>\u0414\u043e\u043a\u043b\u0430\u0434 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0439 \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u0438, \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0435\u0439 Kotlin \u0434\u043b\u044f backend-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438.\u00a0<\/p>\n<hr\/>\n<p><a class=\"anchor\" name=\"architecture\" id=\"architecture\"><\/a><\/p>\n<h3>\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430<\/h3>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/sql-primary-key-surrogate-key-composite-keys-foreign-keys-and-jpa\/?utm_source=habr&amp;utm_medium=580848\"><strong>SQL primary key, surrogate key, composite keys, foreign keys&#8230; and JPA<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a05\/479\/608\/a05479608920f2c9e9e25f1f52f0f906.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a05\/479\/608\/a05479608920f2c9e9e25f1f52f0f906.png\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">Franck Pachot<\/h5>\n<p persona=\"true\" class=\"persona__text\">Yugabyte<\/p>\n<\/div>\n<p>\u0412 Java \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u043c\u0435\u044e\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438. \u041f\u0440\u0438 \u0438\u0445 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0432 \u0411\u0414 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u043b\u044e\u0447. \u0418 \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0445\u043e\u043b\u0438\u0432\u0430\u0440\u044b&#8230; \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043b\u044e\u0447? \u0421\u043e\u0441\u0442\u0430\u0432\u043d\u043e\u0439 \u043a\u043b\u044e\u0447? \u0421\u0443\u0440\u0440\u043e\u0433\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447? \u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u043b\u0438 UUID? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0432\u0441\u0435 \u044d\u0442\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b. \u041d\u0430 \u0438\u0445 \u043f\u043b\u044e\u0441\u044b \u0438 \u043c\u0438\u043d\u0443\u0441\u044b \u0434\u043b\u044f \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0430\u0437\u0443\u043c\u043d\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e, \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c\u044e, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c\u044e, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 JPA \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432. \u041d\u0430 \u0442\u043e, \u043a\u0430\u043a \u0432\u0441\u0435 \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u043c\u0438\u0440\u0435 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445.\u00a0\u00a0<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/cqrs-and-ddd-at-a-price-of-crud\/?utm_source=habr&amp;utm_medium=580848\"><strong>DDDamn good!<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f0b\/283\/241\/f0b2832410bb81c733b57092e731d439.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f0b\/283\/241\/f0b2832410bb81c733b57092e731d439.png\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0410\u0445\u0442\u044f\u043c \u0421\u0430\u043a\u0430\u0435\u0432\u00a0<\/h5>\n<p persona=\"true\" class=\"persona__text\">\u041c\u0435\u0442\u0440 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0439<\/p>\n<\/div>\n<p>\u0410\u0445\u0442\u044f\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0414\u043e\u043a\u043b\u0430\u0434 \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442:<\/p>\n<ul>\n<li>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u041b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u0434\u0435\u0439 DDD \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 DDD \u043d\u0430 MongoDB \u0438 Kafka.<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0435 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0443\u0437\u043d\u0430\u044e\u0442 \u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0445 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0430 \u043e\u043f\u044b\u0442\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u044f\u0442 \u043d\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u0434 \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0433\u043b\u043e\u043c.\u00a0<\/p>\n<hr\/>\n<p><a class=\"anchor\" name=\"processing\" id=\"processing\"><\/a><\/p>\n<h3>Data storage and processing<\/h3>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/apache-cassandra-threads-and-memory\/?utm_source=habr&amp;utm_medium=580848\"><strong>Apache Cassandra \u2014 \u043f\u043e\u0442\u043e\u043a\u0438 \u0438 \u043f\u0430\u043c\u044f\u0442\u044c<\/strong><\/a><strong> <\/strong>?<\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/f41\/cc2\/8dc\/f41cc28dca9e8be21fbdfef22b0d0f32.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f41\/cc2\/8dc\/f41cc28dca9e8be21fbdfef22b0d0f32.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0438\u043d\u043e\u0432\u00a0<\/h5>\n<p persona=\"true\" class=\"persona__text\">Netcracker<\/p>\n<\/div>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e Apache Cassandra \u0433\u043b\u0430\u0437\u0430\u043c\u0438 Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430:<\/p>\n<ul>\n<li>\n<p>\u041a\u0430\u043a \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438, \u043a\u0430\u043a\u0438\u0435 \u043f\u0443\u043b\u044b \u0431\u044b\u0432\u0430\u044e\u0442, \u043a\u0430\u043a \u0438\u0445 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043b\u0438 Cassandra Disruptor?<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0448\u0430\u043b\u0438 \u0432 Apache Cassandra?<\/p>\n<\/li>\n<li>\n<p>\u041f\u0430\u043c\u044f\u0442\u044c. \u0413\u0434\u0435 \u0436\u0438\u0432\u0443\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 Apache Cassandra: \u0432 heap \u0438\u043b\u0438 \u0432 off-heap? \u041a\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c?<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043e\u043a\u043b\u0430\u0434 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0431\u0430\u0437\u0435 \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0432\u044b\u0448\u0435\u0434\u0448\u0435\u0439 Apache Cassandra 4.0. \u0426\u0435\u043b\u0435\u0432\u0430\u044f \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u044f \u2014 Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0442\u0435, \u043a\u0442\u043e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u0443\u0435\u0442 Apache Cassandra.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/jpa-puzzlers-and-beyond\/?utm_source=habr&amp;utm_medium=580848\"><strong>JPA-\u043f\u0430\u0437\u0437\u043b\u0435\u0440\u044b (\u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435)<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/6b4\/5ce\/677\/6b45ce6775d0bef5a8f5b5d92009e25c.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6b4\/5ce\/677\/6b45ce6775d0bef5a8f5b5d92009e25c.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0410\u043d\u0434\u0440\u0435\u0439 \u0411\u0435\u043b\u044f\u0435\u0432<\/h5>\n<p persona=\"true\" class=\"persona__text\">Haulmont<\/p>\n<\/div>\n<p>\u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e JPA \u0438 \u0442\u043e\u043d\u043a\u0438\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u044d\u0442\u043e\u0439 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432: \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f N+1 \u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u0432 \u043a\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 Lazy \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a, \u043a\u0430\u043a \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0443\u0433\u043b\u0443\u0431\u0438\u043c\u0441\u044f \u0432 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0442\u0435\u043c\u044b: \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e Entity Graphs \u0438 \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a\u0438\u0435 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e\u0441\u0442\u0438 \u0442\u0430\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Lombok \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 JPA.<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u0447\u0435\u043c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 JPA \u0432 Spring: \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0447\u0430\u0442\u044c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u0442\u0430\u0431\u043b\u0438\u0446, \u0438 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0432 Spring Data JPA.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/apache-calcite-a-platform-for-building-advanced-sql-optimizers-in-java\/?utm_source=habr&amp;utm_medium=580848\"><strong>Apache Calcite: \u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445 SQL-\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 Java<\/strong><\/a><strong> <\/strong>?<\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/b31\/44b\/f68\/b3144bf68103ded4c5393bc918a856e3.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b31\/44b\/f68\/b3144bf68103ded4c5393bc918a856e3.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440 \u041e\u0437\u0435\u0440\u043e\u0432<\/h5>\n<p persona=\"true\" class=\"persona__text\">Querify Labs<\/p>\n<\/div>\n<p>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u0430\u0436\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0421\u0423\u0411\u0414 \u0438 data-management-\u0441\u0438\u0441\u0442\u0435\u043c, \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044f \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u043b\u0438\u044f\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u00ab\u0441 \u043d\u0443\u043b\u044f\u00bb \u2014 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0438 \u0442\u0440\u0443\u0434\u043e\u0435\u043c\u043a\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u044b\u043b\u043e \u0431\u044b \u043a\u0440\u0443\u0442\u043e \u0438\u043c\u0435\u0442\u044c \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u0430 \u0431\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u044b \u0438\u0437 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0447\u0430\u0441\u0442\u0435\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u0438\u0445 \u043f\u043e\u0434 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430.<\/p>\n<p>\u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u0442 \u043f\u0440\u043e Apache Calcite \u2014 \u043f\u0440\u043e\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043c\u043e\u0449\u043d\u044b\u0435 cost-based-\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u044b, \u043f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u043e \u0441\u0432\u043e\u0438\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0442\u043e\u0440\u044b \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0421\u0423\u0411\u0414. \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b Apache Calcite, \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 Java-\u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\u0445.<\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u0443\u0436\u0435 \u0437\u043d\u0430\u044e\u0442 \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u0430 \u2014 \u043e\u043d \u0434\u043e\u043b\u0433\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430\u0434 Apache Ignite \u0438 Hazelcast \u0438 \u043e\u0441\u0432\u0435\u0449\u0430\u043b \u0432 \u0434\u043e\u043a\u043b\u0430\u0434\u0430\u0445 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u044d\u0442\u0438\u043c \u0442\u0435\u043c\u044b. \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u043d \u0441\u0442\u0430\u043b\u00a0 \u043e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Querify Labs, \u0430 \u0435\u0449\u0451 \u0441 \u044d\u0442\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u043d\u0430\u0447\u0430\u043b \u043a\u043e\u043c\u043c\u0438\u0442\u0438\u0442\u044c \u0432 Apache Calcite \u2014 \u0442\u0430\u043a \u0447\u0442\u043e \u0442\u0435\u043c\u0430 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0435\u043c\u0443 \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430.\u00a0<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/on-the-way-to-reactive-relational-database-connectivity-1-0\/?utm_source=habr&amp;utm_medium=580848\"><strong>On the way to Reactive Relational Database Connectivity 1.0<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/bc9\/cb5\/4eb\/bc9cb54eb0a4b09ec1c923203cfda292.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bc9\/cb5\/4eb\/bc9cb54eb0a4b09ec1c923203cfda292.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">Mark Paluch<\/h5>\n<p persona=\"true\" class=\"persona__text\">VMware<\/p>\n<\/div>\n<p>Reactive Relational Database Connectivity (R2DBC) \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 Reactive Foundation, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u043a\u0430\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 JVM. \u0418\u043d\u0438\u0446\u0438\u0430\u0442\u0438\u0432\u0430 \u0431\u044b\u043b\u0430 \u043d\u0430\u0447\u0430\u0442\u0430 \u043f\u0430\u0440\u0443 \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 \u0432 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 Java, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043f\u0435\u0440\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438. \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u0431\u044b\u043b\u0430 \u0432\u044b\u043f\u0443\u0449\u0435\u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f 0.9 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 R2DBC \u0443\u0436\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c.<\/p>\n<p>\u041f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0434\u043e\u043a\u043b\u0430\u0434, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0440\u0430\u0442\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 R2DBC \u0438 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0435\u0433\u043e\u0434\u043d\u044f. \u041c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u0431\u0443\u0434\u0443\u0449\u0435\u0435 R2DBC \u0438 \u0442\u043e, \u043a\u0430\u043a \u043e\u043d \u0432\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043b\u0430\u043d\u0434\u0448\u0430\u0444\u0442 JVM. \u0412\u044b \u0443\u0437\u043d\u0430\u0435\u0442\u0435 \u043e\u0431 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a.<\/p>\n<hr\/>\n<p><a class=\"anchor\" name=\"secur\" id=\"secur\"><\/a><\/p>\n<h3>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043ec\u0442\u044c<\/h3>\n<p><strong>\u00a0<\/strong><a href=\"https:\/\/jokerconf.com\/talks\/security-patterns-for-microservice-architectures\/?utm_source=habr&amp;utm_medium=580848\"><strong>Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/78d\/41f\/50d\/78d41f50d1c948e2b6b47f9275aa7690.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/78d\/41f\/50d\/78d41f50d1c948e2b6b47f9275aa7690.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">Matt Raible<\/h5>\n<p persona=\"true\" class=\"persona__text\">Okta<\/p>\n<\/div>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/f5f\/de3\/c0f\/f5fde3c0f3921c03c12549e526165c66.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f5f\/de3\/c0f\/f5fde3c0f3921c03c12549e526165c66.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">Brian Demers\u00a0<\/h5>\n<p persona=\"true\" class=\"persona__text\">Okta<\/p>\n<\/div>\n<p>\u0414\u0432\u0430 Java Champions \u0438\u0437 Okta \u2014 \u041c\u044d\u0442\u0442 \u0438 \u0411\u0440\u0430\u0439\u0430\u043d \u2014\u00a0\u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443\u0442 \u043e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u0445 \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b API \u0432\u0430\u0448\u0435\u0433\u043e \u0431\u044d\u043a\u0435\u043d\u0434\u0430, \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u0430\u0448\u0438\u0445 SPA \u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>\u041c\u0438\u0440 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0431\u044b\u0442\u044c \u043c\u0435\u0441\u0442\u043e\u043c, \u0433\u0434\u0435 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0449\u0438\u0449\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043e \u0441 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u0442\u043e \u043a\u0430\u043a \u043d\u0430\u0441\u0447\u0435\u0442 \u043e\u0431\u043b\u0430\u043a\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442? \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b \u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u044b? \u0427\u0442\u043e \u043d\u0430\u0441\u0447\u0435\u0442 \u0443\u0447\u0435\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043d\u0438\u043c?<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u044d\u0442\u043e \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043a\u0430\u043a \u043a\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u0438\u0437 \u043e\u0431\u043b\u0430\u043a\u0430 \u0432 \u043e\u0431\u043b\u0430\u043a\u043e \u0438\u043b\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0440\u0435\u0434\u0443? \u0422\u0443\u0442 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u044d\u0442\u0438 \u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438.\u00a0<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/practical-steps-for-creating-safer-software-code-included\/?utm_source=habr&amp;utm_medium=580848\"><strong>Practical steps for creating safer software (Code included)<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/523\/991\/e7e\/523991e7e63fbf6e1d61f566f96cd8b6.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/523\/991\/e7e\/523991e7e63fbf6e1d61f566f96cd8b6.png\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">Steve Poole<\/h5>\n<p persona=\"true\" class=\"persona__text\">Sonatype<\/p>\n<\/div>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u0432\u0435\u0441\u044c \u043c\u0438\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043e\u0444\u0442\u0430: \u044d\u0442\u043e \u0437\u043d\u0430\u0435\u043c \u0438 \u043c\u044b, \u0438 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0438.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0435\u0439\u0447\u0430\u0441, \u043a\u0430\u043a \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u0440\u0430\u043d\u0435\u0435, \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0440\u043e\u043b\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430, \u0441\u0431\u043e\u0440\u043a\u0430 \u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0431\u044b\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c\u0438. \u0412 \u044d\u0442\u043e\u043c \u0434\u043e\u043a\u043b\u0430\u0434\u0435 \u0421\u0442\u0438\u0432 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u0442 \u0432\u0430\u043c \u043e\u0431 \u043e\u0441\u043d\u043e\u0432\u0430\u0445.<\/p>\n<p>\u0412\u044b \u0443\u0437\u043d\u0430\u0435\u0442\u0435 \u043e \u0442\u0440\u0435\u0445 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u043e\u043b\u0435\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u0438 \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u041e\u0442 \u043a\u043e\u0434\u0430 \u0434\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u0435\u0441\u0442\u044c \u0448\u0430\u0433\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043a\u0438\u0431\u0435\u0440\u0430\u0442\u0430\u043a\u0438 \u043d\u0430 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0432\u044b\u0442\u044f\u043d\u0443\u0442\u043e\u0439 \u0440\u0443\u043a\u0438 \u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f, \u0435\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043b\u043e\u0445\u043e\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442.<\/p>\n<p>\u042d\u0442\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430, \u043d\u043e \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u044b\u0433\u0440\u0430\u0442\u044c \u0440\u0435\u0448\u0430\u044e\u0449\u0443\u044e \u0440\u043e\u043b\u044c \u0432 \u0431\u043e\u0440\u044c\u0431\u0435 \u0441 \u043a\u0438\u0431\u0435\u0440\u043f\u0440\u0435\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c\u044e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u043a\u0430\u043a \u043d\u0430\u0448\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0438\u043b\u0438 \u043c\u0435\u0448\u0430\u044e\u0442 \u043a\u0430\u043a \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0430\u043c, \u0442\u0430\u043a \u0438 \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f. \u0412\u044b \u0443\u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0442 \u0430\u0442\u0430\u043a\u0438, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b, \u0438 \u043a\u0430\u043a \u0432\u0430\u0448 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u043c\u043e\u0436\u0435\u0442 \u0443\u0445\u0443\u0434\u0448\u0438\u0442\u044c \u0438\u043b\u0438, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e.<\/p>\n<hr\/>\n<p>\u00a0<\/p>\n<p><a class=\"anchor\" name=\"test\" id=\"test\"><\/a><\/p>\n<h3>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h3>\n<p>\u0418, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u00ab\u043e\u0447\u0435\u043d\u044c \u043e\u0434\u0438\u043d\u043e\u043a\u0438\u0439 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u00bb: \u0442\u0443\u0442 \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0431\u043b\u043e\u043a \u0438\u0437 \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0430.<\/p>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/how-not-to-use-testers-correctly\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e (\u043d\u0435) \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\"><img decoding=\"async\" persona=\"true\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/704\/619\/e7a\/704619e7aac3f2390cce532e3499029d.jpeg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/704\/619\/e7a\/704619e7aac3f2390cce532e3499029d.jpeg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\" persona=\"true\">\u0410\u0440\u0442\u0435\u043c \u0415\u0440\u043e\u0448\u0435\u043d\u043a\u043e\u00a0<\/h5>\n<p persona=\"true\" class=\"persona__text\">Qameta Software<\/p>\n<\/div>\n<p>\u0412\u044b \u0437\u0430\u043c\u0435\u0447\u0430\u043b\u0438, \u0447\u0442\u043e \u0447\u0430\u0441\u0442\u0435\u043d\u044c\u043a\u043e \u043e\u0442 QA \u043f\u0440\u0438\u043b\u0435\u0442\u0430\u044e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435\u043a\u0443\u0434\u0430 \u043f\u0440\u0438\u0442\u043a\u043d\u0443\u0442\u044c? \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0432\u0441\u0435 \u0434\u0435\u0432\u043e\u043f\u0441\u044b, \u044d\u0434\u0436\u0430\u0439\u043b\u044b \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u0441\u043a\u0440\u0430\u043c\u044b, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438 \u0442\u0430\u043a \u0438 \u043d\u0435 \u043d\u0430\u0443\u0447\u0438\u043b\u0438\u0441\u044c \u0436\u0438\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0435.   \u041a\u0430\u0440\u0442\u0438\u043d\u0430 \u043c\u0430\u0441\u043b\u043e\u043c: \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0438\u0448\u0443\u0442 \u0441\u0435\u0431\u0435 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u044b, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u044b \u043f\u0438\u043b\u044f\u0442 \u04352\u0435-\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u0430 \u0440\u0443\u0447\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438 \u0431\u0435\u0440\u0443\u0442 \u0432\u0441\u0451, \u0447\u0442\u043e \u043d\u0435 \u043f\u0440\u0438\u043a\u043e\u043b\u043e\u0447\u0435\u043d\u043e, \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442! \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0437\u0432\u0435\u043d\u044c\u0435\u0432 \u044d\u0442\u043e\u0433\u043e \u043f\u0443\u0442\u0438 \u0435\u0441\u0442\u044c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a, \u0447\u0442\u043e \u0438 \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0434\u043e \u0431\u044b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c.   \u2013 \u0414\u043e\u043b\u0436\u043d\u044b \u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0435\u0441\u0442\u043e\u0432?  \u2013 \u041a\u0430\u043a Test cases as Code \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u00ab\u0440\u0443\u0447\u043d\u0438\u043a\u0438\u00bb \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u0438 \u0442\u043e, \u0447\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u043e? \u2013 \u041a\u0430\u043a \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043e\u0431\u0449\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u043c\u0438\u0440\u0430?   \u0412 \u044d\u0442\u043e\u043c \u0434\u043e\u043a\u043b\u0430\u0434\u0435 \u0410\u0440\u0442\u0435\u043c \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0439 \u0440\u0430\u0437 \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u0441\u0442\u0435\u043d\u0443 \u043d\u0435\u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0438 QA \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Java-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u0430\u043a \u043d\u043e\u0432\u044b\u0445, \u0442\u0430\u043a \u0438 \u0441\u0442\u0430\u0440\u044b\u0445 \u0434\u043e\u0431\u0440\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432. \u0425\u043e\u0442\u0438\u0442\u0435 \u043d\u0430\u0431\u0440\u043e\u0441\u0438\u0442\u044c? \u0417\u0430\u0445\u043e\u0434\u0438\u0442\u0435! <\/p>\n<hr\/>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u041f\u043e\u043a\u0430 \u043e\u0441\u0438\u043b\u0438\u0448\u044c \u0442\u0430\u043a\u043e\u0439 \u0442\u0435\u043a\u0441\u0442, \u0443\u0436\u0435 \u0437\u0430\u0431\u0443\u0434\u0435\u0448\u044c, \u0447\u0442\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0431\u044b\u043b\u043e.  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a \u043d\u0430\u043f\u043e\u043c\u043d\u0438\u043c \u0433\u043b\u0430\u0432\u043d\u043e\u0435:<\/p>\n<ul>\n<li>\n<p>Joker \u043f\u0440\u043e\u0439\u0434\u0451\u0442 \u0432 \u043e\u043d\u043b\u0430\u0439\u043d\u0435 25-28 \u043e\u043a\u0442\u044f\u0431\u0440\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438 \u0431\u0438\u043b\u0435\u0442\u044b \u2014 <a href=\"https:\/\/jokerconf.com\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u043d\u0430 \u0441\u0430\u0439\u0442\u0435<\/strong><\/a>.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/580848\/\"> https:\/\/habr.com\/ru\/articles\/580848\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043e\u043a\u0442\u044f\u0431\u0440\u0435 Java-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u043d\u0435\u043c\u0430\u043b\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e: \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 <a href=\"https:\/\/jokerconf.com\/?utm_source=habr&amp;utm_medium=580848\"><strong><u>Joker<\/u><\/strong><\/a> \u0431\u0443\u0434\u0443\u0442 \u0438 \u0445\u0430\u0440\u0434\u043a\u043e\u0440\u043d\u044b\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u044b, \u0438 \u043b\u044e\u0431\u0438\u043c\u044b\u0435 \u0441\u043f\u0438\u043a\u0435\u0440\u044b, \u0438 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b.<\/p>\n<p><strong>\u041e \u0445\u0430\u0440\u0434\u043a\u043e\u0440\u0435<\/strong>: \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u043d\u0435 \u043e\u0431\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0438 \u043e\u0434\u0438\u043d Joker, \u043d\u043e \u0432 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043a\u043e\u043c\u0438\u0442\u0435\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0434\u043e\u0432\u043e\u043b\u0435\u043d \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u043c\u0441\u044f. \u0412 \u0441\u043f\u0438\u0441\u043a\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u0432 \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u043c\u044b \u043f\u043e\u043c\u0435\u0442\u0438\u043b\u0438 \u0445\u0430\u0440\u0434\u043a\u043e\u0440\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u043a\u043e\u043c ?.<\/p>\n<p><strong>\u041e \u0441\u043f\u0438\u043a\u0435\u0440\u0430\u0445:<\/strong> \u0431\u0443\u0434\u0443\u0442 \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c \u0438\u043c\u0435\u043d\u0430 (<strong>\u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0428\u0438\u043f\u0438\u043b\u0451\u0432<\/strong>, <strong>\u0414\u0436\u043e\u0448 \u041b\u043e\u043d\u0433<\/strong>, <strong>\u0415\u0432\u0433\u0435\u043d\u0438\u0439 \u0411\u043e\u0440\u0438\u0441\u043e\u0432<\/strong>), \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043d\u043e\u0432\u044b\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0431\u0443\u0434\u0435\u0442 \u043f\u0430\u0440\u043d\u044b\u0439 \u0434\u043e\u043a\u043b\u0430\u0434 \u041c\u044d\u0442\u0442\u0430 \u0420\u0430\u0439\u0431\u043b\u0430 \u0438 \u0411\u0440\u0430\u0439\u0430\u043d\u0430 \u0414\u0435\u043c\u0435\u0440\u0441\u0430, \u0430 \u0443 \u043e\u0431\u043e\u0438\u0445 \u044d\u0442\u0438\u0445 \u043b\u044e\u0434\u0435\u0439 \u0435\u0441\u0442\u044c \u0437\u0432\u0430\u043d\u0438\u0435 Java Champion \u2014 \u0447\u0430\u0441\u0442\u043e \u043b\u0438 \u0443\u0441\u043b\u044b\u0448\u0438\u0448\u044c \u0434\u0432\u0443\u0445 \u00ab\u0447\u0435\u043c\u043f\u0438\u043e\u043d\u043e\u0432\u00bb \u0441\u0440\u0430\u0437\u0443?<\/p>\n<p><strong>\u041e \u0444\u043e\u0440\u043c\u0430\u0442\u0430\u0445:<\/strong> \u0434\u043e\u043a\u043b\u0430\u0434\u044b \u0432\u0430\u0436\u043d\u044b, \u043d\u043e \u0432 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0434\u0435\u043b\u043e \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u0441\u044f \u0438\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0415\u0432\u0433\u0435\u043d\u0438\u0439 \u0411\u043e\u0440\u0438\u0441\u043e\u0432 \u0432 \u043f\u0440\u044f\u043c\u043e\u043c \u044d\u0444\u0438\u0440\u0435 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u0442 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u043d\u0430 senior-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.\u00a0<\/p>\n<p>\u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u2014 \u043f\u043e\u043b\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u0440\u0430\u0437\u0431\u0438\u0442\u0430\u044f \u043d\u0430 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u043b\u043e\u043a\u0438.<\/p>\n<hr\/>\n<p><a href=\"#special\"><strong>\u0421\u043f\u0435\u0446\u0444\u043e\u0440\u043c\u0430\u0442\u044b<\/strong><\/a><\/p>\n<p><a href=\"#runtime\"><strong>VM\/Runtime<\/strong><\/a><\/p>\n<p><a href=\"#jvm\"><strong>JVM-\u044f\u0437\u044b\u043a\u0438<\/strong><\/a><\/p>\n<p><a href=\"#tooling\"><strong>\u0422\u0443\u043b\u0438\u043d\u0433 \u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438<\/strong><\/a><\/p>\n<ul>\n<li>\n<p><a href=\"#spring\"><strong><em>Spring<\/em><\/strong><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#codegen\"><strong><em>\u041a\u043e\u0434\u043e\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f<\/em><\/strong><\/a><\/p>\n<\/li>\n<\/ul>\n<p><a href=\"#architecture\"><strong>\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430<\/strong><\/a><\/p>\n<p><a href=\"#processing\"><strong>Data storage and processing<\/strong><\/a><\/p>\n<p><a href=\"#secur\"><strong>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c<\/strong><\/a><\/p>\n<p><a href=\"#test\"><strong>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/strong><\/a><\/p>\n<hr\/>\n<p><a class=\"anchor\" name=\"special\" id=\"special\"><\/a><\/p>\n<h2>\u0421\u043f\u0435\u0446\u0444\u043e\u0440\u043c\u0430\u0442\u044b<\/h2>\n<p><strong>\u00a0<\/strong>\u041a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044e \u043e\u0442\u043a\u0440\u043e\u0435\u0442 \u043a\u0435\u0439\u043d\u043e\u0443\u0442 \u041d\u0438\u043a\u0438\u0442\u044b \u041f\u043e\u0432\u0430\u0440\u043e\u0432\u0430 \u0438 \u0420\u043e\u043c\u0430\u043d\u0430 \u041f\u043e\u0431\u043e\u0440\u0447\u0435\u0433\u043e \u0438\u0437 JetBrains <strong>\u00ab<\/strong><a href=\"https:\/\/jokerconf.com\/talks\/self-writing-code\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u0421\u0430\u043c\u043e\u043f\u0438\u0448\u0443\u0449\u0438\u0439\u0441\u044f \u043a\u043e\u0434\u00bb<\/strong><\/a>.\u00a0<\/p>\n<div class=\"persona\" persona=\"true\">\n<h5 class=\"persona__heading\" persona=\"true\">\u041d\u0438\u043a\u0438\u0442\u0430 \u041f\u043e\u0432\u0430\u0440\u043e\u0432<\/h5>\n<p persona=\"true\" class=\"persona__text\">JetBrains<\/p>\n<\/div>\n<div class=\"persona\" persona=\"true\">\n<h5 class=\"persona__heading\" persona=\"true\">\u0420\u043e\u043c\u0430\u043d \u041f\u043e\u0431\u043e\u0440\u0447\u0438\u0439<\/h5>\n<p persona=\"true\" class=\"persona__text\">JetBrains<\/p>\n<\/div>\n<p>\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e Joker \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0434\u043e\u043a\u043b\u0430\u0434 <a class=\"mention\" href=\"\/users\/lany\">@lany<\/a> \u043e \u0442\u043e\u043c, \u0437\u0430\u043c\u0435\u043d\u044f\u0442 \u043b\u0438 \u0440\u043e\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 (\u043c\u044b \u0434\u0430\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/jugru\/blog\/534866\/\"><u>\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e<\/u><\/a> \u0434\u043b\u044f \u0425\u0430\u0431\u0440\u0430). \u041d\u043e \u0437\u0430 \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0439 \u0433\u043e\u0434 \u0442\u0435\u043c\u0430 \u0441\u0442\u0430\u043b\u0430 \u043b\u0438\u0448\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0435\u0435 \u043f\u0440\u0435\u0436\u043d\u0435\u0433\u043e: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0431\u044b\u043b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 GitHub Copilot.\u00a0<\/p>\n<p>\u0422\u0430\u043a \u0447\u0442\u043e \u043c\u044b \u0441\u043d\u043e\u0432\u0430 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u0442\u0435\u043c\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0438\u0448\u0443\u0442 \u043a\u043e\u0434. \u041e\u0441\u0432\u0435\u0442\u044f\u0442 \u0435\u0451 \u0434\u0432\u043e\u0435 \u0441\u043f\u0438\u043a\u0435\u0440\u043e\u0432 \u0438\u0437 JetBrains \u2014 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u0433\u0434\u0435 \u043e\u0431 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0437\u043d\u0430\u044e\u0442 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e. \u041f\u0440\u0438\u0447\u0451\u043c \u041d\u0438\u043a\u0438\u0442\u0430 \u041f\u043e\u0432\u0430\u0440\u043e\u0432 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 ML-\u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439, \u0442\u0430\u043a \u0447\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u043f\u0435\u0440\u0432\u044b\u0445 \u0440\u0443\u043a, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u041d\u0438\u043a\u0438\u0442\u0430 \u0438 \u0420\u043e\u043c\u0430\u043d \u0440\u0430\u0437\u0431\u0435\u0440\u0443\u0442, \u043a\u0430\u043a \u00ab\u0441\u0430\u043c\u043e\u043a\u043e\u0434\u043d\u044b\u0435\u00bb \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c, \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u044f\u0442 \u0438\u0445 \u0441\u0438\u043b\u044c\u043d\u044b\u0435 \u0438 \u0441\u043b\u0430\u0431\u044b\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443\u0442, \u0447\u0442\u043e \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u0434\u0435\u043b\u0430\u044e\u0442 \u0432 JetBrains.<\/p>\n<hr\/>\n<p>\u0418\u0437 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u043d\u0430\u0441 \u0442\u0430\u043a\u0436\u0435 \u0436\u0434\u0435\u0442 <a href=\"https:\/\/jokerconf.com\/talks\/technical-interview-with-evgeny-borisov\/?utm_source=habr&amp;utm_medium=580848\"><u>\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e \u0441 \u0415\u0432\u0433\u0435\u043d\u0438\u0435\u043c \u0411\u043e\u0440\u0438\u0441\u043e\u0432\u044b\u043c<\/u><\/a>. \u0412\u0441\u0435 \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435 \u0435\u0433\u043e \u043a\u0430\u043a \u0437\u043d\u0430\u0442\u043e\u043a\u0430 \u0438 \u043f\u043e\u0442\u0440\u043e\u0448\u0438\u0442\u0435\u043b\u044f Spring. \u0410 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0431\u044b \u0432\u044b \u043f\u043e\u043f\u0430\u043b\u0438 \u043a \u043d\u0435\u043c\u0443 \u043d\u0430 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435? \u041f\u0440\u043e\u0448\u043b\u0438 \u0431\u044b?<\/p>\n<div class=\"persona\" persona=\"true\">\n<h5 class=\"persona__heading\" persona=\"true\">\u0415\u0432\u0433\u0435\u043d\u0438\u0439 \u0411\u043e\u0440\u0438\u0441\u043e\u0432<\/h5>\n<p persona=\"true\" class=\"persona__text\">\u00a0EPAM<\/p>\n<\/div>\n<p>\u0420\u0430\u0434\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c, \u043a\u0430\u043a\u043e\u0432\u043e \u044d\u0442\u043e: \u043d\u0430 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0432\u043c\u0435\u0441\u0442\u043e \u0434\u043e\u043a\u043b\u0430\u0434\u0430 \u0415\u0432\u0433\u0435\u043d\u0438\u0439 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u0442 \u0432 \u043f\u0440\u044f\u043c\u043e\u043c \u044d\u0444\u0438\u0440\u0435 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0433\u043e\u043d\u044f\u0442\u044c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u0438\u0442\u0435\u0442\u0430 Joker \u043f\u043e \u0445\u0430\u0440\u0434-\u0441\u043a\u0438\u043b\u043b\u0430\u043c. \u0410 \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0431\u044b\u043b\u043e \u043a\u0430\u043a \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u044b \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0437\u043d\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u044b.<\/p>\n<p>\u0411\u0443\u0434\u0435\u0442 \u0438 \u0432\u0435\u0441\u0435\u043b\u043e, \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0438 \u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u2014 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0448\u0430\u0433 \u043f\u043e \u043a\u0430\u0440\u044c\u0435\u0440\u043d\u043e\u0439 \u043b\u0435\u0441\u0442\u043d\u0438\u0446\u0435 \u0438 \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0435\u0441\u044c \u043a \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e.<\/p>\n<hr\/>\n<p>\u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0435-\u0434\u043e\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438, \u043d\u043e \u043e\u043d\u0438 \u0434\u043e\u0431\u0430\u0432\u044f\u0442\u0441\u044f \u043f\u043e\u0437\u0436\u0435 \u2014 \u0430 \u043f\u043e\u043a\u0430 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f \u0441 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u043c\u0438 \u0434\u043e\u043a\u043b\u0430\u0434\u0430\u043c\u0438.<\/p>\n<p><\/p>\n<p><a class=\"anchor\" name=\"runtime\" id=\"runtime\"><\/a><\/p>\n<h2>VM\/Runtime<\/h2>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/java-objects-inside-out\/?utm_source=habr&amp;utm_medium=580848\"><strong>Java-\u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430\u0438\u0437\u043d\u0430\u043d\u043a\u0443<\/strong><\/a><strong> ?<\/strong><\/p>\n<div class=\"persona\" persona=\"true\">\n<h5 class=\"persona__heading\" persona=\"true\">\u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0428\u0438\u043f\u0438\u043b\u0451\u0432  <\/h5>\n<p persona=\"true\" class=\"persona__text\">Red Hat<\/p>\n<\/div>\n<p>\u0412 \u043e\u043f\u0440\u043e\u0441\u0430\u0445 \u00ab\u043a\u043e\u0433\u043e \u0431\u044b \u0432\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 Joker\u00bb \u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0428\u0438\u043f\u0438\u043b\u0451\u0432 \u0432\u0435\u0447\u043d\u043e \u0432 \u0447\u0438\u0441\u043b\u0435 \u043b\u0438\u0434\u0435\u0440\u043e\u0432: \u0435\u0433\u043e \u0445\u0430\u0440\u0434\u043a\u043e\u0440\u043d\u044b\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u044b \u0432 Java-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435 \u043d\u0430 \u0432\u0435\u0441 \u0437\u043e\u043b\u043e\u0442\u0430. \u0418 \u0435\u0441\u043b\u0438 \u043d\u0430 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e\u0434\u043d\u0435\u043c Joker \u043e\u043d \u043b\u0438\u0448\u044c \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0432 \u043a\u0440\u0443\u0433\u043b\u043e\u043c \u0441\u0442\u043e\u043b\u0435, \u0442\u043e \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0441\u0442\u0443\u043f\u0438\u0442 \u0441 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u043c \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u043c.<\/p>\n<p>\u041e\u0434\u0438\u043d \u0438\u0437 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043e\u0431 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u0445 \u0432 Java \u2014 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0436\u0435 \u043e\u043d\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438? \u0412 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u0439 \u0438\u043b\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u0447\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u00absizeof\u00bb, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430\u043c \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0433\u0430\u0434\u0430\u0442\u044c \u043e \u0444\u0443\u0442\u043f\u0440\u0438\u043d\u0442\u0435 \u0438\u0445 \u043a\u043e\u0434\u0430 \u0438\u043b\u0438 \u0441\u0441\u044b\u043b\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043b\u0435\u0433\u0435\u043d\u0434\u044b \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0434\u043e\u043a\u043b\u0430\u0434\u0435 \u043c\u044b \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u0437\u0430\u0433\u043b\u044f\u043d\u0443\u0442\u044c \u0432 \u0438\u0437\u043d\u0430\u043d\u043a\u0443 Java-\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u0432 \u043d\u0438\u0445 \u043b\u0435\u0436\u0438\u0442. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u0442\u0430\u0442\u044c \u044f\u0441\u043d\u044b \u043c\u043d\u043e\u0433\u0438\u0435 \u0442\u0440\u044e\u043a\u0438 \u0432 \u0444\u0443\u0442\u043f\u0440\u0438\u043d\u0442\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0441\u0442\u0430\u043d\u0443\u0442 \u043f\u043e\u043d\u044f\u0442\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u043e\u0432, \u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0438 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0433\u0440\u044f\u0437\u043d\u044b\u0445 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u0446\u0435\u043b\u044f\u0445. \u00a0\u00a0<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/project-lilliput-shrinking-object-headers-in-the-hotspot-jvm\/?utm_source=habr&amp;utm_medium=580848\"><strong>Project Lilliput: Shrinking object headers in the Hotspot JVM<\/strong><\/a><strong> <\/strong>?<\/p>\n<div class=\"persona\" persona=\"true\">\n<h5 class=\"persona__heading\" persona=\"true\">Roman Kennke<\/h5>\n<p persona=\"true\" class=\"persona__text\">Red Hat<\/p>\n<\/div>\n<p>\u0422\u0443\u0442 \u0442\u043e\u0436\u0435 \u0442\u0435\u043c\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0442\u043e\u0436\u0435 \u0441\u043f\u0438\u043a\u0435\u0440 \u0438\u0437 Red Hat. \u0412 Hotspot JVM \u0443 Java-\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0435\u0441\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0438\u0437 128 \u0431\u0438\u0442: 64-\u0431\u0438\u0442\u043d\u043e\u0435 \u043c\u043d\u043e\u0433\u043e\u0446\u0435\u043b\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0438 64-\u0431\u0438\u0442\u043d\u044b\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043a\u043b\u0430\u0441\u0441\u0430. \u041f\u0440\u0438 \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u043d\u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 5-6 \u0441\u043b\u043e\u0432 \u044d\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e: 2 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0441\u043b\u043e\u0432 \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0430\u043d\u044f\u0442\u044b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c. \u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430, \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u043f\u0430\u043c\u044f\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0445\u0438\u043f\u0430, \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0430\u043b\u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044e \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 GC \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043a\u0435\u0448\u0430.<\/p>\n<p>\u0420\u043e\u043c\u0430\u043d \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 <a href=\"https:\/\/wiki.openjdk.java.net\/display\/lilliput\"><u>Lilliput<\/u><\/a>, \u043d\u0430\u0434 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0426\u0435\u043b\u044c\u044e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0432 Hotspot \u0434\u043e 64 \u0431\u0438\u0442 \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043c\u0435\u043d\u044c\u0448\u0435. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0420\u043e\u043c\u0430\u043d \u043e\u0431\u0441\u0443\u0434\u0438\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u0435\u043b \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u043a \u0440\u0435\u0448\u0435\u043d\u0438\u044e \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u0413\u043b\u0443\u0431\u043e\u043a\u043e\u0435 \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0432 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e JVM \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/project-loom-a-friend-or-foe-of-reactive\/?utm_source=habr&amp;utm_medium=580848\"><strong>Project Loom \u2014 \u0434\u0440\u0443\u0433 \u0438\u043b\u0438 \u0432\u0440\u0430\u0433 Reactive?<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\">\n<h5 class=\"persona__heading\" persona=\"true\">\u041e\u043b\u0435\u0433 \u0414\u043e\u043a\u0443\u043a\u0430<\/h5>\n<p persona=\"true\" class=\"persona__text\">VMware<\/p>\n<\/div>\n<div class=\"persona\" persona=\"true\">\n<h5 class=\"persona__heading\" persona=\"true\">\u0410\u043d\u0434\u0440\u0435\u0439 \u0420\u043e\u0434\u0438\u043e\u043d\u043e\u0432 <\/h5>\n<p persona=\"true\" class=\"persona__text\">National Technical University of Ukraine<\/p>\n<\/div>\n<p>\u041c\u044b \u0441\u043b\u044b\u0448\u0430\u043b\u0438 \u043e Project Loom \u2014 \u043d\u043e\u0432\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u044f\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Java \u0434\u043b\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c\u0430 \u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432. Project Loom \u0434\u0430\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c \u0432 Java, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043c\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u044b. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u043d\u0430\u0447\u0430\u043b\u0438 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c, \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0438 \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0432 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0435 Java.   <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0434\u043e\u043a\u043b\u0430\u0434\u0435 \u0441\u043f\u0438\u043a\u0435\u0440\u044b \u0440\u0430\u0437\u0432\u0435\u044e\u0442 \u043c\u0438\u0444 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e Loom \u0443\u0431\u0438\u0432\u0430\u0435\u0442 Reactive, \u0438 \u043e\u0431\u0441\u0443\u0434\u044f\u0442, \u043a\u0430\u043a \u043e\u043d \u0443\u043b\u0443\u0447\u0448\u0438\u0442 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0443 Reactive, \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0435 \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0439 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438. \u00a0<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/concurrent-thread-stack-processing-in-the-z-garbage-collector\/?utm_source=habr&amp;utm_medium=580848\"><strong>Concurrent thread-stack processing in the Z Garbage Collector<\/strong><\/a><strong> <\/strong>?<\/p>\n<div class=\"persona\" persona=\"true\">\n<h5 class=\"persona__heading\" persona=\"true\">Erik \u00d6sterlund<\/h5>\n<p persona=\"true\" class=\"persona__text\">Oracle<\/p>\n<\/div>\n<p>\u00a0\u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0446\u0435\u043b\u044c Z Garbage Collector (ZGC) \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u043b\u0430\u0441\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u0440\u0435\u043c\u044f \u043f\u0430\u0443\u0437\u044b \u043f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u043c\u0443\u0441\u043e\u0440\u0430 \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u043b\u043e 10 \u043c\u0441. \u041d\u043e \u043a\u043e\u0433\u0434\u0430 \u0432 Oracle \u0434\u043e\u0431\u0438\u043b\u0438\u0441\u044c \u044d\u0442\u043e\u0439 \u0446\u0435\u043b\u0438, \u043d\u0430 \u044d\u0442\u043e\u043c \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u0438 \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0430\u0443\u0437\u044b \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u0443\u0431\u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u043d\u044b\u043c\u0438. \u0410 \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0435\u043a\u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0430\u0443\u0437 GC. \u042d\u0442\u043e\u0442 \u0434\u043e\u043a\u043b\u0430\u0434 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d <a href=\"https:\/\/openjdk.java.net\/jeps\/376\"><u>JEP 376<\/u><\/a> \u00abZGC: Concurrent thread-stack processing\u00bb, \u0433\u0434\u0435 \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u044f\u0442 \u0432 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0437\u044b.<\/p>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c, \u0442\u0443\u0442 \u043e\u0434\u0438\u043d \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 ZGC \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u0442 \u0432 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u044f\u0445 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u043d\u0443\u0442\u0440\u0438. \u041f\u043e\u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u044d\u0442\u043e \u0432\u0430\u043c \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0434\u0435\u043d\u044c \u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435? \u0412\u0440\u044f\u0434 \u043b\u0438. \u041d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0439\u0448\u0438\u043c \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u043e\u043c \u0438\u0437 \u043f\u0435\u0440\u0432\u044b\u0445 \u0440\u0443\u043a\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u043c \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043d\u0430\u043c\u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438? \u0411\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/going-beyond-the-container-compact-and-fast-containers-with-and-without\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u0412\u044b\u0445\u043e\u0434\u044f \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u2014 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0435 \u0438 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0441 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (\u0438 \u0431\u0435\u0437)<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\">\n<h5 class=\"persona__heading\" persona=\"true\">\u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0427\u0443\u0439\u043a\u043e<\/h5>\n<p persona=\"true\" class=\"persona__text\">BellSoft<\/p>\n<\/div>\n<p>\u0420\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f, \u043d\u0435 \u0442\u0440\u0430\u0442\u044f \u0432\u0440\u0435\u043c\u044f \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043d\u0430 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0439\u0442\u0438 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0433\u043e \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f (\u0438 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430), \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441\u0442\u0430\u043b\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u0435\u0439. \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u0432\u0443\u043c\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438 \u2014 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0438 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432, \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u043e\u0431\u043e\u0438\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0438 \u043d\u0430\u0439\u0434\u0435\u043c \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0434\u043b\u044f \u0432\u0430\u0448\u0438\u0445 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<p>\u041c\u044b \u0437\u0430\u0442\u0440\u043e\u043d\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043c, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0432\u044b\u0431\u043e\u0440 JDK \u0438 \u0444\u043b\u0430\u0433\u043e\u0432, \u0441\u0431\u043e\u0440\u043a\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041d\u0430\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0430\u043a \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432, \u0442\u0430\u043a \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0441 JDK, \u0432\u044b\u0431\u0440\u0430\u0432 \u0432\u0435\u0440\u043d\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443, \u0437\u0430\u0434\u0430\u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b. \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u0442 \u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u043d\u043e\u043c Alpine Linux, \u043f\u043e\u043b\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0431\u044b\u043b\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043a\u0430\u043a \u0434\u043b\u044f OpenJDK, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f GraalVM.<\/p>\n<p>\u0412\u044b \u043d\u0430\u0443\u0447\u0438\u0442\u0435\u0441\u044c \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b, \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0438\u0445 \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c. \u0412\u043c\u0435\u0441\u0442\u0435 \u043c\u044b \u043d\u0430\u0443\u0447\u0438\u043c\u0441\u044f \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u0432\u0430\u0448\u0438\u0445 \u0441\u043b\u0443\u0436\u0431 \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/static-java-graalvm-native-and-openjdk\/?utm_source=habr&amp;utm_medium=580848\"><strong>Static Java, GraalVM Native and OpenJDK<\/strong><\/a><strong> <\/strong>?<\/p>\n<div class=\"persona\" persona=\"true\">\n<h5 class=\"persona__heading\" persona=\"true\">Andrew Dinn<\/h5>\n<p persona=\"true\" class=\"persona__text\">Red Hat<\/p>\n<\/div>\n<p>\u041f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 GraalVM Native \u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0438\u0433\u0440\u044b. \u041e\u043d\u043e \u0434\u0430\u0451\u0442 \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Java-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u0430\u043c\u044f\u0442\u0438. \u041d\u043e \u0437\u0430 \u0432\u0441\u0451 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043b\u0430\u0442\u0438\u0442\u044c. \u041d\u043e\u0432\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0441 \u00ab\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 Java\u00bb \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0433\u043e \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u0440\u0438\u0441\u043a\u0438 \u2014 \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0440\u0438\u0441\u043a \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u041f\u043e\u043c\u043e\u0447\u044c \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0441 \u044d\u0442\u0438\u043c \u043f\u0440\u0438\u0437\u0432\u0430\u043d \u043f\u0440\u043e\u0435\u043a\u0442 Leyden \u0438\u0437 OpenJDK.\u00a0<\/p>\n<p>\u042d\u043d\u0434\u0440\u044e \u0414\u0438\u043d\u043d \u2014 \u0438\u043d\u0436\u0435\u043d\u0435\u0440 Red Hat, \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0441\u0432\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u043d\u0430\u0434 Byteman \u0438 AArch64-\u043f\u043e\u0440\u0442\u043e\u043c OpenJDK, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u042d\u043d\u0434\u0440\u044e \u043f\u0440\u0438\u0447\u0430\u0441\u0442\u0435\u043d \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c GraalVM \u0438 Leyden. \u0422\u0430\u043a \u0447\u0442\u043e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442, \u0441\u0442\u043e\u0438\u0442 \u0441\u043b\u0443\u0448\u0430\u0442\u044c \u043a\u0430\u043a \u0440\u0430\u0437 \u0435\u0433\u043e.<\/p>\n<hr\/>\n<p><a class=\"anchor\" name=\"jvm\" id=\"jvm\"><\/a><\/p>\n<h2>JVM-\u044f\u0437\u044b\u043a\u0438<\/h2>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/architecture-of-math-calculations-on-kotlin\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043d\u0430 Kotlin<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\">\n<h5 class=\"persona__heading\" persona=\"true\">\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u041d\u043e\u0437\u0438\u043a<\/h5>\n<p persona=\"true\" class=\"persona__text\">JetBrains Research<\/p>\n<\/div>\n<p>\u0414\u043e\u043a\u043b\u0430\u0434\u043e\u0432 \u043f\u0440\u043e Kotlin \u0432 \u043c\u0438\u0440\u0435 \u0443\u0436\u0435 \u043c\u043d\u043e\u0433\u043e, \u043d\u043e \u0442\u0443\u0442 \u043d\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b\u0439 \u00abhello world\u00bb, \u0430 \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0443\u043a\u043e\u0435\u043c\u043a\u0430\u044f \u0442\u0435\u043c\u0430. \u0420\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043f\u0440\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <a href=\"https:\/\/github.com\/mipt-npm\/kmath\"><u>KMath<\/u><\/a> \u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e. \u0411\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u043a \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c API \u0438 \u0438\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u043c \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (Python, C++, Julia, Java \u0438 Kotlin). \u0422\u0430\u043a\u0436\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0442\u043e\u043c, \u043f\u043e\u0447\u0435\u043c\u0443 \u0441\u043b\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0443 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u0438 \u0431\u044b\u0441\u0442\u0440\u043e\u0439. \u0414\u0435\u0442\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0431\u043e\u043a\u0441\u0438\u043d\u0433\u0430.<\/p>\n<p>\u0412\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435, \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0432 Kotlin \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0438 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u043e\u043c, \u043d\u043e \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u044b\u043c\u0438, \u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0438\u0445 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438.\u00a0<\/p>\n<p>\u0412 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0442\u043e\u043c, \u0435\u0441\u0442\u044c \u043b\u0438 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 \u0443 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0437\u0430 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u043c\u0438 C++ (\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 Kotlin).<\/p>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/scala-war-of-effects-zio-vs-cats-effect\/?utm_source=habr&amp;utm_medium=580848\"><strong>Scala. \u0412\u043e\u0439\u043d\u0430 \u042d\u0444\u0444\u0435\u043a\u0442\u043e\u0432. ZIO vs Cats Effect<\/strong><\/a><strong> <\/strong>?<\/p>\n<div class=\"persona\" persona=\"true\">\n<h5 class=\"persona__heading\" persona=\"true\">\u041e\u043b\u0435\u0433 \u041d\u0438\u0436\u043d\u0438\u043a\u043e\u0432<\/h5>\n<p persona=\"true\" class=\"persona__text\">\u0422\u0438\u043d\u044c\u043a\u043e\u0444\u0444<\/p>\n<\/div>\n<p>\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0431\u044d\u043a\u0435\u043d\u0434-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430 Scala \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u043a\u043e\u0440\u0438\u043b\u0430\u0441\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u043e\u0439 concurrency \u043d\u0430 \u0431\u0430\u0437\u0435 \u0440\u0430\u0437\u043d\u043e\u0432\u0438\u0434\u043d\u043e\u0441\u0442\u0435\u0439 \u043c\u043e\u043d\u0430\u0434\u044b IO. \u041d\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0440\u0430\u0441\u043a\u043e\u043b\u043e\u0442\u044b\u043c \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 ZIO-\u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 Cats Effect. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0434\u043e\u043a\u043b\u0430\u0434\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f:<\/p>\n<ul>\n<li>\n<p>\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d IO \u0438 \u0435\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435?<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a\u0438\u0435 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442\u043d\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0435\u0441\u0442\u044c \u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c?<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a\u0438\u0435 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043c\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u0432 Cats Effect 3?<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u043a \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u0438\u0445 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u0431\u043e\u0440\u044e\u0442\u0441\u044f \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c?<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u0441\u043e\u0447\u0435\u0442\u0430\u0442\u044c \u0438 \u043a\u0430\u043a \u0432\u044b\u0431\u0440\u0430\u0442\u044c?<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<p><a href=\"https:\/\/jokerconf.com\/talks\/how-to-evolve-your-kotlin-library-painlessly-for-clients\/?utm_source=habr&amp;utm_medium=580848\"><strong>\u041a\u0430\u043a \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043d\u0430 Kotlin \u0431\u0435\u0437\u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432<\/strong><\/a><\/p>\n<div class=\"persona\" persona=\"true\">\n<h5 class=\"persona__heading\" persona=\"true\">\u041b\u0435\u043e\u043d\u0438\u0434 \u0421\u0442\u0430\u0440\u0446\u0435\u0432<\/h5>\n<p persona=\"true\" class=\"persona__text\">JetBrains<\/p>\n<\/div>\n<p>\u0412\u044b\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u2014 \u044d\u0442\u043e \u043f\u043e\u043b\u0434\u0435\u043b\u0430, \u0434\u0430\u043b\u044c\u0448\u0435 \u0435\u0435 \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c. \u0418 \u0442\u0443\u0442, \u0441 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043d\u0430\u0434\u043e \u043d\u0435 \u043f\u043e\u0434\u0432\u0435\u0441\u0442\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e, \u0430 \u0441 \u0434\u0440\u0443\u0433\u043e\u0439, \u043d\u0435 \u0441\u043e\u0439\u0442\u0438 \u0441 \u0443\u043c\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435. \u041b\u0435\u043e\u043d\u0438\u0434 \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Kotlin-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0432 JetBrains \u0438 \u043c\u0435\u0439\u043d\u0442\u0435\u0439\u043d\u0435\u0440 kotlinx.serialization, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u043e\u0435 \u0437\u043d\u0430\u0435\u0442 \u043f\u043e \u0442\u0435\u043c\u0435 \u00ab\u043a\u0430\u043a \u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u00bb.<\/p>\n<p>\u041c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-414503","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/414503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=414503"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/414503\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=414503"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=414503"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=414503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}