[Перевод] Разрыв в неизменяемости: почему Java Records нужны оптики (Lenses)

Records, pattern matching и sealed-типы сделали Java куда более «функциональной» — читать вложенные данные стало легко и красиво. Но как только вам нужно изменить что-то глубоко внутри неизменяемой структуры, начинается боль: каскад пересоздания records, копирование полей, десятки строк ради одного изменения. В новом переводе от команды Spring АйО рассмотрим, почему у современной Java всё ещё есть пробел в истории неизменяемости — и как оптики закрывают его. Если pattern matching — это про элегантное чтение , то оптики дают то, чего так не хватает, — композиционную запись : определили путь один раз и дальше меняете вложенные поля одной строкой, без ручной реконструкции и без циклов.

https://habr.com/ru/companies/spring_aio/articles/1001066/

#java #kotlin #jvm #optics #java_core #spring #spring_framework #spring_boot

Разрыв в неизменяемости: почему Java Records нужны оптики (Lenses)

Records, pattern matching и sealed-типы сделали Java куда более «функциональной» — читать вложенные данные стало легко и красиво. Но как только вам нужно изменить что-то глубоко внутри неизменяемой...

Хабр

[Перевод] Hidden классы в Java. Что скрывают Lambda выражения

С переходом Java на более безопасные и стандартизированные подходы к динамической генерации классов, скрытые (hidden) классы стали ключевым механизмом замены устаревшего Unsafe::defineAnonymousClass . Они решают проблемы доступности, управления жизненным циклом и контроля доступа, особенно актуальные для разработчиков фреймворков и языков на JVM. Хотя скрытые классы пока не полностью заменяют функциональность Unsafe , они лежат в основе ряда важных механизмов, такие как, например, реализация лямбд в JDK. Подробнее - в новом переводе от команды Spring АйО .

https://habr.com/ru/companies/spring_aio/articles/980928/

#java #kotlin #jvm #java_core #spring #spring_boot #spring_framework #springboot #spring_data

Hidden классы в Java. Что скрывают Lambda выражения

С переходом Java на более безопасные и стандартизированные подходы к динамической генерации классов, скрытые (hidden) классы стали ключевым механизмом замены устаревшего Unsafe::defineAnonymousClass ....

Хабр

Обучение без отрыва от работы: кейс РТЛабс

Привет, Хабр! На связи Дмитрий Пирумов, руководитель подразделения QA РТЛабс. В этой статье хочу поделиться опытом развития внутреннего обучения — как, зачем и почему мы создали корпоративную школу автоматизированного тестирования. Наш опыт будет полезен, если нужно организовать внутреннее обучение и вы ищете ответ, как решить эту задачу.

https://habr.com/ru/companies/rtlabs/articles/974830/

#обучение_тестированию #внутреннее_обучение #автоматизированное_тестирование #организация_обучения #automation_approach #java_core

Обучение без отрыва от работы: кейс РТЛабс

Привет, Хабр! На связи Дмитрий Пирумов, руководитель подразделения QA РТЛабс. В этой статье хочу поделиться опытом развития внутреннего обучения — как, зачем и почему мы создали корпоративную школу...

Хабр

Java 25 выходит уже сегодня

Четверть века назад язык, придуманный для «умных тостеров», стал символом корпоративного софта и огромных систем. Сегодня Java продолжает эволюционировать, и каждая новая версия всё сильнее ломает стереотип о «тяжёлом корпоративном динозавре». Встречайте 25 версию Java вместе с командой Spring АйО !

https://habr.com/ru/companies/spring_aio/articles/947420/

#java #kotlin #oracle #java_core #java_25 #spring #spring_boot #spring_framework #springboot #core

Java 25 выходит уже сегодня

Четверть века назад язык, придуманный для «умных тостеров», стал символом корпоративного софта и огромных систем. Сегодня Java продолжает эволюционировать, и каждая новая версия всё сильнее ломает...

Хабр

JEP 520: Метод-трейсинг и тайминг в JFR — замер времени конкретных методов без кода и агентов

Команда Spring АйО провела небольшое исследование JEP 520. В Java 25 JFR (Java Flight Recorder) позволит точно отслеживать выполнение конкретных методов — без изменения исходников, без логирования и без сторонних Java-агентов.

https://habr.com/ru/companies/spring_aio/articles/933306/

#java #kotlin #java_core #spring #spring_boot #spring_framework #springboot #spring_security #spring_data #spring_data_jpa

JEP 520: Метод-трейсинг и тайминг в JFR — замер времени конкретных методов без кода и агентов

Команда Spring АйО провела небольшое исследование JEP 520. В Java 25 JFR (Java Flight Recorder) позволит точно отслеживать выполнение конкретных методов — без изменения исходников, без логирования и...

