Разбор нововведений, ожидаемых в Java 19
На данный момент утверждены все нововведения, ожидаемые в Java 19, а именно:
- Record Patterns (Preview)
- Linux/RISC-V Port
- Virtual Threads (Preview)
- Structured Concurrency (Incubator)
и т. д.
В статье дается описание каждой новой функции языка.
Читать статью
На данный момент утверждены все нововведения, ожидаемые в Java 19, а именно:
- Record Patterns (Preview)
- Linux/RISC-V Port
- Virtual Threads (Preview)
- Structured Concurrency (Incubator)
и т. д.
В статье дается описание каждой новой функции языка.
Читать статью
👍7
Считаем уникальные IPv4 адреса
Как создавать быстрые и эффективные алгоритмы? В статье, на примере задачи по подсчёту уникальных IPv4 адресов, рассматриваются приёмы и методы обработки больших объёмов данных. Вы узнаете, как написать код, работающий в десятки раз быстрее и использующий в несколько десятков раз меньше памяти, чем "наивные" алгоритмы.
Читать статью
Как создавать быстрые и эффективные алгоритмы? В статье, на примере задачи по подсчёту уникальных IPv4 адресов, рассматриваются приёмы и методы обработки больших объёмов данных. Вы узнаете, как написать код, работающий в десятки раз быстрее и использующий в несколько десятков раз меньше памяти, чем "наивные" алгоритмы.
Читать статью
Telegraph
Считаем уникальные IPv4 адреса
Эта задача была предложена мне на одном из курсов по Java. В статье излагаю своё решение, а также анализ его эффективности. Обработка IP адресов необходима для многих проектов, и я надеюсь, что алгоритмы, описанные в этой статье, могут быть полезны. Задача…
👍6🔥3😁1
К микросервисам через reverse engineering и кодогенерацию
Разрабатывая информационную систему с нуля, мы можем выбрать практически любой вариант технологии и архитектуры в целом, в том числе — принцип взаимодействия частей системы. Но что делать, если система уже есть и у неё довольно богатая история? Как большую энтерпрайз систему, которая развивалась в режиме монолита, разделить на микросервисы и организовать взаимодействие между ними?
Часто основная сложность заключается в том, что нужно одновременно поддерживать уже существующий код монолита и параллельно внедрять новые принципы и подходы. В статье я расскажу, как мы в Wrike, используя reverse engineering и немного кодогенерации, реализовали первые шаги по выделению отдельных микросервисов и запустили первый «почти настоящий» BFF-сервис в рамках нашего монолита.
Читать статью
Разрабатывая информационную систему с нуля, мы можем выбрать практически любой вариант технологии и архитектуры в целом, в том числе — принцип взаимодействия частей системы. Но что делать, если система уже есть и у неё довольно богатая история? Как большую энтерпрайз систему, которая развивалась в режиме монолита, разделить на микросервисы и организовать взаимодействие между ними?
Часто основная сложность заключается в том, что нужно одновременно поддерживать уже существующий код монолита и параллельно внедрять новые принципы и подходы. В статье я расскажу, как мы в Wrike, используя reverse engineering и немного кодогенерации, реализовали первые шаги по выделению отдельных микросервисов и запустили первый «почти настоящий» BFF-сервис в рамках нашего монолита.
Читать статью
👍5
Hibernate Best Practices для начинающих
В данной статье я не ставлю цель подробно описать Hibernate, такого материала полно в сети. Это скорее справочник, в который можно заглянуть и увидеть возможные проблемные места и их решение, который позволит вам не допустить грубых ошибок при использовании Hibernate. Статья рассчитана на читателя уже знакомого с Hibernate и Spring.
Читать статью
В данной статье я не ставлю цель подробно описать Hibernate, такого материала полно в сети. Это скорее справочник, в который можно заглянуть и увидеть возможные проблемные места и их решение, который позволит вам не допустить грубых ошибок при использовании Hibernate. Статья рассчитана на читателя уже знакомого с Hibernate и Spring.
Читать статью
👍7
Осваиваем реактивное программирование на Java
Асинхронный ввод/вывод уже какое-то время используется в обиходе. При этом разные языки реализуют его по-разному, но все предоставляют способ уменьшить количество потоков, давая вроде бы полную конкурентность. JavaScript занимался этим с самого начала. При использовании всего одного потока будет мало хорошего, отправь вы в продакшн блокирующий вызов.
Несмотря на то, что реактивный Java все больше привлекает интерес разработчиков, большинство знакомых мне программистов по-прежнему живут в многопоточной парадигме. Почему? Принцип потоков относительно легко усвоить. Реактивное же программирование требует переосмысления многих привычных нам принципов программирования. Попытка объяснить, почему асинхронный ввод/вывод является лучшей альтернативой, подобна попытке объяснить сферичность Земли тому, кто всегда верил в ее плоскую природу.
Читать статью
Асинхронный ввод/вывод уже какое-то время используется в обиходе. При этом разные языки реализуют его по-разному, но все предоставляют способ уменьшить количество потоков, давая вроде бы полную конкурентность. JavaScript занимался этим с самого начала. При использовании всего одного потока будет мало хорошего, отправь вы в продакшн блокирующий вызов.
Несмотря на то, что реактивный Java все больше привлекает интерес разработчиков, большинство знакомых мне программистов по-прежнему живут в многопоточной парадигме. Почему? Принцип потоков относительно легко усвоить. Реактивное же программирование требует переосмысления многих привычных нам принципов программирования. Попытка объяснить, почему асинхронный ввод/вывод является лучшей альтернативой, подобна попытке объяснить сферичность Земли тому, кто всегда верил в ее плоскую природу.
Читать статью
Telegraph
Осваиваем реактивное программирование на Java
Асинхронный ввод/вывод уже какое-то время используется в обиходе. При этом разные языки реализуют его по-разному, но все предоставляют способ уменьшить количество потоков, давая вроде бы полную конкурентность. JavaScript занимался этим с самого начала. При…
👍4
🔥 Бесплатная Live coding сессия, где будем решать задачу с собеседования в международную FinTech компанию
В прямом эфире Роман Оборин, Senior Java Developer в BNP Paribas и преподаватель курса Middle Java Dev, проведет Live coding сессию по написанию объектно-ориентированного кода на Java, покрытого разными типами тестов: Unit, Integration, Stress.
На Live сoding ты сможешь понаблюдать, как пишет код Senior-разработчик, прокомментировать процесс и решить реальную задачу, которую дают на собеседованиях. Ну и конечно, прокачаешь свои hard skills:
— Структурируешь знания по принципам SOLID
— Прокачаешь знания по разным видам тестирования, в том числе многопоточных программ
— Подготовишься к техническому интервью с этапом Live coding
🚀 Стартуем 18 августа в 19:00 по мск
Регистрируйся бесплатно: https://cutt.ly/RZ148dT
В прямом эфире Роман Оборин, Senior Java Developer в BNP Paribas и преподаватель курса Middle Java Dev, проведет Live coding сессию по написанию объектно-ориентированного кода на Java, покрытого разными типами тестов: Unit, Integration, Stress.
На Live сoding ты сможешь понаблюдать, как пишет код Senior-разработчик, прокомментировать процесс и решить реальную задачу, которую дают на собеседованиях. Ну и конечно, прокачаешь свои hard skills:
— Структурируешь знания по принципам SOLID
— Прокачаешь знания по разным видам тестирования, в том числе многопоточных программ
— Подготовишься к техническому интервью с этапом Live coding
🚀 Стартуем 18 августа в 19:00 по мск
Регистрируйся бесплатно: https://cutt.ly/RZ148dT
👍2
Варианты использования Java ML библиотек совместно с Spring, Docker, Spark, Rapids, CUDA
В данной статье рассматривается способ использования GPU nVidia с технологией CUDA в Docker-контейнерах для распределенной тренировки моделей машинного обучения на нескольких машинах. Цель статьи - показать вариант использования Big Data Tool Apache Spark в Docker-контейнерах, совместно с акселератором GPU вычислений Rapids на устройствах nVidia CUDA, с применением библиотек DJL, Spark ML, XGBoost, в приложении Spring Boot на Java 8 (требование Rapids), на нескольких машинах под управлением ОС Windows 10 Pro для решения задачи тренировки моделей машинного обучения в распределенной системе.
Читать статью
В данной статье рассматривается способ использования GPU nVidia с технологией CUDA в Docker-контейнерах для распределенной тренировки моделей машинного обучения на нескольких машинах. Цель статьи - показать вариант использования Big Data Tool Apache Spark в Docker-контейнерах, совместно с акселератором GPU вычислений Rapids на устройствах nVidia CUDA, с применением библиотек DJL, Spark ML, XGBoost, в приложении Spring Boot на Java 8 (требование Rapids), на нескольких машинах под управлением ОС Windows 10 Pro для решения задачи тренировки моделей машинного обучения в распределенной системе.
Читать статью
👍3
Основы Java за 14 дней вместе с наставником – практикующим разработчиком.
10 учебных модулей, 62 урока с практикой в браузере, вебинары и лайвкодинг-сессия. Не важно, сколько вам лет, какое у вас образование и кем вы работаете сейчас.
Полная стоимость курса всего 990 рублей 🙌
Начинаем 16 августа.
Занимайте место в группе!
10 учебных модулей, 62 урока с практикой в браузере, вебинары и лайвкодинг-сессия. Не важно, сколько вам лет, какое у вас образование и кем вы работаете сейчас.
Полная стоимость курса всего 990 рублей 🙌
Начинаем 16 августа.
Занимайте место в группе!
👍2
Vector API в Java: краткий обзор и тестирование
Некоторое время назад попалась на глаза статья про Vector API в Java.
Прочитал, заинтересовался. Наконец, недавно дошли руки посмотреть, что же это такое и как работает.
Результаты немного неоднозначные.
Читать статью
Некоторое время назад попалась на глаза статья про Vector API в Java.
Прочитал, заинтересовался. Наконец, недавно дошли руки посмотреть, что же это такое и как работает.
Результаты немного неоднозначные.
Читать статью
👍2
Java, реактивное программирование, Reactor, Spring Cloud Function, Streams, etc…
Статья является кратким обзором компонентов Spring Framework, позволяющих реализовывать программы в терминах функций асинхронной обработки сообщений. И ориентирована на разработчиков, уже знакомых со Spring Framework, но ещё не имеющих опыта построения реактивных приложений с декларативным управлением функциями-компонентами.
Читать статью
Статья является кратким обзором компонентов Spring Framework, позволяющих реализовывать программы в терминах функций асинхронной обработки сообщений. И ориентирована на разработчиков, уже знакомых со Spring Framework, но ещё не имеющих опыта построения реактивных приложений с декларативным управлением функциями-компонентами.
Читать статью
👍4
Статический анализ кода в современной Java-разработке
Сегодня я хочу затронуть тему, которая будет полезна как Java-разработчикам, так и начинающим тех- и тимлидам. Я расскажу о том, как добиться высокого качества кода на вашем Java проекте и перестать волноваться о стилях кодирования.
Если вы идёте по пути подготовки развесистых страничек на wiki по стилям кодирования и правилам оформления кода, то это дурно пахнет. Есть другой более надёжный способ, как защитить вашу кодовую базу и добиться полного соблюдения всех принятых стандартов и соглашений. И это, конечно же, статический анализ кода.
Далее я покажу своё видение того, какие инструменты и в какой конфигурации должны применяться на Java проектах, а особенно в микросервисах.
Читать статью
Сегодня я хочу затронуть тему, которая будет полезна как Java-разработчикам, так и начинающим тех- и тимлидам. Я расскажу о том, как добиться высокого качества кода на вашем Java проекте и перестать волноваться о стилях кодирования.
Если вы идёте по пути подготовки развесистых страничек на wiki по стилям кодирования и правилам оформления кода, то это дурно пахнет. Есть другой более надёжный способ, как защитить вашу кодовую базу и добиться полного соблюдения всех принятых стандартов и соглашений. И это, конечно же, статический анализ кода.
Далее я покажу своё видение того, какие инструменты и в какой конфигурации должны применяться на Java проектах, а особенно в микросервисах.
Читать статью
👍5
Дюк, вынеси мусор! — 4. ZGC
С тех пор, как мы рассматривали принципы работы различных сборщиков мусора, входящих в состав виртуальной машины Java HotSpot, прошел уже не один год. За это время было разработано еще несколько сборщиков, один из которых — ZGC — достаточно давно вышел из разряда экспериментальных и начиная с 15-й версии OpenJDK может похвастаться статусом production ready.
Раз есть такой хороший повод, давайте продолжим цикл, взяв сегодня на рассмотрение этот сборщик.
Читать статью
С тех пор, как мы рассматривали принципы работы различных сборщиков мусора, входящих в состав виртуальной машины Java HotSpot, прошел уже не один год. За это время было разработано еще несколько сборщиков, один из которых — ZGC — достаточно давно вышел из разряда экспериментальных и начиная с 15-й версии OpenJDK может похвастаться статусом production ready.
Раз есть такой хороший повод, давайте продолжим цикл, взяв сегодня на рассмотрение этот сборщик.
Читать статью
👍5
В Java-дайджесте от infoQ за прошедшую неделю представлены:
- новости о JDK 19, JDK 20 и Jakarta EE 10
- обновление Spring WebFlow 3.0.0-M1, Spring Tools 4.15.3
- обновление Payara Platform Enterprise 5.42.0
- обновление Quarkus 2.11.2, MicroStream 7.0.1-beta
- обновление Piranha 22.8.0, JobRunr 5.1.7
- обновление Eclipse Vert.x 4.3.3, Project Reactor 2022.0.0-M5
- обновление Ktor 2.1.0, Apache Camel 3.18.1
Читать статью
- новости о JDK 19, JDK 20 и Jakarta EE 10
- обновление Spring WebFlow 3.0.0-M1, Spring Tools 4.15.3
- обновление Payara Platform Enterprise 5.42.0
- обновление Quarkus 2.11.2, MicroStream 7.0.1-beta
- обновление Piranha 22.8.0, JobRunr 5.1.7
- обновление Eclipse Vert.x 4.3.3, Project Reactor 2022.0.0-M5
- обновление Ktor 2.1.0, Apache Camel 3.18.1
Читать статью
👍6
🧑🏻💻 Какие знания по Java Collections Framework гарантируют 95% при трудоустройстве?
Расскажем на открытом уроке 25 августа. А также разберем:
— Скиллсет Middle Java Developer
— Как нанимают разработчиков в России и за рубежом
— Почему важны soft skills
Спикеры:
🗣 Андрей Сундуков — Senior SRE Engineer в Natera. Больше 15 лет в IT, спикер JPoint 2022.
🗣 Роман Оборин — Senior Java Developer в BNP Paribas. Ex-ведущий разработчик в Сбербанке.
Занятие проходит в рамках курса “Middle Java Developer”.
🚀 Стартуем 25 августа в 19.00 по МСК
Регистрируйся бесплатно: https://cutt.ly/cXjHTzQ
Расскажем на открытом уроке 25 августа. А также разберем:
— Скиллсет Middle Java Developer
— Как нанимают разработчиков в России и за рубежом
— Почему важны soft skills
Спикеры:
🗣 Андрей Сундуков — Senior SRE Engineer в Natera. Больше 15 лет в IT, спикер JPoint 2022.
🗣 Роман Оборин — Senior Java Developer в BNP Paribas. Ex-ведущий разработчик в Сбербанке.
Занятие проходит в рамках курса “Middle Java Developer”.
🚀 Стартуем 25 августа в 19.00 по МСК
Регистрируйся бесплатно: https://cutt.ly/cXjHTzQ
👍5
Правила создания хороших комментариев к коммитам в Git
Правильно написанные сообщения к коммитам в Git помогают сделать проект удобным для дальнейшей доработки и поддержки. В этой статье вы познакомитесь с различными стратегиями написания хороших сообщений и их использования для оптимизации процесса разработки.
Читать статью
Правильно написанные сообщения к коммитам в Git помогают сделать проект удобным для дальнейшей доработки и поддержки. В этой статье вы познакомитесь с различными стратегиями написания хороших сообщений и их использования для оптимизации процесса разработки.
Читать статью
Telegraph
Как правильно писать сообщения коммитов в GIT, чтобы всем было хорошо
Правильно написанные сообщения к коммитам в Git помогают сделать проект с открытым или закрытым исходным кодом удобным для дальнейшей доработки и поддержки. В этой статье вы познакомитесь с различными стратегиями написания хороших сообщений и их использования…
👍4
Изучите основы Java и разработайте трекер продуктивности, даже если никогда прежде не программировали
Java — один из самых востребованных и доступных для освоения языков программирования. Его используют для создания сайтов, мобильных и десктоп-приложений, даже игр.
На бесплатном онлайн-курсе «Основы разработки на Java» за 5 занятий вы изучите основы синтаксиса языка Java и поймёте, подходит ли он вам, а в качестве практики разработаете консольное приложение по типу Pomodoro и перепишете его под Telegram API.
Записаться
Java — один из самых востребованных и доступных для освоения языков программирования. Его используют для создания сайтов, мобильных и десктоп-приложений, даже игр.
На бесплатном онлайн-курсе «Основы разработки на Java» за 5 занятий вы изучите основы синтаксиса языка Java и поймёте, подходит ли он вам, а в качестве практики разработаете консольное приложение по типу Pomodoro и перепишете его под Telegram API.
Записаться
👍6
Spring Data — сила доменных событий
Доменное событие (Domain Event) — одна из идей Domain Driven Design. Как только вы познакомитесь с этой техникой, то больше не захотите обходиться без нее. Итак, в этой статье я покажу пример разработки приложения. Мы пройдем процесс шаг за шагом по мере поступления новых требований. Это должно дать четкое представление о ценности доменных событий.
Наш стек — это Java 11 + Spring Boot + Hibernate.
Читать статью
Доменное событие (Domain Event) — одна из идей Domain Driven Design. Как только вы познакомитесь с этой техникой, то больше не захотите обходиться без нее. Итак, в этой статье я покажу пример разработки приложения. Мы пройдем процесс шаг за шагом по мере поступления новых требований. Это должно дать четкое представление о ценности доменных событий.
Наш стек — это Java 11 + Spring Boot + Hibernate.
Читать статью
Telegraph
Spring Data — сила доменных событий
Доменное событие (Domain Event) — одна из идей Domain Driven Design. Как только вы познакомитесь с этой техникой, то больше не захотите обходиться без нее. Итак, в этой статье я покажу пример разработки приложения. Мы пройдем процесс шаг за шагом по мере…
👍8
❓ Java Guru - вопросы и задачи с собеседований. Канал с помощью которого ты точно получишь оффер!
🔥 Java Библиотека - топовое сообщество Senior Java Developer из EPAM, где он делится советами, статьями и лайфхаками чтобы вы стали топовым разработчиком!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
🔥 Java Библиотека - топовое сообщество Senior Java Developer из EPAM, где он делится советами, статьями и лайфхаками чтобы вы стали топовым разработчиком!
📕 Книги для Java программиста - канал с книгами по Java. Постоянно выходят новинки как на русском так и на английском языке!
👍4🔥2😢1
Глубокое погружение в конфигурацию Spring Boot
Из статьи вы узнаете о настройке Spring Boot в различных средах: Kubernetes, Cloud и т. д.
Читать статью
Из статьи вы узнаете о настройке Spring Boot в различных средах: Kubernetes, Cloud и т. д.
Читать статью
👍4🔥3
Юнга, стоп, у нас кончились ресурсы. Или как мы оптимизировали наши микросервисы
Всем привет. Как вы все знаете после определенных событий у нас случился ресурсный кризис. И появился запрос на оптимизацию потребляемых ресурсов.
Темой и станет оптимизация потребления ресурсов микросервисов и уменьшение времени выполнения наших запросов.
Читать статью
Всем привет. Как вы все знаете после определенных событий у нас случился ресурсный кризис. И появился запрос на оптимизацию потребляемых ресурсов.
Темой и станет оптимизация потребления ресурсов микросервисов и уменьшение времени выполнения наших запросов.
Читать статью
Telegraph
Юнга, стоп, у нас кончились ресурсы. Или как мы оптимизировали наши микросервисы
Всем привет. Как вы все знаете, после определенных событий у нас случился ресурсный кризис. И появился запрос на оптимизацию потребляемых ресурсов. Темой и станет оптимизация потребления ресурсов микросервисов и уменьшение времени выполнения наших запросов.…
👍5🔥3
Подготовка к интервью по Spring Data JPA
Одним из самых популярных модулей в приложениях Spring Boot является Spring Data JPA. Следовательно, у вас почти нет шансов избежать вопросов на собесе, связанных с этой темой. В этой статье будут рассмотрены наиболее часто задаваемые вопросы с подробными ответами по JPA/JDBC/Hibernate.
Читать статью
Одним из самых популярных модулей в приложениях Spring Boot является Spring Data JPA. Следовательно, у вас почти нет шансов избежать вопросов на собесе, связанных с этой темой. В этой статье будут рассмотрены наиболее часто задаваемые вопросы с подробными ответами по JPA/JDBC/Hibernate.
Читать статью
👍6🔥1👏1