Java
1.63K subscribers
223 photos
5 videos
3 files
901 links
Программирование на Java.

По всем вопросам: @un_ixtime
Download Telegram
Руководство по Hibernate 6

Hibernate 6 — это серьезная переработка самого популярного и многофункционального решения ORM в мире. Редизайн коснулся почти каждой подсистемы Hibernate, включая API, аннотации сопоставления и язык запросов. Этот новый Hibernate более мощный, более надежный и более безопасный.

С таким количеством улучшений очень трудно подытожить значение этой работы. Но выделяются следующие общие темы. Спящий режим 6:

наконец, использует достижения в реляционных базах данных за последнее десятилетие, обновляя язык запросов для поддержки множества новых конструкций в современных диалектах SQL,

демонстрирует гораздо более согласованное поведение в разных базах данных, значительно улучшая переносимость и генерируя намного более качественный DDL из диалектно-независимого кода,

улучшает отчеты об ошибках за счет более тщательной проверки запросов перед доступом к базе данных,

улучшает типобезопасность аннотаций сопоставления O/R, уточняет разделение API, SPI и внутренней реализации, а также исправляет некоторые давние архитектурные недостатки,

удаляет или осуждает устаревшие API, закладывая основу для будущей эволюции, и

гораздо лучше использует Javadoc, предоставляя разработчикам гораздо больше информации.

Hibernate 6 и Hibernate Reactive теперь являются основными компонентами Quarkus 3, самой интересной новой среды для облачной разработки на Java, а Hibernate остается предпочтительным решением для сохраняемости почти для каждой крупной платформы или сервера Java.

К сожалению, изменения в Hibernate 6 устарели, большая часть информации о Hibernate, которая доступна в книгах, сообщениях в блогах и на stackoverflow.

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

Таким образом, это новое каноническое руководство по Hibernate. Мы не пытаемся охватить здесь все детали Hibernate, поэтому это руководство следует использовать в сочетании с обширным Javadoc , доступным для Hibernate 6. Мы также не обсуждаем язык запросов Hibernate. Таким образом, это введение следует использовать вместе с родственным документом A guide to Hibernate Query Language 6 .

https://docs.jboss.org/hibernate/orm/6.3/introduction/html_single/Hibernate_Introduction.html
👍4👎1
Как работает jvm — Архитектура JVM

https://awstip.com/how-jvm-works-jvm-architecture-4f5b15946e6d
Принципы проектирования SOLID

SOLID
: принцип единой ответственности с примерами
https://dev.to/ggorantala/solid-single-responsibility-principle-with-examples-h0f

Что такое принципы проектирования SOLID
https://dev.to/ggorantala/what-are-solid-design-principles-1n22
👍3
Исчерпывающее руководство по одномерным массивам в Java

Для хранения данных, используемых при работе программы, применяются переменные того или иного типа. Например, если требуется сохранить имя игрока, то создается переменная String name, если целочисленное значение, то int number и т. д. Когда таких значений немного или их количество заранее известно, то для них приемлемо использовать отдельные переменные.

Но что делать, когда в программе задействовано не одно, а 10 чисел, или их количество становится известно только на этапе запуска приложения, когда пользователь вводит его с клавиатуры? Или в какой-то игре может участвовать разное количество игроков, устанавливаемое при ее старте. В таких ситуациях отдельными переменными уже не обойтись, т. к. их точное количество будет невозможно определить. Да и, если все же попытаться это сделать, код станет громоздким и не универсальным, а работа с ним будет крайне ограниченной из-за невозможности использования цикла для автоматизированной обработки данных.

Вот тут-то и приходит на выручку такая структура данных как массив, которая позволяет хранить в себе значения одного типа, что значительно упрощает их обработку. https://habr.com/ru/articles/753638/
👍2
Представляем DeciCoder : новый LLM с открытым исходным кодом, специализирующийся на создании кода на Python , Java и Javascript .

Model:
https://huggingface.co/Deci/DeciCoder-1b

Demo Space:
https://huggingface.co/spaces/Deci/DeciCoder-Demo

Google Colab, starter Notebook:
https://colab.research.google.com/drive/1JCxvBsWCZKHfIcHSMVf7GZCs3ClMQPjs
Освоение основного потока в Java

Java, известная своими надежными многопоточными возможностями, вращается вокруг концепции потоков, которые выполняются одновременно. В основе каждого Java-приложения лежит основной поток . Этот поток управляет точкой входа программы, инициирует другие потоки и управляет жизненным циклом приложения. Это руководство по программированию погружает в мир основного потока, исследуя его роль, нюансы и лучшие практики для оптимального управления потоками. https://www.developer.com/java/java-main-thread/
👍4
Как Spring MVC Web Framework работает внутри?

