Холостые циклы в Java
Привет, сегодня поговорим о тонкостях реализации холостых циклов (холостого ожидания) в Java. Эта задача встречается нечасто: за девять с небольшим лет работы я столкнулся с ней лишь пару раз. Тем не менее, тема видится интересной и по ней есть что сказать, так что добро пожаловать!
Читать статью
Привет, сегодня поговорим о тонкостях реализации холостых циклов (холостого ожидания) в Java. Эта задача встречается нечасто: за девять с небольшим лет работы я столкнулся с ней лишь пару раз. Тем не менее, тема видится интересной и по ней есть что сказать, так что добро пожаловать!
Читать статью
Telegraph
Холостые циклы в Java
Привет, сегодня поговорим о тонкостях реализации холостых циклов (холостого ожидания) в Java. Эта задача встречается нечасто: за девять с небольшим лет работы я столкнулся с ней лишь пару раз. Тем не менее, тема видится интересной и по ней есть что сказать…
👍4😱1
SOLID на практике в автоматизации тестирования
Как на практике реализовать все принципы и упростить разработку тестирования BDD ?
Примером будет интеграционное тестирование, но вам ничего не помешает реализовать для End2End
Читать статью
Как на практике реализовать все принципы и упростить разработку тестирования BDD ?
Примером будет интеграционное тестирование, но вам ничего не помешает реализовать для End2End
Читать статью
Telegraph
SOLID на практике в автоматизации тестирования
Как на практике реализовать все принципы и упростить разработку тестирования BDD ? Для чего нужны принципы SOLID При создании программных систем использование принципов SOLID способствует созданию такой системы, которую будет легко поддерживать и расширять…
👍4
Java News Roundup: Eclipse GlassFish, Open Liberty, MicroStream, JHipster, WildFly, EclipseLink
This week's Java roundup for August 29th, 2022, features news from OpenJDK, JDK 20, Eclipse GlassFish 7.0.0-M8, Quarkus 2.12.0, Open Liberty 22.0.0.9 and 22.0.0.10-beta, MicroStream 07.01.00-beta2, WildFly 26.1.2, JHipster 7.9.3, EclipseLink 4.0.0-RC1, Hibernate 5.6.11, JDKMon 17.0.35 and Apache Camel Quarkus 2.12.0.
Читать статью
This week's Java roundup for August 29th, 2022, features news from OpenJDK, JDK 20, Eclipse GlassFish 7.0.0-M8, Quarkus 2.12.0, Open Liberty 22.0.0.9 and 22.0.0.10-beta, MicroStream 07.01.00-beta2, WildFly 26.1.2, JHipster 7.9.3, EclipseLink 4.0.0-RC1, Hibernate 5.6.11, JDKMon 17.0.35 and Apache Camel Quarkus 2.12.0.
Читать статью
👍4
Лучшие практики по управлению зависимостями в Java
Если посмотреть на современные Java-приложения, почти все они содержат зависимости от библиотек, разработанных кем-то другим.
Зависимости занимают от 80 до 90 процентов бинарного файла, поэтому мы должны позаботиться о них при создании проекта Java. В этой статье я дам вам несколько советов и рекомендаций по работе с зависимостями Java в вашем проекте.
Читать статью
Если посмотреть на современные Java-приложения, почти все они содержат зависимости от библиотек, разработанных кем-то другим.
Зависимости занимают от 80 до 90 процентов бинарного файла, поэтому мы должны позаботиться о них при создании проекта Java. В этой статье я дам вам несколько советов и рекомендаций по работе с зависимостями Java в вашем проекте.
Читать статью
👍6
Атака на String.hashCode: прообразы и коллизии
Как-то раз мне понадобилось несколько наборов строк с коллизией по хеш-коду. То есть таких, чтобы значение String::hashCode() совпадало для всех строк в наборе.
Блуждание по интернету не дало результатов, примеров было мало и все они довольно однообразны. Поиск по словарям подарил забавную пару "javanoscript's".hashCode() == "monocle".hashCode(), но практической пользы не принёс. Полный перебор не рассматривался в виду скорой тепловой смерти вселенной.
Тот самый случай, когда проще сделать всё самому. Стандартная хеш-функция строки в Java считается криптографически нестойкой, так что знаний из школьного курса математики должно быть достаточно.
Читать статью
Как-то раз мне понадобилось несколько наборов строк с коллизией по хеш-коду. То есть таких, чтобы значение String::hashCode() совпадало для всех строк в наборе.
Блуждание по интернету не дало результатов, примеров было мало и все они довольно однообразны. Поиск по словарям подарил забавную пару "javanoscript's".hashCode() == "monocle".hashCode(), но практической пользы не принёс. Полный перебор не рассматривался в виду скорой тепловой смерти вселенной.
Тот самый случай, когда проще сделать всё самому. Стандартная хеш-функция строки в Java считается криптографически нестойкой, так что знаний из школьного курса математики должно быть достаточно.
Читать статью
Telegraph
Атака на String.hashCode: прообразы и коллизии
Как-то раз мне понадобилось несколько наборов строк с коллизией по хеш-коду. То есть таких, чтобы значение String::hashCode() совпадало для всех строк в наборе. Блуждание по интернету не дало результатов, примеров было мало и все они довольно однообразны.…
👍5
Java 8 была выпущена в марте 2014 года, а Java 18 — в марте 2022 года. Между этими двумя выпусками — 8 лет прогресса и 203 предложения (JEP) по улучшению JDK.
В этом видео Аурелио Гарсиа-Рибейро рассказывает о наиболее важных изменениях в Java, которые произошли за эти года, а также о преимуществах и проблемах по внедрению последних версий JDK как для новых приложений, так и для уже написанных.
В этом видео Аурелио Гарсиа-Рибейро рассказывает о наиболее важных изменениях в Java, которые произошли за эти года, а также о преимуществах и проблемах по внедрению последних версий JDK как для новых приложений, так и для уже написанных.
YouTube
Java 8 to 18: Most important changes in the Java Platform
Java 8 launched in March of 2014, Java 18 in March of 2022. There are 8 years of progress, 203 JDK Enhancement Proposals (JEPs), between those two releases. In this video, we will review the most important changes and discuss the benefits, and challenges…
👍9
JDK 19 and JDK 20: What We Know So Far
JDK 19, the second non-LTS release since JDK 17, has reached its initial release candidate phase as declared by Mark Reinhold, chief architect, Java Platform Group at Oracle. The main-line source repository, forked to the JDK stabilization repository in early June 2022 (Rampdown Phase One), defines the feature set for JDK 19. Critical bugs, such as regressions or serious functionality issues, may be addressed, but must be approved via the Fix-Request process. As per the release schedule, JDK 19 will be formally released on September 20, 2022.
Читать статью
JDK 19, the second non-LTS release since JDK 17, has reached its initial release candidate phase as declared by Mark Reinhold, chief architect, Java Platform Group at Oracle. The main-line source repository, forked to the JDK stabilization repository in early June 2022 (Rampdown Phase One), defines the feature set for JDK 19. Critical bugs, such as regressions or serious functionality issues, may be addressed, but must be approved via the Fix-Request process. As per the release schedule, JDK 19 will be formally released on September 20, 2022.
Читать статью
👍4🔥1
Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana
В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.
Вначале мы напишем пару простых микросервисов на Spring Boot, докеризуем их, зальём в AWS, настроим красивые доменные имена и HTTPS, прикрутим логирование и мониторинг, Prometheus и Grafana. Это небольшое путешествие по всем кругам ада, из которого вы не вернетесь прежним.
Читать статью
В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.
Вначале мы напишем пару простых микросервисов на Spring Boot, докеризуем их, зальём в AWS, настроим красивые доменные имена и HTTPS, прикрутим логирование и мониторинг, Prometheus и Grafana. Это небольшое путешествие по всем кругам ада, из которого вы не вернетесь прежним.
Читать статью
👍8
JEP 429: Extent-Local Variables to Promote Immutability in Java
JEP 429, Extent-Local Variables (Incubator), was promoted from its JEP Draft 8263012 to Candidate status. This incubating JEP, under the umbrella of Project Loom, proposes enabling the sharing of immutable data within and across threads. This is preferred to thread-local variables, especially when using large numbers of virtual threads.
Читать статью
JEP 429, Extent-Local Variables (Incubator), was promoted from its JEP Draft 8263012 to Candidate status. This incubating JEP, under the umbrella of Project Loom, proposes enabling the sharing of immutable data within and across threads. This is preferred to thread-local variables, especially when using large numbers of virtual threads.
Читать статью
👍4
Чистый код — практический подход
После нескольких докладов о чистом коде (Clean Code) я решил обобщить в статье самое важное по этой теме. Поскольку в Интернете и так много постов и информации об этом, то, я думаю, еще одна статья, просто рассказывающая о принципах чистого кода, не будет интересной.
Поэтому я попытаюсь показать вам практический подход к чистому коду. Не вдаваясь в теорию, покажу, как я пишу Чистый Код.
Читать статью
После нескольких докладов о чистом коде (Clean Code) я решил обобщить в статье самое важное по этой теме. Поскольку в Интернете и так много постов и информации об этом, то, я думаю, еще одна статья, просто рассказывающая о принципах чистого кода, не будет интересной.
Поэтому я попытаюсь показать вам практический подход к чистому коду. Не вдаваясь в теорию, покажу, как я пишу Чистый Код.
Читать статью
Telegraph
Чистый код — практический подход
После нескольких докладов о чистом коде (Clean Code) я решил обобщить в статье самое важное по этой теме. Поскольку в Интернете и так много постов и информации об этом, то, я думаю, еще одна статья, просто рассказывающая о принципах чистого кода, не будет…
👍4
Introducing Helidon Nima Using Virtual Threads to Achieve Simplicity and High Performance
Under the umbrella of Project Helidon, Oracle introduced the first microservices framework based on virtual threads (JEP 425) called Helidon Níma. It is built from the ground up to achieve an easy-to-use programming model with outstanding performance. The technology preview is now available with the Helidon 4.0.0-ALPHA1 release for those who are interested in evaluating the latest Java technology. However, this is not yet production-ready.
Читать статью
Under the umbrella of Project Helidon, Oracle introduced the first microservices framework based on virtual threads (JEP 425) called Helidon Níma. It is built from the ground up to achieve an easy-to-use programming model with outstanding performance. The technology preview is now available with the Helidon 4.0.0-ALPHA1 release for those who are interested in evaluating the latest Java technology. However, this is not yet production-ready.
Читать статью
👍4
Введение в DbChange JUnit расширение
Простой и декларативный способ выполнять SQL запросы в JUnit тестах.
Читать статью
Простой и декларативный способ выполнять SQL запросы в JUnit тестах.
Читать статью
Telegraph
Введение в DbChange JUnit расширение
Простой и декларативный способ выполнять sql запросы в JUnit тестах. Введение Структура JUnit теста следует модели тестового сценария (test case): ПредУсловия (PreConditions) - это действия, которые переводят тестируемую систему в определённое состояние необходимое…
👍4😱1
Практические примеры использования Stream API
Всем привет! Решил написать статью с практическими примерами использования Stream API. В данной статье не будет теории - только хардкор и практические примеры. Поехали!
Читать статью
Всем привет! Решил написать статью с практическими примерами использования Stream API. В данной статье не будет теории - только хардкор и практические примеры. Поехали!
Читать статью
Telegraph
Практические примеры использования Stream API
Всем привет! Решил написать статью с практическими примерами использования Stream API. В данной статье не будет теории - только хардкор и практические примеры. Поехали! Сразу хочу отметить: данная статья написана исключительно в целях демонстрации основ работы…
👍7🔥1
Вышла Java 19
Вышла общедоступная версия Java 19. В этот релиз попало более двух тысяч закрытых задач и 7 JEP'ов.
Читать статью
Вышла общедоступная версия Java 19. В этот релиз попало более двух тысяч закрытых задач и 7 JEP'ов.
Читать статью
Telegraph
Вышла Java 19
Вышла общедоступная версия Java 19. В этот релиз попало более двух тысяч закрытых задач и 7 JEP'ов. Release Notes можно посмотреть здесь. Изменения API – здесь. Ссылки на скачивание: Oracle JDK OpenJDK Вот список JEP'ов, которые попали в Java 19. Паттерн…
🔥16👍5🤩2
3 способа мониторинга изменений лог-файлов в Java
Изучая механизм правил (англ. Rule Engine), следует учитывать следующее обстоятельство: в случае хранения правил в формате файлов необходимо контролировать конкретную директорию или файл, чтобы проверять их на предмет изменений и затем загружать.
Похожие принципы действуют и в других бизнес-сценариях, таких как динамическая загрузка конфигурационных файлов, мониторинг лог-файлов и файлов FTP (англ. File Transfer Protocol, протокол передачи файлов).
В статье мы рассмотрим 3 способа решения этой задачи.
Читать статью
Изучая механизм правил (англ. Rule Engine), следует учитывать следующее обстоятельство: в случае хранения правил в формате файлов необходимо контролировать конкретную директорию или файл, чтобы проверять их на предмет изменений и затем загружать.
Похожие принципы действуют и в других бизнес-сценариях, таких как динамическая загрузка конфигурационных файлов, мониторинг лог-файлов и файлов FTP (англ. File Transfer Protocol, протокол передачи файлов).
В статье мы рассмотрим 3 способа решения этой задачи.
Читать статью
Telegraph
3 способа мониторинга изменений лог-файлов в Java
Изучая механизм правил (англ. Rule Engine), следует учитывать следующее обстоятельство: в случае хранения правил в формате файлов необходимо контролировать конкретную директорию или файл, чтобы проверять их на предмет изменений и затем загружать. Похожие…
👍3🔥3🤩1
Глубокое погружение в Java Memory Model
Я провел в изучении JMM много часов и теперь делюсь с вами знаниями в простой и понятной форме.
В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да, в интернете накопилось достаточно много информации про JMM/happens-before, и, кажется, что очередную статью про такую заезженную тему можно пропускать мимо. Однако я постараюсь дать вам намного большее и глубокое понимание JMM, чем большинство информации в интернете. После прочтения этой статьи вы будете уверенно рассуждать о таких вещах как memory ordering, data race и happens-before. JMM — сложная тема и не стоит верить мне на слово, поэтому большинство моих утверждений подтверждается цитатами из спеки, дизассемблером и jcstress тестами.
Читать статью
Я провел в изучении JMM много часов и теперь делюсь с вами знаниями в простой и понятной форме.
В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да, в интернете накопилось достаточно много информации про JMM/happens-before, и, кажется, что очередную статью про такую заезженную тему можно пропускать мимо. Однако я постараюсь дать вам намного большее и глубокое понимание JMM, чем большинство информации в интернете. После прочтения этой статьи вы будете уверенно рассуждать о таких вещах как memory ordering, data race и happens-before. JMM — сложная тема и не стоит верить мне на слово, поэтому большинство моих утверждений подтверждается цитатами из спеки, дизассемблером и jcstress тестами.
Читать статью
👍8👏2
JDBC vs JPA
В мире разработки программного обеспечения очень любят аббревиатуры. И работа с базами данных в Java — не исключение.
Наличие множества вариантов работы с БД может запутать: что же я использую на самом деле? Все используют JPA? Мне тоже стоит его использовать? Но я еще слышал о Spring Data JDBC. А как насчет Spring Data JPA?
В этой статье мы поговорим о JDBC и JPA: истории появления и некоторых особенностях.
Читать статью
В мире разработки программного обеспечения очень любят аббревиатуры. И работа с базами данных в Java — не исключение.
Наличие множества вариантов работы с БД может запутать: что же я использую на самом деле? Все используют JPA? Мне тоже стоит его использовать? Но я еще слышал о Spring Data JDBC. А как насчет Spring Data JPA?
В этой статье мы поговорим о JDBC и JPA: истории появления и некоторых особенностях.
Читать статью
Telegraph
JDBC vs JPA
В мире разработки программного обеспечения очень любят аббревиатуры. И работа с базами данных в Java — не исключение. Наличие множества вариантов работы с БД может запутать: что же я использую на самом деле? Все используют JPA? Мне тоже стоит его использовать?…
👍10
Разрешение конфликтов слияния Git в IntelliJ IDEA
В статье рассказывается на примере, как в IDEA разрешать проблемы, возникающие при слиянии разных веток.
Читать статью
В статье рассказывается на примере, как в IDEA разрешать проблемы, возникающие при слиянии разных веток.
Читать статью
👍12
Друзья, вашему вниманию предлагается подборка Java-новостей от InfoQ:
- релиз Amazon Corretto 19
- релиз LibericaJDK 19
- релиз Jakarta EE
- релиз Spring Boot 2.7.4 и 2.6.12
- релиз Quarkus, Payara, Micronaut
и д. р.
Приятного чтения!
Читать статью
- релиз Amazon Corretto 19
- релиз LibericaJDK 19
- релиз Jakarta EE
- релиз Spring Boot 2.7.4 и 2.6.12
- релиз Quarkus, Payara, Micronaut
и д. р.
Приятного чтения!
Читать статью
👍6🔥3
Создание PDF-документа на Java и Spring
Друзья, пришло время практики!
Сегодня мы научимся с помощью eDocGen, Java и Spring создавать pdf-документы на основе шаблона из JSON/XML/БД.
Хорошей практики! 😃
Читать статью
Друзья, пришло время практики!
Сегодня мы научимся с помощью eDocGen, Java и Spring создавать pdf-документы на основе шаблона из JSON/XML/БД.
Хорошей практики! 😃
Читать статью
👍7
Друзья, вашему вниманию предлагается новая подборка Java-новостей от InfoQ:
✔️ Брайан Гетц предложил упростить Java
✔️ BellSoft выпустил ОС Alpaquita Linux
✔️ релиз WildFly 27 Beta1
✔️ Red Hat выпустил Quarkus 2.13.0.Final
✔️ релиз Hibernate ORM 5.6.12.Final
✔️ JetBrains выпустил Kotlin 1.7.20
и д.р.
Приятного чтения!
Читать статью
✔️ Брайан Гетц предложил упростить Java
✔️ BellSoft выпустил ОС Alpaquita Linux
✔️ релиз WildFly 27 Beta1
✔️ Red Hat выпустил Quarkus 2.13.0.Final
✔️ релиз Hibernate ORM 5.6.12.Final
✔️ JetBrains выпустил Kotlin 1.7.20
и д.р.
Приятного чтения!
Читать статью
👍7🔥1