{"id":444524,"date":"2025-01-09T10:00:26","date_gmt":"2025-01-09T10:00:26","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=444524"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=444524","title":{"rendered":"<span>Scala Digest. \u0412\u044b\u043f\u0443\u0441\u043a 24<\/span>"},"content":{"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\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/78b\/d0f\/582\/78bd0f582ad1f37c0271a0517e1764f6.png\" width=\"2340\" height=\"1320\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/78b\/d0f\/582\/78bd0f582ad1f37c0271a0517e1764f6.png\"\/><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u044b \u2014 <a href=\"https:\/\/habr.com\/ru\/users\/Melkaya_150cm\/\">\u041d\u0430\u0441\u0442\u044f<\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/users\/EvieLynn\/\">\u042d\u0432\u0435\u043b\u0438\u043d\u0430<\/a> \u2014 \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c \u0441\u0432\u0435\u0436\u0443\u044e \u043a\u0440\u043e\u0432\u044c \u0432 \u043d\u0430\u0448\u0435\u0439 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043d\u043e \u0443\u044e\u0442\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u0435! <a href=\"https:\/\/habr.com\/ru\/users\/haskiindahouse\/\">\u041c\u0438\u0448\u0430<\/a> \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043b\u0441\u044f \u043a \u043d\u0430\u043c \u043c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434 \u0441 \u0433\u043e\u0440\u044f\u0449\u0438\u043c\u0438 \u0433\u043b\u0430\u0437\u0430\u043c\u0438 \u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0435\u043c \u0440\u0430\u0441\u043a\u043e\u043f\u0430\u0442\u044c \u0438 \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u043d\u0430 \u0441\u0432\u0435\u0442 \u043a\u0430\u0436\u0434\u0443\u044e \u0434\u0440\u0430\u0433\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u0443\u043d\u0446\u0438\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438 \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439 \u0438\u0437 Scala-\u043c\u0438\u0440\u0430.<\/p>\n<p>\u041c\u044b \u0440\u0430\u0434\u044b \u0432\u0438\u0434\u0435\u0442\u044c \u043d\u043e\u0432\u043e\u0433\u043e \u0431\u043e\u0439\u0446\u0430 \u0432 \u043d\u0430\u0448\u0438\u0445 \u0440\u044f\u0434\u0430\u0445 \u0438 \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0441\u043c\u043e\u0436\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u0435\u0449\u0435 \u043b\u0443\u0447\u0448\u0435. \u0410 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 <a href=\"https:\/\/polls.tinkoff.ru\/s\/clqqit42h01nr01kfb8d8198y\">\u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c\u0438<\/a> \u2014 \u043c\u044b \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c \u0438\u0445 \u0438 \u0441\u043a\u0430\u0436\u0435\u043c \u0432\u0430\u043c \u0441\u043f\u0430\u0441\u0438\u0431\u043e (\u3065 \u25d5\u203f\u25d5 )\u3065<\/p>\n<p>\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448\u0438\u0445 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u0441 \u041d\u0430\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u043c \u043d\u043e\u0432\u044b\u043c \u0433\u043e\u0434\u043e\u043c \u0438 \u0436\u0435\u043b\u0430\u0435\u043c, \u0447\u0442\u043e\u0431\u044b Scala \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u043b\u0430 \u0435\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u044f!<\/p>\n<h2>\u0420\u0435\u043b\u0438\u0437\u044b<\/h2>\n<p>\u0421\u043e\u0431\u0440\u0430\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0437\u0430 \u043f\u0430\u0440\u0443 \u043c\u0435\u0441\u044f\u0446\u0435\u0432:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/blog.jetbrains.com\/scala\/2024\/12\/05\/intellij-scala-plugin-2024-3-is-out-2\/\">IntelliJ Scala Plugin 2024.3.20 Is Out!<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/scala\/scala3\/releases\/tag\/3.6.3-RC1\">scala 3.6.3-RC1<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/eed3si9n.com\/sbt-1.10.7\">sbt 1.10.7<\/a> \u0438 <a href=\"https:\/\/eed3si9n.com\/sbt-1.10.6\">sbt 1.10.6<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/eed3si9n.com\/sbt-2.0.0-M3\">sbt 2.0.0-M3<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/com-lihaoyi\/mill\/releases\/tag\/0.12.4\">mill 0.12.4<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/scalameta\/metals\/releases\/tag\/v1.4.2\">metals 1.4.2 Palladium<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/scalatra\/scalatra\/releases\/tag\/v3.1.1\">scalatra 3.1.1<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/softwaremill\/sttp\/releases\/tag\/v4.0.0-M20\">sttp 4.0.0-M20<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/softwaremill\/tapir\/releases\/tag\/v1.11.11\">tapir 1.11.11<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/zio\/zio\/releases\/tag\/v2.1.14\">zio 2.1.14<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/disneystreaming\/smithy4s\/releases\/tag\/v0.18.27\">smithy4s 0.18.27<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/rcardin\/raise4s\/releases\/tag\/v0.4.0\">raise4s 0.4.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/JohnSnowLabs\/spark-nlp\/releases\/tag\/5.5.2\">spark-nlp 5.5.2<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/getkyo\/kyo\/releases\/tag\/v0.15.1\">kyo 0.15.1<\/a>.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0421\u0442\u0430\u0442\u044c\u0438<\/h2>\n<p>\u0414\u0435\u043b\u0438\u043c\u0441\u044f \u0441\u0432\u0435\u0436\u0438\u043c\u0438 \u0441\u0442\u0430\u0442\u044c\u044f\u043c\u0438, \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u043c\u0438 \u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438. \u0410 \u0435\u0449\u0435 \u043e\u0431\u043e\u0437\u0440\u0435\u0432\u0430\u0435\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0433\u0434\u0435 \u0430\u0432\u0442\u043e\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 Scala 3. Enjoy:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/scala-lang.org\/news\/3.6.2\">Scala 3.6.2 is now available!<\/a> \u2014 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f, \u0447\u0442\u043e \u0432\u044b\u043f\u0443\u0441\u043a 3.6.0 \u0431\u044b\u043b \u0441\u043b\u043e\u043c\u0430\u043d, \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c \u0441\u0430\u043c\u044b\u0439 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 \u0444\u0438\u0447\u0430\u043c\u0438 \u0432\u044b\u043f\u0443\u0441\u043a \u0421\u043a\u0430\u043b\u044b \u0441\u0435\u0440\u0438\u0438 3.6! \u0417\u0430\u0432\u0435\u0437\u043b\u0438 \u043c\u043d\u043e\u0433\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 SIP&#8217;\u043e\u0432, \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0430\u0440\u044b\u0435. \u041d\u0430\u0441 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0438\u043b\u0438 \u0444\u0438\u0447\u0438 \u0441 named tuple \u0438 for-comprehension, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0441 map&#8217;\u0430.\u00a0\u0412\u0441\u0435\u043c \u0441\u043e\u0432\u0435\u0442\u0443\u0435\u043c \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c, \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/10d\/742\/602\/10d742602de1e1e08e17721ae8cac654.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/10d\/742\/602\/10d742602de1e1e08e17721ae8cac654.jpg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\">\u041c\u0438\u0448\u0430<\/h5>\n<p>\u0411\u043e\u043b\u044c\u0448\u0435 \u0441\u0430\u0445\u0430\u0440\u0430 \u0411-\u0433\u0443 \u0441\u0430\u0445\u0430\u0440\u0430!<\/p>\n<\/div>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/864842\/\">\u0412\u044b\u0436\u0438\u043c\u0430\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0438\u0437 Scalafix<\/a> \u2014 \u043f\u0435\u0440\u0432\u0430\u044f \u043d\u0430 \u043d\u0430\u0448\u0435\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u043e scalafix. \u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043c.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/medium.com\/@a.e.ageev2001\/a-non-obvious-variance-question-you-might-encounter-in-a-scala-developer-interview-9bf33d707e22\">A Non-Obvious Variance Question You Might Encounter in a Scala Developer Interview<\/a> \u2014 \u0435\u0441\u043b\u0438 \u0432\u044b \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u0438, \u043d\u043e \u0432\u0430\u0448\u0438 \u0437\u043d\u0430\u043d\u0438\u044f \u043d\u0435 \u043e\u0442\u0448\u043b\u0438\u0444\u043e\u0432\u0430\u043d\u044b, \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u0438\u0445 \u043f\u043e \u043f\u043e\u043b\u043e\u0447\u043a\u0430\u043c.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.yannmoisan.com\/debugging-a-scala-compilation-issue.html\">Debugging a Scala Compilation Issue, a journey into Variance and LUB<\/a> \u2014 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0435 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043d\u0430\u043c \u0432\u0430\u0436\u043d\u043e, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u0441\u0432\u043e\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0442\u0438\u043f\u043e\u0432, \u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043f\u0440\u043e \u043a\u043e- \u0438 \u043a\u043e\u043d\u0442\u0440\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u044c. \u0410 \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u2014 \u0441\u043c. \u0441\u0442\u0430\u0442\u044c\u044e \u0432\u044b\u0448\u0435 (&gt;\u1d17\u2022)<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/day-to-day-stuff.blogspot.com\/2024\/12\/zio-kafka-faster-than-java-kafka.html\">Zio-kafka, faster than java-kafka<\/a> \u2014 \u043f\u043e\u043f\u0430\u0434\u0430\u044f\u0441\u044c \u043d\u0430 \u0431\u0430\u0439\u0442\u044f\u0449\u0438\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0432\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u0432 \u0434\u0435\u0442\u0430\u043b\u0438 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u043e\u0432. \u041f\u0440\u0438 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0435 \u0432\u0435\u0437\u0434\u0435, \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430, \u043d\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u0432\u0435\u0440\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/tanin.nanakorn.com\/a-succinct-early-exit-for-option-in-scala\/\">A succinct early exit trick for Option in Scala<\/a> \u2014 \u0434\u043e\u043b\u043e\u0439 \u0433\u0440\u044f\u0437\u043d\u044b\u0435 \u0445\u0430\u043a\u0438 \u043e\u0442 \u043c\u0438\u0440\u0430 \u0438\u043c\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u2734==\u2261\ub208\u0669(`\u76bf\u00b4\u0482)\u0e07<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/alvinalexander.com\/scala\/zio-2-scala-3--mysql-database-zio-http-server-application-simple-example\/\">ZIO: A ZIO 2 + Scala 3 + MySQL database + ZIO HTTP server example application<\/a> \u2014 <abbr class=\"habraabbr\" title=\"\u0448\u0430\u0431\u043b\u043e\u043d\" data-title=\"&lt;p&gt;\u0448\u0430\u0431\u043b\u043e\u043d&lt;\/p&gt;\" data-abbr=\"\u0440\u044b\u0431\u0430\">\u0440\u044b\u0431\u0430<\/abbr> \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u044b \u043d\u0430\u0448\u043b\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044f Mark Grechanik. \u0412 \u0441\u0432\u043e\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u0437\u0430 \u044d\u0442\u043e\u0442 \u043c\u0435\u0441\u044f\u0446 \u043e\u043d \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b \u0442\u0430\u043a\u0438\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0438 \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u044b\u0435 \u0442\u0435\u043c\u044b, \u043a\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/www.jvm-weekly.com\/p\/all-24-new-jeps-for-jdk-24-quantum\">All 24 new JEPs for JDK 24: Quantum-Resistant Cryptography, Garbage Collectors, and a lot of cleanups &#8212; JVM Weekly vol. 111<\/a> \u2014 \u0432 \u044d\u0442\u043e\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u043f\u043e\u043b\u043d\u043e JEP`\u043e\u0432, \u0438 \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0447\u0430\u0441\u0442\u044c JVM-\u043c\u0438\u0440\u0430, \u0441\u0447\u0438\u0442\u0430\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f JEP 404: Generational Shenandoah (Experimental), \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0430\u0443\u0437\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u0431\u043e\u0440\u043a\u0430\u043c\u0438 \u043c\u0443\u0441\u043e\u0440\u0430 \u043a\u043e\u0440\u043e\u0447\u0435, \u0447\u0442\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f low-latency-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>\u0411\u043b\u043e\u043a JEP`\u043e\u0432 \u0441 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u043e-\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0439 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0435\u0439. \u041c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u044b\u0439 \u0448\u0430\u0433 \u0432 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0435 JDK \u043a \u0431\u0443\u0434\u0443\u0449\u0438\u043c \u0443\u0433\u0440\u043e\u0437\u0430\u043c \u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.<\/p>\n<ul>\n<li>\n<p>JEP 478: Key Derivation Function API (Preview)<\/p>\n<\/li>\n<li>\n<p>JEP 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism<\/p>\n<\/li>\n<li>\n<p>JEP 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/09a\/db2\/bdd\/09adb2bdda2c67429a2ac60249b70d80.gif\" width=\"624\" height=\"480\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/09a\/db2\/bdd\/09adb2bdda2c67429a2ac60249b70d80.gif\"\/><\/figure>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"https:\/\/medium.com\/@markgrechanik\/from-functional-purity-to-flip-flopping-how-data-structures-and-politicians-both-embrace-712b93517c71\">From Functional Purity to Flip-Flopping: How Data Structures and Politicians Both Embrace Controlled Mutation<\/a> \u2014 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044f \u043c\u0443\u0442\u0430\u0446\u0438\u0438 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 FingerTrees, Persistent HAMT, Splay Trees. \u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043b\u044b\u0448\u0430\u043b\u0438, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 back-patching, \u043d\u043e \u043d\u0435 \u0432\u0438\u0434\u0435\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043d\u0430 Scala, \u0432\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/medium.com\/@markgrechanik\/mutations-gone-wild-how-dynamicvariable-keeps-the-chaos-contained-9b16818c5836\">Mutations Gone Wild: How DynamicVariable Keeps the Chaos Contained<\/a> \u2014 \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u043b \u043c\u043e\u0434\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u043f\u043e\u0434\u043d\u044f\u043b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0442\u0435\u043c, \u0443 \u043a\u043e\u0433\u043e \u0432 \u043a\u043e\u0434\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0438 \u0441\u043a\u043e\u0443\u043f\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/medium.com\/@markgrechanik\/genesis-in-scala-crafting-new-classes-as-children-of-some-existing-classes-or-how-to-create-your-c793c6a4c677\">Genesis in Scala: Crafting New Classes As Children of Some Existing Classes or, How to Create Your Own Adams and Eves in Code<\/a> \u2014 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0442\u0435\u043c\u044b \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0432 Runtime \u043d\u043e\u0432\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0444\u043e\u043a\u0443\u0441 \u043d\u0430 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0441\u0432\u044f\u0437\u0435\u0439.<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/4d4\/ff2\/e67\/4d4ff2e6740b7e14c256ed29fdd1c2bd.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4d4\/ff2\/e67\/4d4ff2e6740b7e14c256ed29fdd1c2bd.jpg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\">\u041c\u0438\u0448\u0430<\/h5>\n<p>\u042f \u0437\u0430 AOP \u0432\u0441\u0435\u043c\u0438 \u0440\u0443\u043a\u0430\u043c\u0438 \u0438 \u043d\u043e\u0433\u0430\u043c\u0438.<\/p>\n<\/div>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"https:\/\/medium.com\/@markgrechanik\/from-smls-exn-to-scalas-dynamic-shenanigans-wrangling-symbols-subtypes-and-fluid-exceptions-fc697f296a9c\">From SML\u2019s exn to Scala&#8217;s Dynamic Shenanigans: Wrangling Symbols, Subtypes, and Fluid Exceptions with Flair!<\/a> \u2014 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0438 \u043a\u0430\u043a\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0432 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0435.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/blog.daniel-beskin.com\/2024-12-02-purify-tests-4\">Purify Your Tests Episode IV: The Monoids Strike Back<\/a> \u2014 \u043e\u0442 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0435\u0441\u0442\u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043c \u043a \u041c\u043e\u043d\u043e\u0438\u0434\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0432\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0438\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u044b\u0439 \u043c\u0438\u0440 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u041d\u043e \u043c\u043d\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u043e\u0432 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043b\u0438\u0441\u044c:<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/f3f\/2f2\/e37\/f3f2f2e37ad19d3b3f26e603a5b764ee.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f3f\/2f2\/e37\/f3f2f2e37ad19d3b3f26e603a5b764ee.jpg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\">\u041c\u0438\u0448\u0430<\/h5>\n<p>\u041f\u043e\u0440\u043e\u0439 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0448\u044c \u043a \u0441\u043b\u043e\u0436\u043d\u044b\u043c \u0432\u0435\u0449\u0430\u043c \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0441\u0442\u044b\u0435. \u0410 \u0435\u0449\u0435 \u043e\u0442\u043a\u0440\u044b\u043b \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u044d\u0442\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u0440\u0430, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0441\u0435\u0431\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u0432 \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c (\u2661\u03bc_\u03bc)<\/p>\n<\/div>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/662\/5f0\/31a\/6625f031ae3f47ff678d99b542febfa0.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/662\/5f0\/31a\/6625f031ae3f47ff678d99b542febfa0.jpg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\">\u042d\u0432\u0435\u043b\u0438\u043d\u0430<\/h5>\n<p>\u0410 \u044f \u0434\u0443\u043c\u0430\u043b\u0430, \u0432\u0441\u0435 \u0432\u0441\u0451 \u0438 \u0442\u0430\u043a \u043f\u0438\u0448\u0443\u0442 \u0447\u0435\u0440\u0435\u0437 \u0442\u0440\u0435\u0439\u0442\u044b \u0438 \u043f\u043e\u043b\u0438\u043c\u043e\u0440\u0444\u0438\u0437\u043c.<\/p>\n<\/div>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e82\/79f\/0c3\/e8279f0c3d5d0cef9ebe3c6a793e9c76.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e82\/79f\/0c3\/e8279f0c3d5d0cef9ebe3c6a793e9c76.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041d\u0430\u0441\u0442\u044f<\/h5>\n<p>\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u044f \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043d\u0435 \u0443\u0437\u043d\u0430\u043b\u0430, \u043c\u044b \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0440\u043e\u0432\u043d\u043e \u0442\u0430\u043a \u0438 \u043f\u0438\u0448\u0435\u043c. \u041d\u043e \u043c\u043d\u0435 \u0438\u043c\u043f\u043e\u043d\u0438\u0440\u0443\u0435\u0442 \u0438\u0433\u0440\u043e\u0432\u0430\u044f \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u043f\u043e\u0434\u0430\u0447\u0430 \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430<\/p>\n<\/div>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"https:\/\/softwaremill.com\/scala-space-in-2025\/\">Scala Space in 2025<\/a> \u2014 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0446\u0438\u044f \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438\u0439 VirtusLab &amp; SoftwareMill \u0441 \u0438\u0445 \u043f\u043b\u0430\u043d\u0430\u043c\u0438 \u043f\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044e \u0442\u0443\u043b\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430 2025 \u0433\u043e\u0434.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/fpilluminated.com\/slideshow\/252\">Fibonacci Function Gallery &#8212; Part 1<\/a> \u2014 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u0431\u0430\u0437\u0435, \u0441\u043d\u043e\u0432\u0430 \u0442\u0440\u043e\u0433\u0430\u0435\u043c \u0424\u0438\u0431\u043e\u043d\u0430\u0447\u0447\u0438 \u043d\u0430 \u043f\u0443\u0442\u0438 \u043a \u041a\u043e\u0442\u0430\u043c \u0438 \u0442\u0440\u0430\u043c\u043f\u043e\u043b\u0430\u0439\u043d\u0430\u043c.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/softwaremill.com\/what-scala-has-to-offer-for-java-devs\/\">What Scala has to offer for Java devs<\/a> \u2014 Scala \u2014 \u044d\u0442\u043e \u0441\u044b\u043d \u043c\u0430\u043c\u0438\u043d\u043e\u0439 \u043f\u043e\u0434\u0440\u0443\u0433\u0438, \u0430 Java \u2014 \u044d\u0442\u043e \u0434\u0436\u0430\u0432\u0430&#8230; \u0421\u043f\u0438\u0441\u043e\u043a \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0445 \u043c\u0435\u043b\u043e\u0447\u0435\u0439 \u0438\u0437 Scala, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043b\u0438\u0448\u0435\u043d\u044b \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u044b.\u00a0<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/dc5\/4b4\/718\/dc54b47189e535f887e59cd56a7238d6.jpg\" width=\"428\" height=\"652\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dc5\/4b4\/718\/dc54b47189e535f887e59cd56a7238d6.jpg\" data-blurred=\"true\"\/><\/figure>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"https:\/\/virtuslab.com\/blog\/scala\/scala-bazel-akka-and-monorepos\/\">Scala, Bazel, Akka, and monorepos: A technical perspective of monorepo migration<\/a> \u2014 \u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Bazel \u0432 \u043c\u043e\u043d\u043e\u0440\u0435\u043f\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/tanin.nanakorn.com\/integrate-jobrunr-into-play-framework\/\">Integrate JobRunr into Play Framework<\/a> \u2014 \u0435\u0441\u043b\u0438 \u0432\u044b \u0432 25 \u0433\u043e\u0434\u0443 \u0432\u0441\u0451 \u0435\u0449\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 Play Framework, \u0432\u0430\u0441, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0444\u043e\u043d\u043e\u0432\u044b\u0445 \u0437\u0430\u0434\u0430\u0447, \u043a\u0430\u043a JobRunr.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/blog.rhetoricalmusings.com\/posts\/how-i-sbt7\/\">How I SBT &#8212; VII<\/a> \u2014 \u0437\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043e \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u044f\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f sbt.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.reddit.com\/r\/scala\/comments\/1hkgz9a\/scala_is_cool_and_works_well_with_java_21\/\">Scala is Cool and works well with Java 21<\/a> \u2014 \u0431\u043e\u0433\u0430\u0442\u044b\u0439 \u0430\u0437\u0438\u0430\u0442\u0441\u043a\u0438\u0439 taobao \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0441\u0435\u0431\u044f, \u043d\u0430\u0433\u043e\u0432\u043d\u043e\u043a\u043e\u0434\u0438\u0432 \u043d\u0430 Scala, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f pekko.\u00a0<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/629\/375\/564\/629375564f1de6903c62cf4eb6260f7e.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/629\/375\/564\/629375564f1de6903c62cf4eb6260f7e.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041d\u0430\u0441\u0442\u044f<\/h5>\n<p>\u0412\u0438\u0434\u0438\u043c\u043e, \u043d\u0430 Akka \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u0440\u0438\u0441\u0430.<\/p>\n<\/div>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"https:\/\/medium.com\/@w.pitula\/on-scala-tooling-stability-what-can-we-learn-from-a-small-drama-a48619e50f97\">On Scala Tooling &amp; Stability: What Can We Learn From a Small Drama?<\/a> \u2014 \u043c\u043d\u0435\u043d\u0438\u0435 \u043e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0435 Scala \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044f\u0433\u0438. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0439\u0442\u0435 \u0433\u0443\u0441\u044f, \u0435\u0441\u043b\u0438 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u044b.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/kubuszok.com\/2024\/modeling-in-scala-part-1\/\">Modeling in Scala, part 1: modeling your domain<\/a> \u2014 \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b, \u0432\u044b\u0434\u0430\u044e\u0449\u0438\u0439 \u0431\u0430\u0437\u0443 \u043f\u0440\u043e DDD \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 Scala 3.<\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>\u0410 \u0441\u044e\u0434\u0430 \u043c\u044b \u0441\u043f\u0440\u044f\u0442\u0430\u043b\u0438 \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439<\/summary>\n<div class=\"spoiler__content\">\n<ul>\n<li>\n<p><a href=\"https:\/\/tanin.nanakorn.com\/graalvm-and-chromedriver-in-a-docker-image-for-render-com\/\">GraalVM and ChromeDriver in a Docker image for Render.com<\/a> \u2014 \u0437\u0430\u043c\u0435\u0442\u043a\u0430 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u0435\u0442 \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/medium.com\/@markgrechanik\/when-exceptions-get-sneaky-dynamic-classes-vs-malicious-meddlers-in-scalaland-7b5442570e80\">When Exceptions Get Sneaky: Dynamic Classes vs. Malicious Meddlers in ScalaLand<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/rssh\/notes\/blob\/master\/2024_12_09_dependency-injection.md\">First, why is type-based injection better than name-based injection?<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/mill-build.org\/mill\/large\/selective-execution.html\">Selective Execution in mill<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<h2>\u0412\u0438\u0434\u0435\u043e \u0438 \u0434\u043e\u043a\u043b\u0430\u0434\u044b<\/h2>\n<p>\u0421\u043e\u0431\u0440\u0430\u043b\u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u043a\u0430\u043a \u043d\u0430 \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435, \u0442\u0430\u043a \u0438 \u043d\u0430 \u043d\u043e\u0443\u043d\u0435\u0439\u043c-\u043a\u0430\u043d\u0430\u043b\u044b \u0438 \u0432\u0438\u0434\u0435\u043e \u043f\u0440\u043e Scala:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=qj4e5NgndnU\">[ICFP24] Capabilities for Control<\/a> \u2014 \u043d\u043e\u0432\u043e\u0433\u043e\u0434\u043d\u0438\u0439 \u043f\u043e\u0434\u0430\u0440\u043e\u043a \u043e\u0442 \u041c\u0430\u0440\u0442\u0438\u043d\u0430 \u041e\u0434\u0435\u0440\u0441\u043a\u0438. \u041f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u043c\u0430 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c\u044e \u041c\u043e\u043d\u0430\u0434, \u0447\u0442\u043e \u043e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438. \u0410\u0432\u0442\u043e\u0440 \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 <a href=\"https:\/\/journal.stuffwithstuff.com\/2015\/02\/01\/what-color-is-your-function\/\">\u00ab\u041a\u0430\u043a\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430 \u0432\u0430\u0448\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f?\u00bb<\/a> \u0447\u0435\u0440\u0435\u0437 Capabilities.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/flatmappers.com\/episode033\/\">flatmappers033<\/a> \u2014 \u0440\u0435\u0431\u044f\u0442\u0430 \u0437\u0430\u0434\u0430\u043b\u0438\u0441\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c: \u0430 \u043a\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u0430 \u043d\u043e\u0432\u0430\u044f akka \u0438\u0437 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0438\u0433\u0440\u043e\u043a\u043e\u0432? \u0413\u0435\u0439\u043c\u0434\u0435\u0432? Tesla? \u0410 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c? \u0410 \u043c\u043e\u0436\u0435\u0442, Pekko? (\u00ac\u203f\u00ac )<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?app=desktop&amp;v=-8k3WfXVHkc&amp;ab_channel=ScalaSpace\">Scala Space Podcast: Modelling the Business Domain with Voytek Pitu\u0142a and Rapha\u00ebl Lemaitre<\/a> \u2014 \u0432\u0438\u0434\u0435\u043e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u044b\u0441\u0442\u0440\u043e\u0438\u0442\u044c DDD \u0432 Scala, \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u044f \u0441\u0432\u043e\u0439 \u0431\u0438\u0437\u043d\u0435\u0441-\u0434\u043e\u043c\u0435\u043d \u043e\u0442 case class`\u043e\u0432 \u0434\u043e High-kinder types, \u043a\u0430\u043a\u0438\u0435 \u043f\u043b\u044e\u0441\u044b \u0435\u0441\u0442\u044c \u0432 Scala3 \u0441 \u0435\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0442\u0438\u043f\u043e\u0432 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u0430\u043c \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c Pillars.<\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u044f \u0434\u043b\u044f \u0441\u043a\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u2014 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u043e \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438, \u044f\u0440\u043a\u0438\u0435 \u044d\u043c\u043e\u0446\u0438\u0438 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u044b. \u041c\u044b \u043f\u043e\u0441\u0435\u0442\u0438\u043b\u0438 <a href=\"https:\/\/www.youtube.com\/playlist?list=PLE3NDqTcKYOcF2p9EdmS1EjR1diDUAJaV\">F[Scala] 2024<\/a>, \u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043d\u0430\u043c \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u043b\u043e\u0441\u044c:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/youtu.be\/FQrRUPO4ZJY?si=jTcB_oWX5SUdg4JQ\">\u0410\u0445\u0442\u044f\u043c \u0421\u0430\u043a\u0430\u0435\u0432, \u0410\u0432\u0442\u043e.\u0440\u0443 | \u041f\u0440\u043e\u0446\u0435\u0441\u0441<\/a> \u2014 \u0438\u0437\u044f\u0449\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0438\u043c\u043e\u0432 \u0432 \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0441 \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u0441\u043f\u0438\u043a\u0435\u0440\u043e\u043c \u2014 \u0437\u0430\u043b\u043e\u0433 \u0443\u0441\u043f\u0435\u0445\u0430 \u0434\u043e\u043a\u043b\u0430\u0434\u0430!<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/youtu.be\/vRunKQSwgbI?si=dA1F4YhUqev3hHTG\">\u0414\u0435\u043d\u0438\u0441 \u0428\u0435\u0432\u0447\u0435\u043d\u043a\u043e, BIOCAD | \u0418\u0437\u043e\u043c\u043e\u0440\u0444\u0438\u0437\u043c \u041a\u0430\u0440\u0440\u0438-\u0413\u043e\u0432\u0430\u0440\u0434\u0430 \u0438 \u0412\u0441\u0435\u043b\u0435\u043d\u043d\u0430\u044f<\/a> \u2014 \u0443\u0432\u043b\u0435\u043a\u0430\u0435\u0442\u0435\u0441\u044c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u043e\u0439 \u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0448\u0430\u0433\u043d\u0443\u0442\u044c \u043a \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u043c\u0443 \u043c\u0438\u0440\u0443 \u0424\u041f? \u042d\u0442\u043e\u0442 \u0434\u043e\u043a\u043b\u0430\u0434 \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0432\u0430\u0441 \u0441 \u043c\u0430\u0441\u0442\u0435\u0440\u0441\u043a\u043e\u0439 \u043f\u043e\u0434\u0430\u0447\u0435\u0439 \u043e\u0442 \u0414\u0435\u043d\u0438\u0441\u0430!<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=ar5ooCuD2Fg\">\u0418\u0432\u0430\u043d \u041b\u044f\u0433\u0430\u0435\u0432, \u0422-\u0411\u0430\u043d\u043a | \u041f\u043e\u0441\u0442\u0430\u0432\u043a\u0430 http-\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438<\/a> \u2014 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0439, \u0430 OpenAPI \u0432 \u043f\u043b\u0430\u0447\u0435\u0432\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438? \u041e\u0434\u043d\u043e \u0438\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u2014 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0433\u0438\u0431\u043a\u0443\u044e, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443. \u0412 \u0434\u043e\u043a\u043b\u0430\u0434\u0435 \u0412\u0430\u043d\u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u0442 \u043f\u0440\u043e \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 T-Client.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=gSet5ZrKit4\">\u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0422\u0440\u043e\u0438\u0446\u043a\u0438\u0438\u0306, \u0422-\u0411\u0430\u043d\u043a | \u041f\u043e\u0434\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043e\u0442 \u0442\u0438\u043f\u043e\u0432: \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0442\u0438\u043f\u043e\u0432<\/a> \u2014 \u0434\u043e\u043a\u043b\u0430\u0434 \u2014\u00a0\u0444\u0430\u0432\u043e\u0440\u0438\u0442 \u041c\u0438\u0448\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0424\u041f-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0430\u0439\u0434\u0435\u0442 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043c\u044b\u0441\u043b\u0438 (\u272f\u25e1\u272f)\u00a0<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043b\u0435\u0434\u0438\u0442\u0435 \u0437\u0430 \u0430\u043d\u043e\u043d\u0441\u0430\u043c\u0438 \u0442\u0430\u043a\u0438\u0445 \u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u0439 \u0432 \u043d\u0430\u0448\u0435\u043c \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0435 \u0438 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0435 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437 \uff3c(\u2267\u25bd\u2266)\uff0f<\/p>\n<details class=\"spoiler\">\n<summary>\u0410 \u0441\u044e\u0434\u0430 \u043c\u044b \u0441\u043f\u0440\u044f\u0442\u0430\u043b\u0438 \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0432\u0438\u0434\u0435\u043e\u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432<\/summary>\n<div class=\"spoiler__content\">\n<ul>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/@scalaio\/videos\">\u041a\u0430\u043d\u0430\u043b ScalaIO FR<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=igarEERjUuQ\">Better Scala Builds with the Mill Build Tool, Functional Scala Online 2024<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/akka.io\/blog\/webinar-introducing-akka-3\">Webinar: introducing Akka 3<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=_oNOTknRTSU&amp;ab_channel=tretton37\">Eric Wastl \u2013 Advent of Code: Behind the Scenes<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=Y-0rFLSD9jw\">SoftMIL Predicting time to biochemical recurrence of prostate cancer based on WSI<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=G_rjI9PDMl8\">Anatomy of Scaladex &#8212; Functional World #13<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=SJxEXAkxD3I\">Welcome to Scala 2.7.7&#8230; in 2024<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=uROjY0GSCoc\">Decisions4s: Complicated Conditionals, Higher Kinded Data and Scala 3<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=cj3HFctzYm8\">IntelliJ IDEA x Scala &#8212; Get Started with Scala<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<h2>Tooling<\/h2>\n<p>\u041a\u0443\u0441\u043e\u0447\u0435\u043a \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u044b\u0445 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/www.zionomicon.com\/\">Zionomicon<\/a> \u2014 \u0432\u044b\u0448\u043b\u0430 \u0432 \u0440\u0435\u043b\u0438\u0437 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u0430\u044f \u043a\u043d\u0438\u0433\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e, \u043a\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0443 ZIO. \u0412\u0441\u0442\u0440\u0435\u0447\u0430\u0439\u0442\u0435 Zionomicon \u2014 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0445, \u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u0434\u043e ZIO 2.1.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/blog.jetbrains.com\/idea\/2024\/12\/getting-started-with-the-jetbrains-bazel-plugin\/\">Getting Started With the JetBrains Bazel Plugin<\/a> \u2014 \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043d\u0435 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0432\u0430\u0436\u043d\u044b\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442: JetBrains \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f Bazel, \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0445\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/iltotore.github.io\/iron\/docs\/reference\/constraint.html\">Iron Constraint<\/a> \u2014 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0446\u0435\u043d\u0438\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u044e \u0432 Scala 3.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/blog.jetbrains.com\/idea\/2024\/11\/advanced-code-analysis-in-intellij-idea\/\">Advanced Code Analysis in IntelliJ IDEA<\/a> \u2014 \u0435\u0441\u043b\u0438 \u0432\u044b \u0432\u0441\u0435 \u0435\u0449\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435\u0441\u044c \u0445\u043e\u0442\u043a\u0435\u044f\u043c\u0438, \u0432\u043e\u0442 \u0432\u0430\u043c \u0437\u043d\u0430\u043a, \u0447\u0442\u043e \u043f\u043e\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<h2>Highlights<\/h2>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0431\u043b\u043e\u043a\u0435 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0432\u0435\u0436\u0438\u0435, \u043d\u043e \u0437\u0430\u0446\u0435\u043f\u0438\u0432\u0448\u0438\u0435 \u043d\u0430\u0448 \u0432\u0437\u0433\u043b\u044f\u0434 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u043e\u0434 \u0444\u043b\u0430\u0433\u043e\u043c \u00ab\u043e\u0447\u0443\u043c\u0435\u043b\u044b\u0435 \u0440\u0443\u0447\u043a\u0438\u00bb. \u0410\u0432\u0442\u043e\u0440\u044b \u0442\u0432\u043e\u0440\u044f\u0442 \u0447\u0442\u043e-\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435, \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0435, \u043d\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/gabrieljones\/ScaLaMatrixRain?tab=readme-ov-file\">ScaLaMatrixRain<\/a> \u2014 \u043a\u0442\u043e-\u0442\u043e \u043f\u0435\u0440\u0435\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u00ab\u0413\u0430\u0440\u0440\u0438 \u041f\u043e\u0442\u0442\u0435\u0440\u0430\u00bb \u043f\u043e\u0434 \u041d\u043e\u0432\u044b\u0439 \u0433\u043e\u0434, \u043d\u043e \u043c\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0435\u043c \u00ab\u041c\u0430\u0442\u0440\u0438\u0446\u0443\u00bb. \u0416\u0430\u043b\u044c, \u0447\u0442\u043e \u0435\u0435 \u043d\u0435 \u043a\u0440\u0443\u0442\u044f\u0442 \u0432 \u043a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440\u0430\u0445, \u043d\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0443 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0430\u0441 \u0441\u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u00ab\u043c\u0430\u0442\u0440\u0438\u0446\u0443\u00bb \u0434\u043e\u043c\u0430.\u00a0<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/266\/144\/3ea\/2661443ea5088b56daa39a519c27ed54.png\" alt=\"\" title=\"\" width=\"486\" height=\"394\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/266\/144\/3ea\/2661443ea5088b56daa39a519c27ed54.png\"\/><\/figure>\n<\/li>\n<\/ul>\n<h2>\u041a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438-\u0434\u0432\u0438\u0436<\/h2>\n<p>\u0420\u0430\u0437\u0434\u0435\u043b \u043a\u0443\u0440\u044c\u0435\u0437\u043d\u044b\u0445 \u0438 \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432 \u043c\u0438\u0440\u0435 Scala-\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430. \u041c\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0431\u044b \u0432\u0438\u0434\u0435\u0442\u044c \u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u043c \u0438 \u0436\u0438\u0432\u044b\u043c. \u0415\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0438\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u0436\u0434\u0435\u043c \u0432\u0430\u0441 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/blog.jetbrains.com\/scala\/2024\/12\/20\/the-intellij-scala-plugin-in-2024\/\">The IntelliJ Scala Plugin in 2024<\/a> \u2014 JetBrains \u043f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c \u043e\u043f\u0440\u043e\u0441\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0432 2024 \u0433\u043e\u0434\u0443 \u043f\u043e\u0434\u0432\u0435\u043b\u0438 \u0438\u0442\u043e\u0433\u0438 \u0433\u043e\u0434\u0430 \u043f\u043e Scala. \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u0430 <a href=\"https:\/\/www.jetbrains.com\/lp\/devecosystem-2024\">\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u043a\u0430<\/a> \u043f\u043e \u0432\u0441\u0435\u043c \u044f\u0437\u044b\u043a\u0430\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f60\/b5e\/3b1\/f60b5e3b112719be8626676fa98c41be.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f60\/b5e\/3b1\/f60b5e3b112719be8626676fa98c41be.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041d\u0430\u0441\u0442\u044f<\/h5>\n<p>\u0418\u0437 \u0437\u0430\u0446\u0435\u043f\u0438\u0432\u0448\u0435\u0433\u043e \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434: \u0432 \u042e\u0436\u043d\u043e\u0439 \u041a\u043e\u0440\u0435\u0435 \u0430\u0436 15% \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u2014 \u0436\u0435\u043d\u0449\u0438\u043d\u044b. <\/p>\n<\/div>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a7f\/905\/bd7\/a7f905bd76fb5e21626abcc182248de6.png\" alt=\"\u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u0441\u043a\u0430\u043b\u0438\u0441\u0442 \u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e JetBrains\" title=\"\u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u0441\u043a\u0430\u043b\u0438\u0441\u0442 \u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e JetBrains\" width=\"555\" height=\"636\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a7f\/905\/bd7\/a7f905bd76fb5e21626abcc182248de6.png\"\/><\/p>\n<div><figcaption>\u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u0441\u043a\u0430\u043b\u0438\u0441\u0442 \u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e JetBrains<\/figcaption><\/div>\n<\/figure>\n<\/li>\n<li>\n<p><a href=\"https:\/\/alexn.org\/blog\/2024\/11\/20\/join-the-open-web\/\">Join the Open Web<\/a> \u2014 \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u043d\u0430 \u043f\u0443\u0442\u0438 \u0441\u0432\u043e\u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043a \u043c\u044b\u0441\u043b\u0438 \u043e \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u0433\u0438\u0433\u0438\u0435\u043d\u0435.<\/p>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/291\/0e8\/e6c\/2910e8e6ca5ad77ffb6dc3a6fb2a9d1a.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/291\/0e8\/e6c\/2910e8e6ca5ad77ffb6dc3a6fb2a9d1a.jpg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\">\u041c\u0438\u0448\u0430<\/h5>\n<p>\u041f\u043e\u0441\u043b\u0435 GPT-\u0431\u0443\u043c\u0430 \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e\u0435, \u0432\u044b\u0431\u043e\u0440\u043e\u0447\u043d\u043e\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u2014 \u044d\u0442\u043e \u043e\u0441\u0442\u0440\u0430\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u0438 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430! <\/p>\n<\/div>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9f0\/a4f\/a17\/9f0a4fa17490a5797bb20f6f770ef8ce.png\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9f0\/a4f\/a17\/9f0a4fa17490a5797bb20f6f770ef8ce.png\"\/><\/p>\n<h5 class=\"persona__heading\">\u041d\u0430\u0441\u0442\u044f<\/h5>\n<p>\u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0430 \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0431\u043b\u043e\u0433\u043e\u0432 \u043e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u0441\u0432\u043e\u0435\u0433\u043e \u0434\u0435\u043b\u0430, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438\u0437\u044b\u0432\u044b \u043a \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u043c\u0443 \u043c\u0435\u043d\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0434\u0443\u044e\u0442. (\u2500\u203f\u203f\u2500)<\/p>\n<\/div>\n<div class=\"persona\"><img decoding=\"async\" class=\"image persona__image\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/d3e\/126\/55a\/d3e12655a41a0a8d2ddf699a5b61b9ca.jpg\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d3e\/126\/55a\/d3e12655a41a0a8d2ddf699a5b61b9ca.jpg\" data-blurred=\"true\"\/><\/p>\n<h5 class=\"persona__heading\">\u042d\u0432\u0435\u043b\u0438\u043d\u0430<\/h5>\n<p>\u041d\u0435\u043b\u044c\u0437\u044f \u043d\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0442\u044c\u0441\u044f \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0438\u0434\u0435\u044f\u043c\u0438, \u043d\u043e \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0441\u043e\u0446\u0441\u0435\u0442\u0435\u0439, \u0442. \u043a. \u043e\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e.<\/p>\n<\/div>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"https:\/\/eed3si9n.com\/december-adventure-2024\/\">december adventure 2024<\/a> \u2014 \u0437\u0430\u043c\u0435\u0442\u043a\u0438, \u0442\u0438\u043f\u0438\u0447\u043d\u0430\u044f \u0436\u0438\u0437\u043d\u044c \u0441\u043a\u0430\u043b\u0438\u0441\u0442\u0430: \u0443\u0442\u0440\u043e\u043c \u043f\u043e\u043a\u0430\u0442\u0430\u043b\u0441\u044f \u043d\u0430 \u043a\u043e\u043d\u044c\u043a\u0430\u0445, \u0432\u0435\u0447\u0435\u0440\u043e\u043c \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043b SIP. \u0410 \u043a\u0430\u043a \u0443 \u0432\u0430\u0441 \u043f\u0440\u043e\u0448\u0435\u043b \u0434\u0435\u043a\u0430\u0431\u0440\u044c? (=^ \u25e1 ^=)<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/scalacenter.github.io\/scala-advent-of-code\/2024\/\">Scala Advent of Code 2024<\/a> \u2014 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0440\u0435\u0448\u0435\u043d\u0438\u0439 Advent of Code 2024 \u043d\u0430 Scala.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/console.algora.io\/org\/softwaremill\/bounties?status=open\">Bounties SoftwareMill<\/a> \u2014 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u043d\u044c\u0433\u0438 \u0437\u0430 \u043a\u043e\u0434\u0438\u043d\u0433 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441-\u0437\u0430\u0434\u0430\u0447 \u0440\u0430\u0437\u0434\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e <a href=\"https:\/\/github.com\/orgs\/com-lihaoyi\/discussions\/6\">lihaoyi<\/a>, \u043d\u043e \u0438 \u0446\u0435\u043b\u044b\u0439 SoftwareMill.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.scala-lang.org\/blog\/2024\/12\/16\/scala-2-maintenance.html\">Scala 2 maintenance plans<\/a> \u2014 Scala 2.13 \u0436\u0438\u043b, \u0436\u0438\u0432 \u0438 \u0431\u0443\u0434\u0435\u0442 \u0436\u0438\u0442\u044c.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/410\/633\/ce0\/410633ce042cf26722a16f8a4473ebea.png\" width=\"1280\" height=\"1024\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/410\/633\/ce0\/410633ce042cf26722a16f8a4473ebea.png\"\/><\/figure>\n<\/li>\n<\/ul>\n<p>\u0414\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0433\u043e\u0434\u0443! \u2661\uff3c(\uffe3\u25bd\uffe3)\uff0f\u2661<\/p>\n<p>\u041d\u0430\u0434 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 @Melkaya_150cm, @EvieLynn, @haskiindahouse. \u0412\u0430\u0448\u0438 \u0438\u0434\u0435\u0438, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c \u0441 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u0435\u043c \u0436\u0434\u0435\u043c \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445! &lt;(\uffe3\ufe36\uffe3)&gt;<\/p>\n<p>\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0438:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/790650\/\">Scala Digest #13<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/797411\/\">Scala Digest #14<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/804491\/\">Scala Digest #15<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/811047\/\">Scala Digest #16<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/819131\/\">Scala Digest #17<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/825906\/\">Scala Digest #18<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/833394\/\">Scala Digest #19<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/839846\/\">Scala Digest #20<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/847174\/\">Scala Digest #21<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/855240\/\">Scala Digest #22<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tbank\/articles\/862936\/\">Scala Digest #23<\/a><\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>\u0412\u044b\u043f\u0443\u0441\u043a\u0438 \u0437\u0430 2023 \u0433\u043e\u0434<\/summary>\n<div class=\"spoiler__content\">\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/company\/tinkoff\/articles\/715604\/\">Scala Digest #1<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/719926\/\">Scala Digest #2<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/726530\/\">Scala Digest #3<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/732306\/\">Scala Digest #4<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/739162\/\">Scala Digest #5<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/745214\/\">Scala Digest #6<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/751728\/\">Scala Digest #7<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/758224\/\">Scala Digest #8<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/764768\/\">Scala Digest #9<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/770964\/\">Scala Digest #10<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/777884\/\">Scala Digest #11<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/tinkoff\/articles\/7840444\/\">Scala Digest #12<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\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\/870380\/\"> https:\/\/habr.com\/ru\/articles\/870380\/<\/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\"><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041c\u044b \u2014 <a href=\"https:\/\/habr.com\/ru\/users\/Melkaya_150cm\/\">\u041d\u0430\u0441\u0442\u044f<\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/users\/EvieLynn\/\">\u042d\u0432\u0435\u043b\u0438\u043d\u0430<\/a> \u2014 \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c \u0441\u0432\u0435\u0436\u0443\u044e \u043a\u0440\u043e\u0432\u044c \u0432 \u043d\u0430\u0448\u0435\u0439 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043d\u043e \u0443\u044e\u0442\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u0435! <a href=\"https:\/\/habr.com\/ru\/users\/haskiindahouse\/\">\u041c\u0438\u0448\u0430<\/a> \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043b\u0441\u044f \u043a \u043d\u0430\u043c \u043c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434 \u0441 \u0433\u043e\u0440\u044f\u0449\u0438\u043c\u0438 \u0433\u043b\u0430\u0437\u0430\u043c\u0438 \u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0435\u043c \u0440\u0430\u0441\u043a\u043e\u043f\u0430\u0442\u044c \u0438 \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u043d\u0430 \u0441\u0432\u0435\u0442 \u043a\u0430\u0436\u0434\u0443\u044e \u0434\u0440\u0430\u0433\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u0443\u043d\u0446\u0438\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438 \u043d\u043e\u0432\u043e\u0441\u0442\u0435\u0439 \u0438\u0437 Scala-\u043c\u0438\u0440\u0430.<\/p>\n<p>\u041c\u044b \u0440\u0430\u0434\u044b \u0432\u0438\u0434\u0435\u0442\u044c \u043d\u043e\u0432\u043e\u0433\u043e \u0431\u043e\u0439\u0446\u0430 \u0432 \u043d\u0430\u0448\u0438\u0445 \u0440\u044f\u0434\u0430\u0445 \u0438 \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0441\u043c\u043e\u0436\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u0435\u0449\u0435 \u043b\u0443\u0447\u0448\u0435. \u0410 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 <a href=\"https:\/\/polls.tinkoff.ru\/s\/clqqit42h01nr01kfb8d8198y\">\u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c\u0438<\/a> \u2014 \u043c\u044b \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c \u0438\u0445 \u0438 \u0441\u043a\u0430\u0436\u0435\u043c \u0432\u0430\u043c \u0441\u043f\u0430\u0441\u0438\u0431\u043e (\u3065 \u25d5\u203f\u25d5 )\u3065<\/p>\n<p>\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448\u0438\u0445 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u0441 \u041d\u0430\u0441\u0442\u0443\u043f\u0430\u044e\u0449\u0438\u043c \u043d\u043e\u0432\u044b\u043c \u0433\u043e\u0434\u043e\u043c \u0438 \u0436\u0435\u043b\u0430\u0435\u043c, \u0447\u0442\u043e\u0431\u044b Scala \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u043b\u0430 \u0435\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u044f!<\/p>\n<h2>\u0420\u0435\u043b\u0438\u0437\u044b<\/h2>\n<p>\u0421\u043e\u0431\u0440\u0430\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0437\u0430 \u043f\u0430\u0440\u0443 \u043c\u0435\u0441\u044f\u0446\u0435\u0432:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/blog.jetbrains.com\/scala\/2024\/12\/05\/intellij-scala-plugin-2024-3-is-out-2\/\">IntelliJ Scala Plugin 2024.3.20 Is Out!<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/scala\/scala3\/releases\/tag\/3.6.3-RC1\">scala 3.6.3-RC1<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/eed3si9n.com\/sbt-1.10.7\">sbt 1.10.7<\/a> \u0438 <a href=\"https:\/\/eed3si9n.com\/sbt-1.10.6\">sbt 1.10.6<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/eed3si9n.com\/sbt-2.0.0-M3\">sbt 2.0.0-M3<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/com-lihaoyi\/mill\/releases\/tag\/0.12.4\">mill 0.12.4<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/scalameta\/metals\/releases\/tag\/v1.4.2\">metals 1.4.2 Palladium<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/scalatra\/scalatra\/releases\/tag\/v3.1.1\">scalatra 3.1.1<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/softwaremill\/sttp\/releases\/tag\/v4.0.0-M20\">sttp 4.0.0-M20<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/softwaremill\/tapir\/releases\/tag\/v1.11.11\">tapir 1.11.11<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/zio\/zio\/releases\/tag\/v2.1.14\">zio 2.1.14<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/disneystreaming\/smithy4s\/releases\/tag\/v0.18.27\">smithy4s 0.18.27<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/rcardin\/raise4s\/releases\/tag\/v0.4.0\">raise4s 0.4.0<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/JohnSnowLabs\/spark-nlp\/releases\/tag\/5.5.2\">spark-nlp 5.5.2<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/getkyo\/kyo\/releases\/tag\/v0.15.1\">kyo 0.15.1<\/a>.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0421\u0442\u0430\u0442\u044c\u0438<\/h2>\n<p>\u0414\u0435\u043b\u0438\u043c\u0441\u044f \u0441\u0432\u0435\u0436\u0438\u043c\u0438 \u0441\u0442\u0430\u0442\u044c\u044f\u043c\u0438, \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u043c\u0438 \u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c\u0438. \u0410 \u0435\u0449\u0435 \u043e\u0431\u043e\u0437\u0440\u0435\u0432\u0430\u0435\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0433\u0434\u0435 \u0430\u0432\u0442\u043e\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 Scala 3. Enjoy:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/scala-lang.org\/news\/3.6.2\">Scala 3.6.2 is now available!<\/a> \u2014 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f, \u0447\u0442\u043e \u0432\u044b\u043f\u0443\u0441\u043a 3.6.0 \u0431\u044b\u043b \u0441\u043b\u043e\u043c\u0430\u043d, \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c \u0441\u0430\u043c\u044b\u0439 \u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 \u0444\u0438\u0447\u0430\u043c\u0438 \u0432\u044b\u043f\u0443\u0441\u043a \u0421\u043a\u0430\u043b\u044b \u0441\u0435\u0440\u0438\u0438 3.6! \u0417\u0430\u0432\u0435\u0437\u043b\u0438 \u043c\u043d\u043e\u0433\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 SIP&#8217;\u043e\u0432, \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0430\u0440\u044b\u0435. \u041d\u0430\u0441 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0438\u043b\u0438 \u0444\u0438\u0447\u0438 \u0441 named tuple \u0438 for-comprehension, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0441 map&#8217;\u0430.\u00a0\u0412\u0441\u0435\u043c \u0441\u043e\u0432\u0435\u0442\u0443\u0435\u043c \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c, \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041c\u0438\u0448\u0430<\/h5>\n<p>\u0411\u043e\u043b\u044c\u0448\u0435 \u0441\u0430\u0445\u0430\u0440\u0430 \u0411-\u0433\u0443 \u0441\u0430\u0445\u0430\u0440\u0430!<\/p>\n<\/div>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/articles\/864842\/\">\u0412\u044b\u0436\u0438\u043c\u0430\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0438\u0437 Scalafix<\/a> \u2014 \u043f\u0435\u0440\u0432\u0430\u044f \u043d\u0430 \u043d\u0430\u0448\u0435\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u043c \u043e scalafix. \u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043c.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/medium.com\/@a.e.ageev2001\/a-non-obvious-variance-question-you-might-encounter-in-a-scala-developer-interview-9bf33d707e22\">A Non-Obvious Variance Question You Might Encounter in a Scala Developer Interview<\/a> \u2014 \u0435\u0441\u043b\u0438 \u0432\u044b \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u0438, \u043d\u043e \u0432\u0430\u0448\u0438 \u0437\u043d\u0430\u043d\u0438\u044f \u043d\u0435 \u043e\u0442\u0448\u043b\u0438\u0444\u043e\u0432\u0430\u043d\u044b, \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u0438\u0445 \u043f\u043e \u043f\u043e\u043b\u043e\u0447\u043a\u0430\u043c.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.yannmoisan.com\/debugging-a-scala-compilation-issue.html\">Debugging a Scala Compilation Issue, a journey into Variance and LUB<\/a> \u2014 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0435 \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043d\u0430\u043c \u0432\u0430\u0436\u043d\u043e, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u044f \u0441\u0432\u043e\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0442\u0438\u043f\u043e\u0432, \u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043f\u0440\u043e \u043a\u043e- \u0438 \u043a\u043e\u043d\u0442\u0440\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u044c. \u0410 \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u2014 \u0441\u043c. \u0441\u0442\u0430\u0442\u044c\u044e \u0432\u044b\u0448\u0435 (&gt;\u1d17\u2022)<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/day-to-day-stuff.blogspot.com\/2024\/12\/zio-kafka-faster-than-java-kafka.html\">Zio-kafka, faster than java-kafka<\/a> \u2014 \u043f\u043e\u043f\u0430\u0434\u0430\u044f\u0441\u044c \u043d\u0430 \u0431\u0430\u0439\u0442\u044f\u0449\u0438\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a, \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0432\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u0432 \u0434\u0435\u0442\u0430\u043b\u0438 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u043e\u0432. \u041f\u0440\u0438 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0435 \u0432\u0435\u0437\u0434\u0435, \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430, \u043d\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u0432\u0435\u0440\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/tanin.nanakorn.com\/a-succinct-early-exit-for-option-in-scala\/\">A succinct early exit trick for Option in Scala<\/a> \u2014 \u0434\u043e\u043b\u043e\u0439 \u0433\u0440\u044f\u0437\u043d\u044b\u0435 \u0445\u0430\u043a\u0438 \u043e\u0442 \u043c\u0438\u0440\u0430 \u0438\u043c\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u2734==\u2261\ub208\u0669(`\u76bf\u00b4\u0482)\u0e07<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/alvinalexander.com\/scala\/zio-2-scala-3--mysql-database-zio-http-server-application-simple-example\/\">ZIO: A ZIO 2 + Scala 3 + MySQL database + ZIO HTTP server example application<\/a> \u2014 <abbr class=\"habraabbr\" title=\"\u0448\u0430\u0431\u043b\u043e\u043d\" data-title=\"&lt;p&gt;\u0448\u0430\u0431\u043b\u043e\u043d&lt;\/p&gt;\" data-abbr=\"\u0440\u044b\u0431\u0430\">abbr=&#187;\u0440\u044b\u0431\u0430&#187;>\u0440\u044b\u0431\u0430<\/abbr> \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u044b \u043d\u0430\u0448\u043b\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044f Mark Grechanik. \u0412 \u0441\u0432\u043e\u0438\u0445 \u0441\u0442\u0430\u0442\u044c\u044f\u0445 \u0437\u0430 \u044d\u0442\u043e\u0442 \u043c\u0435\u0441\u044f\u0446 \u043e\u043d \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b \u0442\u0430\u043a\u0438\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0438 \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u044b\u0435 \u0442\u0435\u043c\u044b, \u043a\u0430\u043a:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/www.jvm-weekly.com\/p\/all-24-new-jeps-for-jdk-24-quantum\">All 24 new JEPs for JDK 24: Quantum-Resistant Cryptography, Garbage Collectors, and a lot of cleanups &#8212; JVM Weekly vol. 111<\/a> \u2014 \u0432 \u044d\u0442\u043e\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u043f\u043e\u043b\u043d\u043e JEP`\u043e\u0432, \u0438 \u0442\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0447\u0430\u0441\u0442\u044c JVM-\u043c\u0438\u0440\u0430, \u0441\u0447\u0438\u0442\u0430\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f JEP 404: Generational Shenandoah (Experimental), \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0430\u0443\u0437\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u0431\u043e\u0440\u043a\u0430\u043c\u0438 \u043c\u0443\u0441\u043e\u0440\u0430 \u043a\u043e\u0440\u043e\u0447\u0435, \u0447\u0442\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f low-latency-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>\u0411\u043b\u043e\u043a JEP`\u043e\u0432 \u0441 \u043a\u0432\u0430\u043d\u0442\u043e\u0432\u043e-\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0439 \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0435\u0439. \u041c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u044b\u0439 \u0448\u0430\u0433 \u0432 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0435 JDK \u043a \u0431\u0443\u0434\u0443\u0449\u0438\u043c \u0443\u0433\u0440\u043e\u0437\u0430\u043c \u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.<\/p>\n<ul>\n<li>\n<p>JEP 478: Key Derivation Function API (Preview)<\/p>\n<\/li>\n<li>\n<p>JEP 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism<\/p>\n<\/li>\n<li>\n<p>JEP 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><\/figure>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"https:\/\/medium.com\/@markgrechanik\/from-functional-purity-to-flip-flopping-how-data-structures-and-politicians-both-embrace-712b93517c71\">From Functional Purity to Flip-Flopping: How Data Structures and Politicians Both Embrace Controlled Mutation<\/a> \u2014 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044f \u043c\u0443\u0442\u0430\u0446\u0438\u0438 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 FingerTrees, Persistent HAMT, Splay Trees. \u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043b\u044b\u0448\u0430\u043b\u0438, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 back-patching, \u043d\u043e \u043d\u0435 \u0432\u0438\u0434\u0435\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043d\u0430 Scala, \u0432\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/medium.com\/@markgrechanik\/mutations-gone-wild-how-dynamicvariable-keeps-the-chaos-contained-9b16818c5836\">Mutations Gone Wild: How DynamicVariable Keeps the Chaos Contained<\/a> \u2014 \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u043b \u043c\u043e\u0434\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u043f\u043e\u0434\u043d\u044f\u043b \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0442\u0435\u043c, \u0443 \u043a\u043e\u0433\u043e \u0432 \u043a\u043e\u0434\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0438 \u0441\u043a\u043e\u0443\u043f\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/medium.com\/@markgrechanik\/genesis-in-scala-crafting-new-classes-as-children-of-some-existing-classes-or-how-to-create-your-c793c6a4c677\">Genesis in Scala: Crafting New Classes As Children of Some Existing Classes or, How to Create Your Own Adams and Eves in Code<\/a> \u2014 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0442\u0435\u043c\u044b \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0432 Runtime \u043d\u043e\u0432\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b. \u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0444\u043e\u043a\u0443\u0441 \u043d\u0430 \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0441\u0432\u044f\u0437\u0435\u0439.<\/p>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041c\u0438\u0448\u0430<\/h5>\n<p>\u042f \u0437\u0430 AOP \u0432\u0441\u0435\u043c\u0438 \u0440\u0443\u043a\u0430\u043c\u0438 \u0438 \u043d\u043e\u0433\u0430\u043c\u0438.<\/p>\n<\/div>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"https:\/\/medium.com\/@markgrechanik\/from-smls-exn-to-scalas-dynamic-shenanigans-wrangling-symbols-subtypes-and-fluid-exceptions-fc697f296a9c\">From SML\u2019s exn to Scala&#8217;s Dynamic Shenanigans: Wrangling Symbols, Subtypes, and Fluid Exceptions with Flair!<\/a> \u2014 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u043e \u0442\u043e, \u043a\u0430\u043a \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0438 \u043a\u0430\u043a\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0441\u0442\u0438\u0447\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0432 \u0440\u0430\u043d\u0442\u0430\u0439\u043c\u0435.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/blog.daniel-beskin.com\/2024-12-02-purify-tests-4\">Purify Your Tests Episode IV: The Monoids Strike Back<\/a> \u2014 \u043e\u0442 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0435\u0441\u0442\u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043c \u043a \u041c\u043e\u043d\u043e\u0438\u0434\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0432\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0438\u0437\u043c\u0435\u043d\u0447\u0438\u0432\u044b\u0439 \u043c\u0438\u0440 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u041d\u043e \u043c\u043d\u0435\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u0440\u043e\u0432 \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043b\u0438\u0441\u044c:<\/p>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041c\u0438\u0448\u0430<\/h5>\n<p>\u041f\u043e\u0440\u043e\u0439 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0448\u044c \u043a \u0441\u043b\u043e\u0436\u043d\u044b\u043c \u0432\u0435\u0449\u0430\u043c \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0441\u0442\u044b\u0435. \u0410 \u0435\u0449\u0435 \u043e\u0442\u043a\u0440\u044b\u043b \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u044d\u0442\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u0440\u0430, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u0441\u0435\u0431\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u0435\u0439 \u0432 \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c (\u2661\u03bc_\u03bc)<\/p>\n<\/div>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u042d\u0432\u0435\u043b\u0438\u043d\u0430<\/h5>\n<p>\u0410 \u044f \u0434\u0443\u043c\u0430\u043b\u0430, \u0432\u0441\u0435 \u0432\u0441\u0451 \u0438 \u0442\u0430\u043a \u043f\u0438\u0448\u0443\u0442 \u0447\u0435\u0440\u0435\u0437 \u0442\u0440\u0435\u0439\u0442\u044b \u0438 \u043f\u043e\u043b\u0438\u043c\u043e\u0440\u0444\u0438\u0437\u043c.<\/p>\n<\/div>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041d\u0430\u0441\u0442\u044f<\/h5>\n<p>\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u044f \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u043d\u0435 \u0443\u0437\u043d\u0430\u043b\u0430, \u043c\u044b \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0440\u043e\u0432\u043d\u043e \u0442\u0430\u043a \u0438 \u043f\u0438\u0448\u0435\u043c. \u041d\u043e \u043c\u043d\u0435 \u0438\u043c\u043f\u043e\u043d\u0438\u0440\u0443\u0435\u0442 \u0438\u0433\u0440\u043e\u0432\u0430\u044f \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u043f\u043e\u0434\u0430\u0447\u0430 \u0430\u0432\u0442\u043e\u0440\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430<\/p>\n<\/div>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"https:\/\/softwaremill.com\/scala-space-in-2025\/\">Scala Space in 2025<\/a> \u2014 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0446\u0438\u044f \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438\u0439 VirtusLab &amp; SoftwareMill \u0441 \u0438\u0445 \u043f\u043b\u0430\u043d\u0430\u043c\u0438 \u043f\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044e \u0442\u0443\u043b\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430 2025 \u0433\u043e\u0434.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/fpilluminated.com\/slideshow\/252\">Fibonacci Function Gallery &#8212; Part 1<\/a> \u2014 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u0431\u0430\u0437\u0435, \u0441\u043d\u043e\u0432\u0430 \u0442\u0440\u043e\u0433\u0430\u0435\u043c \u0424\u0438\u0431\u043e\u043d\u0430\u0447\u0447\u0438 \u043d\u0430 \u043f\u0443\u0442\u0438 \u043a \u041a\u043e\u0442\u0430\u043c \u0438 \u0442\u0440\u0430\u043c\u043f\u043e\u043b\u0430\u0439\u043d\u0430\u043c.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/softwaremill.com\/what-scala-has-to-offer-for-java-devs\/\">What Scala has to offer for Java devs<\/a> \u2014 Scala \u2014 \u044d\u0442\u043e \u0441\u044b\u043d \u043c\u0430\u043c\u0438\u043d\u043e\u0439 \u043f\u043e\u0434\u0440\u0443\u0433\u0438, \u0430 Java \u2014 \u044d\u0442\u043e \u0434\u0436\u0430\u0432\u0430&#8230; \u0421\u043f\u0438\u0441\u043e\u043a \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0445 \u043c\u0435\u043b\u043e\u0447\u0435\u0439 \u0438\u0437 Scala, \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043b\u0438\u0448\u0435\u043d\u044b \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u044b.\u00a0<\/p>\n<figure class=\"\"><\/figure>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"https:\/\/virtuslab.com\/blog\/scala\/scala-bazel-akka-and-monorepos\/\">Scala, Bazel, Akka, and monorepos: A technical perspective of monorepo migration<\/a> \u2014 \u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Bazel \u0432 \u043c\u043e\u043d\u043e\u0440\u0435\u043f\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/tanin.nanakorn.com\/integrate-jobrunr-into-play-framework\/\">Integrate JobRunr into Play Framework<\/a> \u2014 \u0435\u0441\u043b\u0438 \u0432\u044b \u0432 25 \u0433\u043e\u0434\u0443 \u0432\u0441\u0451 \u0435\u0449\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 Play Framework, \u0432\u0430\u0441, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0444\u043e\u043d\u043e\u0432\u044b\u0445 \u0437\u0430\u0434\u0430\u0447, \u043a\u0430\u043a JobRunr.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/blog.rhetoricalmusings.com\/posts\/how-i-sbt7\/\">How I SBT &#8212; VII<\/a> \u2014 \u0437\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043e \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u044f\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f sbt.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.reddit.com\/r\/scala\/comments\/1hkgz9a\/scala_is_cool_and_works_well_with_java_21\/\">Scala is Cool and works well with Java 21<\/a> \u2014 \u0431\u043e\u0433\u0430\u0442\u044b\u0439 \u0430\u0437\u0438\u0430\u0442\u0441\u043a\u0438\u0439 taobao \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0441\u0435\u0431\u044f, \u043d\u0430\u0433\u043e\u0432\u043d\u043e\u043a\u043e\u0434\u0438\u0432 \u043d\u0430 Scala, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f pekko.\u00a0<\/p>\n<div class=\"persona\">\n<h5 class=\"persona__heading\">\u041d\u0430\u0441\u0442\u044f<\/h5>\n<p>\u0412\u0438\u0434\u0438\u043c\u043e, \u043d\u0430 Akka \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u0440\u0438\u0441\u0430.<\/p>\n<\/div>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"https:\/\/medium.com\/@w.pitula\/on-scala-tooling-stability-what-can-we-learn-from-a-small-drama-a48619e50f97\">On Scala Tooling &amp; Stability: What Can We Learn From a Small Drama?<\/a> \u2014 \u043c\u043d\u0435\u043d\u0438\u0435 \u043e \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0435 Scala \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044f\u0433\u0438. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0439\u0442\u0435 \u0433\u0443\u0441\u044f, \u0435\u0441\u043b\u0438 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u044b.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/kubuszok.com\/2024\/modeling-in-scala-part-1\/\">Modeling in Scala, part 1: modeling your domain<\/a> \u2014 \u043e\u0431\u044a\u0435\u043c\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b, \u0432\u044b\u0434\u0430\u044e\u0449\u0438\u0439 \u0431\u0430\u0437\u0443 \u043f\u0440\u043e DDD \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 Scala 3.<\/p>\n<\/li>\n<\/ul>\n<details class=\"spoiler\">\n<summary>\u0410 \u0441\u044e\u0434\u0430 \u043c\u044b \u0441\u043f\u0440\u044f\u0442\u0430\u043b\u0438 \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0441\u0442\u0430\u0442\u0435\u0439<\/summary>\n<div class=\"spoiler__content\">\n<ul>\n<li>\n<p><a href=\"https:\/\/tanin.nanakorn.com\/graalvm-and-chromedriver-in-a-docker-image-for-render-com\/\">GraalVM and ChromeDriver in a Docker image for Render.com<\/a> \u2014 \u0437\u0430\u043c\u0435\u0442\u043a\u0430 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u0435\u0442 \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/medium.com\/@markgrechanik\/when-exceptions-get-sneaky-dynamic-classes-vs-malicious-meddlers-in-scalaland-7b5442570e80\">When Exceptions Get Sneaky: Dynamic Classes vs. Malicious Meddlers in ScalaLand<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/rssh\/notes\/blob\/master\/2024_12_09_dependency-injection.md\">First, why is type-based injection better than name-based injection?<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/mill-build.org\/mill\/large\/selective-execution.html\">Selective Execution in mill<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<h2>\u0412\u0438\u0434\u0435\u043e \u0438 \u0434\u043e\u043a\u043b\u0430\u0434\u044b<\/h2>\n<p>\u0421\u043e\u0431\u0440\u0430\u043b\u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u043a\u0430\u043a \u043d\u0430 \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435, \u0442\u0430\u043a \u0438 \u043d\u0430 \u043d\u043e\u0443\u043d\u0435\u0439\u043c-\u043a\u0430\u043d\u0430\u043b\u044b \u0438 \u0432\u0438\u0434\u0435\u043e \u043f\u0440\u043e Scala:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=qj4e5NgndnU\">[ICFP24] Capabilities for Control<\/a> \u2014 \u043d\u043e\u0432\u043e\u0433\u043e\u0434\u043d\u0438\u0439 \u043f\u043e\u0434\u0430\u0440\u043e\u043a \u043e\u0442 \u041c\u0430\u0440\u0442\u0438\u043d\u0430 \u041e\u0434\u0435\u0440\u0441\u043a\u0438. \u041f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u043c\u0430 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u044c\u044e \u041c\u043e\u043d\u0430\u0434, \u0447\u0442\u043e \u043e\u0442\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438. \u0410\u0432\u0442\u043e\u0440 \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 <a href=\"https:\/\/journal.stuffwithstuff.com\/2015\/02\/01\/what-color-is-your-function\/\">\u00ab\u041a\u0430\u043a\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430 \u0432\u0430\u0448\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f?\u00bb<\/a> \u0447\u0435\u0440\u0435\u0437 Capabilities.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/flatmappers.com\/episode033\/\">flatmappers033<\/a> \u2014 \u0440\u0435\u0431\u044f\u0442\u0430 \u0437\u0430\u0434\u0430\u043b\u0438\u0441\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c: \u0430 \u043a\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u0430 \u043d\u043e\u0432\u0430\u044f akka \u0438\u0437 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0438\u0433\u0440\u043e\u043a\u043e\u0432? \u0413\u0435\u0439\u043c\u0434\u0435\u0432? Tesla? \u0410 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c? \u0410 \u043c\u043e\u0436\u0435\u0442, Pekko? (\u00ac\u203f\u00ac )<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?app=desktop&amp;v=-8k3WfXVHkc&amp;ab_channel=ScalaSpace\">Scala Space Podcast: Modelling the Business Domain with Voytek Pitu\u0142a and Rapha\u00ebl Lemaitre<\/a> \u2014 \u0432\u0438\u0434\u0435\u043e \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u044b\u0441\u0442\u0440\u043e\u0438\u0442\u044c DDD \u0432 Scala, \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u044f \u0441\u0432\u043e\u0439 \u0431\u0438\u0437\u043d\u0435\u0441-\u0434\u043e\u043c\u0435\u043d \u043e\u0442 case class`\u043e\u0432 \u0434\u043e High-kinder types, \u043a\u0430\u043a\u0438\u0435 \u043f\u043b\u044e\u0441\u044b \u0435\u0441\u0442\u044c \u0432 Scala3 \u0441 \u0435\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0442\u0438\u043f\u043e\u0432 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u0430\u043c \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c Pillars.<\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u044f \u0434\u043b\u044f \u0441\u043a\u0430\u043b\u0438\u0441\u0442\u043e\u0432 \u2014 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u043e \u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438, \u044f\u0440\u043a\u0438\u0435 \u044d\u043c\u043e\u0446\u0438\u0438 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0434\u043e\u043a\u043b\u0430\u0434\u044b. \u041c\u044b \u043f\u043e\u0441\u0435\u0442\u0438\u043b\u0438 <a href=\"https:\/\/www.youtube.com\/playlist?list=PLE3NDqTcKYOcF2p9EdmS1EjR1diDUAJaV\">F[Scala] 2024<\/a>, \u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043d\u0430\u043c \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u043b\u043e\u0441\u044c:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/youtu.be\/FQrRUPO4ZJY?si=jTcB_oWX5SUdg4JQ\">\u0410\u0445\u0442\u044f\u043c \u0421\u0430\u043a\u0430\u0435\u0432, \u0410\u0432\u0442\u043e.\u0440\u0443 | \u041f\u0440\u043e\u0446\u0435\u0441\u0441<\/a> \u2014 \u0438\u0437\u044f\u0449\u043d\u043e\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0438\u043c\u043e\u0432 \u0432 \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u0441 \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u0441\u043f\u0438\u043a\u0435\u0440\u043e\u043c \u2014 \u0437\u0430\u043b\u043e\u0433 \u0443\u0441\u043f\u0435\u0445\u0430 \u0434\u043e\u043a\u043b\u0430\u0434\u0430!<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/youtu.be\/vRunKQSwgbI?si=dA1F4YhUqev3hHTG\">\u0414\u0435\u043d\u0438\u0441 \u0428\u0435\u0432\u0447\u0435\u043d\u043a\u043e, BIOCAD | \u0418\u0437\u043e\u043c\u043e\u0440\u0444\u0438\u0437\u043c \u041a\u0430\u0440\u0440\u0438-\u0413\u043e\u0432\u0430\u0440\u0434\u0430 \u0438 \u0412\u0441\u0435\u043b\u0435\u043d\u043d\u0430\u044f<\/a> \u2014 \u0443\u0432\u043b\u0435\u043a\u0430\u0435\u0442\u0435\u0441\u044c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u043e\u0439 \u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0448\u0430\u0433\u043d\u0443\u0442\u044c \u043a \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u043c\u0443 \u043c\u0438\u0440\u0443 \u0424\u041f? \u042d\u0442\u043e\u0442 \u0434\u043e\u043a\u043b\u0430\u0434 \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0432\u0430\u0441 \u0441 \u043c\u0430\u0441\u0442\u0435\u0440\u0441\u043a\u043e\u0439 \u043f\u043e\u0434\u0430\u0447\u0435\u0439 \u043e\u0442 \u0414\u0435\u043d\u0438\u0441\u0430!<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=ar5ooCuD2Fg\">\u0418\u0432\u0430\u043d \u041b\u044f\u0433\u0430\u0435\u0432, \u0422-\u0411\u0430\u043d\u043a | \u041f\u043e\u0441\u0442\u0430\u0432\u043a\u0430 http-\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438<\/a> \u2014 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0432 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u0440\u043e\u0439 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0439, \u0430 OpenAPI \u0432 \u043f\u043b\u0430\u0447\u0435\u0432\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438? \u041e\u0434\u043d\u043e \u0438\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u2014 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u044e \u0433\u0438\u0431\u043a\u0443\u044e, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443. \u0412 \u0434\u043e\u043a\u043b\u0430\u0434\u0435 \u0412\u0430\u043d\u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u0442 \u043f\u0440\u043e \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 T-Client.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=gSet5ZrKit4\">\u0410\u043b\u0435\u043a\u0441\u0435\u0439 \u0422\u0440\u043e\u0438\u0446\u043a\u0438\u0438\u0306, \u0422-\u0411\u0430\u043d\u043a | \u041f\u043e\u0434\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043e\u0442 \u0442\u0438\u043f\u043e\u0432: \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0442\u0438\u043f\u043e\u0432<\/a> \u2014 \u0434\u043e\u043a\u043b\u0430\u0434 \u2014\u00a0\u0444\u0430\u0432\u043e\u0440\u0438\u0442 \u041c\u0438\u0448\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0424\u041f-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0430\u0439\u0434\u0435\u0442 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043c\u044b\u0441\u043b\u0438 (\u272f\u25e1\u272f)\u00a0<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043b\u0435\u0434\u0438\u0442\u0435 \u0437\u0430 \u0430\u043d\u043e\u043d\u0441\u0430\u043c\u0438 \u0442\u0430\u043a\u0438\u0445 \u043c\u0435\u0440\u043e\u043f\u0440\u0438\u044f\u0442\u0438\u0439 \u0432 \u043d\u0430\u0448\u0435\u043c \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0435 \u0438 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0435 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437 \uff3c(\u2267\u25bd\u2266)\uff0f<\/p>\n<details class=\"spoiler\">\n<summary>\u0410 \u0441\u044e\u0434\u0430 \u043c\u044b \u0441\u043f\u0440\u044f\u0442\u0430\u043b\u0438 \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0432\u0438\u0434\u0435\u043e\u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432<\/summary>\n<div class=\"spoiler__content\">\n<ul>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/@scalaio\/videos\">\u041a\u0430\u043d\u0430\u043b ScalaIO FR<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=igarEERjUuQ\">Better Scala Builds with the Mill Build Tool, Functional Scala Online 2024<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/akka.io\/blog\/webinar-introducing-akka-3\">Webinar: introducing Akka 3<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=_oNOTknRTSU&amp;ab_channel=tretton37\">Eric Wastl \u2013 Advent of Code: Behind the Scenes<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=Y-0rFLSD9jw\">SoftMIL Predicting time to biochemical recurrence of prostate cancer based on WSI<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=G_rjI9PDMl8\">Anatomy of Scaladex &#8212; Functional World #13<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=SJxEXAkxD3I\">Welcome to Scala 2.7.7&#8230; in 2024<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=uROjY0GSCoc\">Decisions4s: Complicated Conditionals, Higher Kinded Data and Scala 3<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=cj3HFctzYm8\">IntelliJ IDEA x Scala &#8212; Get Started with Scala<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<h2>Tooling<\/h2>\n<p>\u041a\u0443\u0441\u043e\u0447\u0435\u043a \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430, \u0433\u0434\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u044b\u0445 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/www.zionomicon.com\/\">Zionomicon<\/a> \u2014 \u0432\u044b\u0448\u043b\u0430 \u0432 \u0440\u0435\u043b\u0438\u0437 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u0430\u044f \u043a\u043d\u0438\u0433\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e, \u043a\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0443 ZIO. \u0412\u0441\u0442\u0440\u0435\u0447\u0430\u0439\u0442\u0435 Zionomicon \u2014 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0436\u0435\u043b\u0430\u044e\u0449\u0438\u0445, \u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u0434\u043e ZIO 2.1.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/blog.jetbrains.com\/idea\/2024\/12\/getting-started-with-the-jetbrains-bazel-plugin\/\">Getting Started With the JetBrains Bazel Plugin<\/a> \u2014 \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043d\u0435 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0432\u0430\u0436\u043d\u044b\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442: JetBrains \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f Bazel, \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0445\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/iltotore.github.io\/iron\/docs\/reference\/constraint.html\">Iron Constraint<\/a> \u2014 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0446\u0435\u043d\u0438\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u044e \u0432 Scala 3.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/blog.jetbrains.com\/idea\/2024\/11\/advanced-code-analysis-in-intellij-idea\/\">Advanced Code Analysis in IntelliJ IDEA<\/a> \u2014 \u0435\u0441\u043b\u0438 \u0432\u044b \u0432\u0441\u0435 \u0435\u0449\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435\u0441\u044c \u0445\u043e\u0442\u043a\u0435\u044f\u043c\u0438, \u0432\u043e\u0442 \u0432\u0430\u043c \u0437\u043d\u0430\u043a, \u0447\u0442\u043e \u043f\u043e\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<h2>Highlights<\/h2>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0431\u043b\u043e\u043a\u0435 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0432\u0435\u0436\u0438\u0435, \u043d\u043e \u0437\u0430\u0446\u0435\u043f\u0438\u0432\u0448\u0438\u0435 \u043d\u0430\u0448 \u0432\u0437\u0433\u043b\u044f\u0434<\/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-444524","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/444524","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=444524"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/444524\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=444524"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=444524"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=444524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}