Хабр

[Перевод] Structured Concurrency в Java: наконец-то находит опору

API structured concurrency в Java наконец-то обрёл устойчивость. В новом переводе от команды Spring АйО подробно рассматриваются последние изменения, появившиеся с выходом JEP 505: фабричный метод open() , политики Joiner'ов, улучшенная отмена задач, дедлайны, передача контекста через ScopedValues и строгая защита от ошибок использования. Всё это делает параллельное программирование в Java более безопасным, читаемым и управляемым.

https://habr.com/ru/companies/spring_aio/articles/930812/

#java #kotlin #java_core #spring #spring_boot #spring_framework #springboot #spring_data #spring_data_jpa

Structured Concurrency в Java: наконец-то находит опору

API structured concurrency в Java наконец-то обрёл устойчивость. В новом переводе от команды Spring АйО подробно рассматриваются последние изменения, появившиеся с выходом JEP 505: фабричный метод...

Хабр

[Перевод] Очистите свою память: от Finalize к Cleaner

Сборка мусора в Java отвечает за управление памятью, но не очищает ресурсы, не связанные с памятью, такие как сокеты или дескрипторы файлов. Без надлежащего управления могут возникнуть утечки ресурсов, что приведет к снижению производительности или сбоям. Java Cleaner API , представленный в Java 9, обеспечивает современный и эффективный механизм очистки ресурсов, когда объекты больше не доступны. Он устраняет недостатки устаревшего метода finalize(), предлагая предсказуемый и эффективный способ управления ресурсами, не связанными с памятью: поэтому давайте совершим небольшой экскурс по методам очистки памяти от finalize до Cleaner API.

https://habr.com/ru/articles/911046/

#java_core

Очистите свою память: от Finalize к Cleaner

Сборка мусора в Java отвечает за управление памятью, но не очищает ресурсы, не связанные с памятью, такие как сокеты или дескрипторы файлов. Без надлежащего управления могут возникнуть утечки...

Хабр

[Перевод] В центре внимания Java: Local Variable Type Inference

Мы (команда Axiom JDK) подготовили перевод статьи про var, или Local Variable Type Inference (LVTI). Из этой статьи вы узнаете как работает var, когда эту фичу лучше использовать в коде, а когда — воздержаться. Всё это с примерами кода и комментариями от нашей команды. Примечание от команды Axiom JDK: Хотя статья написана в 2019 году, она остаётся актуальной в 2025: var (Local Variable Type Inference) уже давно является частью LTS-релизов и ключевой особенностью современного Java-кода, но по-прежнему вызывает споры и вопросы даже у опытных разработчиков. Это отличный материал от Брайана Гётца — одного из архитекторов Java — с разбором принципов, которые не устарели. С тех пор появилось больше практики, но базовая теория осталась неизменной. Мы публикуем перевод как удобный справочник по механике var, его компромиссам и подводным камням.

https://habr.com/ru/companies/axiomjdk/articles/904928/

#var #lvti #java #java_core #java_10 #axiom_jdk #axiomjdk #spring #type_inference

В центре внимания Java: Local Variable Type Inference

Команда Axiom JDK подготовила перевод статьи про var , или Local Variable Type Inference (LVTI). Из этой статьи вы узнаете как работает var , когда эту фичу лучше использовать в коде, а когда —...

Хабр

Чего ждёт рынок от java-разработчика уровня middle

Привет! Меня зовут Игорь Честнов, я автор на курсе

https://habr.com/ru/companies/yandex_praktikum/articles/860272/

#java_core #java_concurrency #java #джава #роадмап #скиллы

Чего ждёт рынок от java-разработчика уровня middle

Привет! Меня зовут Игорь Честнов, я автор на курсе «Мидл java-разработчик» в Яндекс Практикуме. В статье расскажу, каких навыков и компетенций работодатели ждут от java-разработчиков среднего уровня....

Хабр

Паттерны или химеры программирования

Данная статья будет полезна для Junior / Middle Java разработчиков, которые готовятся к собеседованию или просто развиваются и хотят немного конкретики по части паттернов, и так как в данной статье я покажу 5 паттернов, с которыми мы как разработчики работаем в Java Core, с самого начала нашего пути, то они точно останутся в вашей голове и при последующем написании кода будут только всплывать и крепнуть. И даже просто, не знать что они это они - это не хорошо.

https://habr.com/ru/articles/804339/

#java_core #паттерны_проектирования #собеседование #собеседование_вопросы

Паттерны или химеры программирования

Готовясь к собеседованию, я просмотрел не мало mock интервью на позицию Junior/Middle Java Developer, и понял что многие программисты валятся на таком простом вопросе как - опишите те или иные...

Хабр