Как обрабатывается HTTP-запрос? Что происходит, когда вы отправляете HTTP-запрос в веб-приложение на основе Spring MVC https://levelup.gitconnected.com/how-does-spring-mvc-web-framework-work-internally-7a3b06f1716e
Совет по Kubernetes Java

Устанавливаете ли вы ограничение ЦП для Java- приложений в Kubernetes? Как это влияет на время запуска ваших приложений? Вы можете решить эту проблему с помощью новой функции Kubernetes под названием «Вертикальное масштабирование модуля на месте» таким образом
[Перевод] Все что вам нужно знать о таймаутах

Какустановить оптимальное значение таймаутов вмикросервисной архитектуре, чтобы достичь максимальной производительности и отказоустойчивости.

Под катом вы узнаете как установить оптимальные значение connection и request timeout, стоит ли повторять запрос при ошибке или лучше избегать этого.

В конце статьи есть небольшая шпаргалка и куча полезных ссылок. Приятного чтения.

https://habr.com/ru/articles/755750/
👍3
Чтобы стать выдающимся #Java -разработчиком, мы должны выйти за рамки #Java . Нам нужно знать, как создавать масштабируемые системы. В этой новой статье вы изучите основы #cache

https://javachallengers.com/cache-systems-design/
This media is not supported in your browser
VIEW IN TELEGRAM
🐛Используйте отладчик #IntelliJIDEA для отладки потоков и визуализации того, что происходит в операциях Java Stream, с помощью «Trace Current Stream Chain» в окне инструмента «Отладка».
👍5
До выпуска #Java21 осталось всего несколько недель .
Чего мы можем ожидать. https://blogs.oracle.com/javamagazine/post/java-21-sneak-peek
Представляем freeCodeCamp Press — бесплатные книги для разработчиков

Сообщество freeCodeCamp за годы опубликовало более 10 000 руководств. Но в последнее время мы сосредоточились на создании еще более объемных ресурсов для изучения математики, программирования и информатики.

Вот почему мы создали freeCodeCamp Press — подразделение freeCodeCamp, где мы публикуем полноформатные книги и справочники — все они доступны каждому бесплатно. https://www.freecodecamp.org/news/freecodecamp-press-books-handbooks/
👍1
Насколько быстро работает Java 21?

Поскольку выпуск Java 21 уже не за горами, у вас может возникнуть вопрос, чем она отличается от Java 17 и стоит ли вам обновляться. https://timefold.ai/blog/2023/java-21-performance/
Java Digest #4.

Всем привет! 👋 👋 👋 Мы Java-разработчики Тинькофф: Константин, Андрей и Арсений. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и решили делиться этим не только с коллегами, но и со всем сообществом.

В этот раз эпиграф к выпуску нам придумал ChatGPT:

In the whimsical world of Java, where code dances with curiosity and logic wears a hat of wonder, our Java Digest takes you on a delightful journey through the rabbit hole of programming brilliance.

Stay tuned! 🙂

Читать четвертый выпуск https://habr.com/ru/companies/tinkoff/articles/759432
Перестаём бояться генерировать байт-код

Многие, возможно, думают, что работа с байт-кодом Java (будь то чтение или, тем более, генерация) — это какая-то особенная магия, доступная только продвинутым разработчикам с особенно крутым опытом. На самом деле, я считаю такую точку зрения ошибочной. JVM устроена гораздо проще, чем CPU; она оперирует такими высокоуровневыми понятиями как классы, интерфейсы, методы, а не просто лопатит байты в памяти. В отличие от CPU, который легко уронить криво сгенерированным машинным кодом, JVM заботливо отверифицирует любой байт-код и в общем не даст выстрелить в ногу.

Но с чего начать погружение в байт-кодную магию? В сети есть некоторое количество туториалов по этому вопросу. Как мне кажется, они либо показывают слишком простые случаи, от которых непонятно, как перейти к чему-то более интересному, либо очень основательные и требуют вникать в теорию, собирать целиком картину в голове по кусочкам. Я хотел бы попробовать внести свой вклад в эту тему — надеюсь, у меня получится показать, как можно побороть первый страх и написать что-то похожее на реалистичный сценарий без особого вникания в теорию на первом этапе. https://habr.com/ru/articles/759990/