Project Leyden: Capturing Lightning in a Bottle
Проект Laden позволяет сократить время запуска приложений как минимум в два раза. В докладе о том как можно оптимизировать старт приложения на 800% используя Leyden ))
https://youtu.be/NlJK5BKXtHI?si=sriIC7UYa30WzVIL
Проект Laden позволяет сократить время запуска приложений как минимум в два раза. В докладе о том как можно оптимизировать старт приложения на 800% используя Leyden ))
https://youtu.be/NlJK5BKXtHI?si=sriIC7UYa30WzVIL
YouTube
Project Leyden: Capturing Lightning in a Bottle
Project Leyden aims to improve the startup time, warmup time, and footprint of Java applications by enabling developers to shift computation forward and backward in time. We’ll dive into what that means, how it could work, and review recent progress.
Presented…
Presented…
🔥3
Пару дней назад вышла Java 22
В этот релиз попало около 2300 закрытых задач и 12 JEP'ов. Release Notes можно посмотреть здесь. Полный список изменений API – здесь.
Из интересных фич лично для меня можно отметить:
1. String Templates (Second Preview) (JEP 459), которые, к сожалению, уходят на второй раунд preview без изменений.
2. Stream Gatherers (Preview) (JEP 461)
3. Class-File API (Preview) (JEP 457)
4. Structured Concurrency (Second Preview) (JEP 462), который тоже уходит на второй раунд preview без изменений.
5. Scoped Values (Second Preview) (JEP 464) тоже уходит на второй раунд preview без изменений.
6. Foreign Function & Memory API (JEP 454), которое наконец-то стабилизировалось!!!
https://habr.com/ru/articles/801467/
В этот релиз попало около 2300 закрытых задач и 12 JEP'ов. Release Notes можно посмотреть здесь. Полный список изменений API – здесь.
Из интересных фич лично для меня можно отметить:
1. String Templates (Second Preview) (JEP 459), которые, к сожалению, уходят на второй раунд preview без изменений.
2. Stream Gatherers (Preview) (JEP 461)
3. Class-File API (Preview) (JEP 457)
4. Structured Concurrency (Second Preview) (JEP 462), который тоже уходит на второй раунд preview без изменений.
5. Scoped Values (Second Preview) (JEP 464) тоже уходит на второй раунд preview без изменений.
6. Foreign Function & Memory API (JEP 454), которое наконец-то стабилизировалось!!!
https://habr.com/ru/articles/801467/
Хабр
Вышла Java 22
Вышла общедоступная версия Java 22 . В этот релиз попало около 2300 закрытых задач и 12 JEP'ов . Release Notes можно посмотреть здесь . Полный список изменений API – здесь . Java 22 не является...
👍4🔥3
Всё ещё используете If/else валидацию в Spring 6.0+ / SpringBoot 3.0+?
В статье рассмотрены аннотации @Valid, и @Validated, которые используются для запуска процесса валидации при обработке запроса в Spring.
@Valid — это стандартная аннотация из спецификации Java Bean Validation, также известной как JSR-303.
@Validated — это специфическая для Spring аннотация, предоставляемая самим Spring.
https://habr.com/ru/companies/otus/articles/799987/
В статье рассмотрены аннотации @Valid, и @Validated, которые используются для запуска процесса валидации при обработке запроса в Spring.
@Valid — это стандартная аннотация из спецификации Java Bean Validation, также известной как JSR-303.
@Validated — это специфическая для Spring аннотация, предоставляемая самим Spring.
https://habr.com/ru/companies/otus/articles/799987/
Хабр
Всё ещё используете If/else валидацию в Spring 6.0+ / SpringBoot 3.0+?
Если да, то вам следовало бы обновить свой код, используя приведенные ниже рекомендации. Чтобы избежать влияния несанкционированных параметров на ваш бизнес, в ваших веб-сервисах должна быть...
👍4🔥2
Awesome IT links
Сборник ссылок на ресурсы для изучения Java. Список будет расширяться.
https://github.com/RodinDenis/awesome-it-links
Сборник ссылок на ресурсы для изучения Java. Список будет расширяться.
https://github.com/RodinDenis/awesome-it-links
GitHub
GitHub - RodinDenis/awesome-it-links
Contribute to RodinDenis/awesome-it-links development by creating an account on GitHub.
🔥6👍4
Опять транзакции…
Транзакция нужна когда у нас есть несколько операций, которые меняют данные в БД. В противном случае смысла в ней никакого нет и база сама откроет и закроет транзакцию внутри себя, без дополнительных указаний извне. Речь в данной статье будет идти о клиентском управлении транзакциями, через аннотацию Spring
Транзакция нужна когда у нас есть несколько операций, которые меняют данные в БД. В противном случае смысла в ней никакого нет и база сама откроет и закроет транзакцию внутри себя, без дополнительных указаний извне. Речь в данной статье будет идти о клиентском управлении транзакциями, через аннотацию Spring
@Transactional и базу Postgres.
https://habr.com/ru/articles/803395Хабр
Опять транзакции…
Всем привет. На своем последнем месте работы я выполнял обязанности Java разработчика в одной из команд сервиса, чье приложение установлено в смартфоне большинства жителей РФ....
👍7
System Design 101
Во многих компаниях на собеседованиях senior разработчиков этап System Design становится обязательным. В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы.
https://habr.com/ru/articles/770564/
Во многих компаниях на собеседованиях senior разработчиков этап System Design становится обязательным. В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы.
https://habr.com/ru/articles/770564/
Хабр
System Design 101
О сложных системах простыми словами. В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы...
🔥7
Красивый код с Optional и Either
Класс Optional хорошо подходит для ситуаций с отсутствующим значением как прекрасная альтернатива использованию null, но что делать если мы хотим в таких случаях возвращать разные объекты? Например если мы хотим работать с исключениями в функциональном стиле?
Есть несколько библиотек решающих эту задачу: vavr, fugue, lambda и either.
Either самая легковесная из них и детали работы с ней рассмотрены в статье.
https://dzone.com/articles/the-beauty-of-java-optional-and-either
Класс Optional хорошо подходит для ситуаций с отсутствующим значением как прекрасная альтернатива использованию null, но что делать если мы хотим в таких случаях возвращать разные объекты? Например если мы хотим работать с исключениями в функциональном стиле?
Есть несколько библиотек решающих эту задачу: vavr, fugue, lambda и either.
Either самая легковесная из них и детали работы с ней рассмотрены в статье.
https://dzone.com/articles/the-beauty-of-java-optional-and-either
DZone
The Beauty of Java Optional and Either
Many Java developers often overlook its functional programming capabilities. Learn how to chain Optional and Either to write concise and beautiful code.
🔥5
Sealed (закрытые) классы Java: создание надежных и безопасных приложений
Sealed классы Java ограничивают набор классов, которые могут их реализовать. Это поможет предотвратить ряд ошибок и сделать код более удобным для сопровождения.
https://dzone.com/articles/java-sealed-classes-building-robust-and-secure-app
Sealed классы Java ограничивают набор классов, которые могут их реализовать. Это поможет предотвратить ряд ошибок и сделать код более удобным для сопровождения.
https://dzone.com/articles/java-sealed-classes-building-robust-and-secure-app
DZone
Java Sealed Classes: Building Robust and Secure Applications
Learn about Java sealed classes, which restrict the set of classes that can implement or extend them, can help prevent bugs, and make code more maintainable.
👍3🔥3
Использование Java Record-ов как DTO в Spring Boot 3
В статье описывается как наилучшим образом использовать Java Record-ы для работы с базой данных и API в Spring Boot 3 с Hibernate 6.
https://dzone.com/articles/how-to-best-use-java-records-as-dtos-in-spring-boo
В статье описывается как наилучшим образом использовать Java Record-ы для работы с базой данных и API в Spring Boot 3 с Hibernate 6.
https://dzone.com/articles/how-to-best-use-java-records-as-dtos-in-spring-boo
DZone
How To Best Use Java Records as DTOs in Spring Boot 3
Explore how to best use compact Java records as DTOs for database and API calls in Spring Boot 3 with Hibernate 6 as the persistence provider.
👍5👎1🔥1
Эффективность стримов в Java
Стримы позволяют писать более лаконичный код и с этим в основном никто не спорит. С производительностью стримов не все так однозначно.
В статье сравниваются результаты бенчмарков нескольких задач, решенных с использованием стримов и без них.
https://habr.com/ru/articles/807647/
Стримы позволяют писать более лаконичный код и с этим в основном никто не спорит. С производительностью стримов не все так однозначно.
В статье сравниваются результаты бенчмарков нескольких задач, решенных с использованием стримов и без них.
https://habr.com/ru/articles/807647/
Хабр
Еще раз о перформансе стримов в Java
Время от времени я наблюдаю или даже бываю втянутым в спор о перформансе стримов в джаве. Общеизвестно, что стримы это компромисс между перформансом и удобством. Однако я не нашел вменяемого набора...
👍2🔥2
Материалы Spring Academy Pro стали доступны бесплатно
Доступ можно получить по этой ссылке. Материалы разбиты на 3 категории: руководства, курсы и траектория обучения.
https://spring.io/blog/2024/04/10/spring-academy-pro-content-now-free-to-access
Доступ можно получить по этой ссылке. Материалы разбиты на 3 категории: руководства, курсы и траектория обучения.
https://spring.io/blog/2024/04/10/spring-academy-pro-content-now-free-to-access
Spring Academy Pro Content Now Free To Access
Level up your Java code and explore what Spring can do for you.
🔥7👍2
Spring Boot Starter: практически, принципиально и подробнее. Часть 1
Одно из преимуществ микросервисной архитектуры в модульности ее компонентов. Общее решение, вынесенное за скобки, можно переиспользовать как внутри разрабатываемого проекта, так и в следующих сервисах с аналогичным стеком. А механизмы Spring Boot помогут создать общий компонент, настроить и легко интегрировать его.
А что можно выделить в отдельное решение? Присмотритесь к своему проекту. Наверняка во многих частях задействованы кастомные аннотации и их обработчики, модули безопасности, различные интерцепторы, валидаторы, средства мониторинга и трассировки. Любое решение, используемое в двух и более микросервисах, — отличный кандидат на выделение в самостоятельный компонент.
https://habr.com/ru/companies/ru_mts/articles/811693/
Одно из преимуществ микросервисной архитектуры в модульности ее компонентов. Общее решение, вынесенное за скобки, можно переиспользовать как внутри разрабатываемого проекта, так и в следующих сервисах с аналогичным стеком. А механизмы Spring Boot помогут создать общий компонент, настроить и легко интегрировать его.
А что можно выделить в отдельное решение? Присмотритесь к своему проекту. Наверняка во многих частях задействованы кастомные аннотации и их обработчики, модули безопасности, различные интерцепторы, валидаторы, средства мониторинга и трассировки. Любое решение, используемое в двух и более микросервисах, — отличный кандидат на выделение в самостоятельный компонент.
https://habr.com/ru/companies/ru_mts/articles/811693/
Хабр
Spring Boot Starter: практически, принципиально и подробнее. Часть 1
Всем привет, меня зовут Сергей Соловых, я Java-разработчик в команде МТС Digital. За последние 2 года я написал и выпустил в продакшен более 30 микросервисов. Выдержать столь высокий темп помогло...
👍6🔥1
Появился новый канал с аудио обзорами различных материалов и событий из мира IT.
Если вам интересен такой формат, то накидайте «огоньков» ))
https://t.me/java_guru_podcast
Если вам интересен такой формат, то накидайте «огоньков» ))
https://t.me/java_guru_podcast
Telegram
Java guru podcast
Аудио обзоры различных материалов и событий из мира IT. Для связи @RodmanDV
🔥12👍1
Как начать писать на Java в VSCode
Я достаточно давно пользуюсь JetBrains IntelliJ IDEA хотя начинал свой путь в Java на Eclipse IDE. После перехода на JetBrains IntelliJ IDEA об альтернативах я особо не задумывался. IDE достаточно комфортная.
В статье автор делится опытом подготовки среды разработки и изучения вопроса: «А можно ли перейти на VSCode?».
https://habr.com/ru/companies/cdek_blog/articles/811631/
Я достаточно давно пользуюсь JetBrains IntelliJ IDEA хотя начинал свой путь в Java на Eclipse IDE. После перехода на JetBrains IntelliJ IDEA об альтернативах я особо не задумывался. IDE достаточно комфортная.
В статье автор делится опытом подготовки среды разработки и изучения вопроса: «А можно ли перейти на VSCode?».
https://habr.com/ru/companies/cdek_blog/articles/811631/
Хабр
Как начать писать на Java в VSCode
Давайте признаемся: подавляющее большинство пишет Java код, используя JetBrains IntelliJ IDEA Ultimate. Да, это отличная IDE. Для нее есть большое количество расширений, среда очень тесно...
🔥4👎1
Compiler Explorer — уникальный проект для исследования компилируемого кода
Это просто космический инструмент да еще и open source!!!
В левой панели вы выбираете язык и вставляете кусок кода, а в правой он показывает вам ассемблерный код, генерируемый разными компиляторами под разные архитектуры процессоров. Проект поддерживает 69 языков и Java в том числе.
Этот проект можно также использовать как отличный инструмент для изучения языка ассемблера. Достаточно навести курсор на команду, после чего откроется всплывающее окно с описанием команды. При нажатии правой клавишей мыши на команду открывается меню, в котором можно изучить более подробное описание.
В конце статьи особенно порадовал Movfuscator. Он использует только MOV ))
https://habr.com/ru/companies/ruvds/articles/815675/
Это просто космический инструмент да еще и open source!!!
В левой панели вы выбираете язык и вставляете кусок кода, а в правой он показывает вам ассемблерный код, генерируемый разными компиляторами под разные архитектуры процессоров. Проект поддерживает 69 языков и Java в том числе.
Этот проект можно также использовать как отличный инструмент для изучения языка ассемблера. Достаточно навести курсор на команду, после чего откроется всплывающее окно с описанием команды. При нажатии правой клавишей мыши на команду открывается меню, в котором можно изучить более подробное описание.
В конце статьи особенно порадовал Movfuscator. Он использует только MOV ))
https://habr.com/ru/companies/ruvds/articles/815675/
Хабр
Compiler Explorer — уникальный проект для исследования компилируемого кода
Этот пост посвящён замечательному инструменту, полезному для каждого, кто интересуется компиляторами или архитектурой компьютеров. Это Compiler Explorer , который я в дальнейшем будут называть CE. CE...
🔥6👍3
Гарвардский курс по основам программирования CS50 (бесплатно)
Отличный курс по основам программирования. Можно быстро освежить базу. Особенно рекомендую новичкам.
https://youtube.com/playlist?list=PLawfWYMUziZqyUL5QDLVbe3j5BKWj42E5&si=ET3P_dbNTmHABDPx
Отличный курс по основам программирования. Можно быстро освежить базу. Особенно рекомендую новичкам.
https://youtube.com/playlist?list=PLawfWYMUziZqyUL5QDLVbe3j5BKWj42E5&si=ET3P_dbNTmHABDPx
👍4🔥2
Practice SQL - сайт для практики SQL запросов.
Навык работы с базами данных очень важен для разработчиков. Прелесть данного сайта в том, что вам не нужно самим заниматься разворачиванием тестовой базы. Достаточно открыть браузер. Также, в отличии от тестов, здесь вам нужно будет реально набирать и выполнять SQL, а это лучше запоминается.
https://www.sql-practice.com/
Навык работы с базами данных очень важен для разработчиков. Прелесть данного сайта в том, что вам не нужно самим заниматься разворачиванием тестовой базы. Достаточно открыть браузер. Также, в отличии от тестов, здесь вам нужно будет реально набирать и выполнять SQL, а это лучше запоминается.
https://www.sql-practice.com/
Sql-Practice
Learn SQL - Online SQL Terminal - Practice SQL Querys
Practice SQL querys with an online terminal. Solve SQL query questions using a practice database. Learn and improve your SQL skills.
👍5🔥3🤩1
Coding game
Coding game - сайт для прокачки навыков программирования на 25+ языках. Можно писать и на Java. Вы получаете задачи и решаете их в игровой форме. Оформление впечатляет )
https://www.codingame.com/start/
Coding game - сайт для прокачки навыков программирования на 25+ языках. Можно писать и на Java. Вы получаете задачи и решаете их в игровой форме. Оформление впечатляет )
https://www.codingame.com/start/
CodinGame
Coding Games and Programming Challenges to Code Better
CodinGame is a challenge-based training platform for programmers where you can play with the hottest programming topics. Solve games, code AI bots, learn from your peers, have fun.
🔥4❤2
Криптография на службе у stateless
Команда Мир Plat.Form под интересным углом посмотрела на архитектуру решения stateless сервиса. Вместо хранения состояния на стороне сервиса они решили передавать его в каждом запросе, а для защиты от подмены использовать контрольные суммы сообщения (HMAC). У решения есть свои плюсы и минусы. Больше деталей в статье.
https://habr.com/ru/companies/nspk/articles/808199/
Команда Мир Plat.Form под интересным углом посмотрела на архитектуру решения stateless сервиса. Вместо хранения состояния на стороне сервиса они решили передавать его в каждом запросе, а для защиты от подмены использовать контрольные суммы сообщения (HMAC). У решения есть свои плюсы и минусы. Больше деталей в статье.
https://habr.com/ru/companies/nspk/articles/808199/
Хабр
Криптография на службе у stateless
Всем привет! Я – Кирилл, и я работаю в команде Мир Plat.Form. В какой-то момент мы столкнулись с ситуацией, где изначально спроектированная система начинает требовать много ресурсов с увеличением...
👍4🔥1