К микросервисам через 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
It is Wednesday, my java dudes, или насколько сложно сделать свою JVM
Что делать, если накануне переезда повысилась тревожность, а привычные методы не приносят успокоения?
Конечно же вырабатывать дофамин через решение упоротых инженерных задач!
Мне стало интересно - насколько тяжко было бы сделать свой интерпретатор байт-кода Java? И насколько сложно было бы научить его “новым трюкам”?
Писать я буду на Rust, поэтому и проект, не мудрствуя лукаво, назвал Rjava.
Читать статью
Что делать, если накануне переезда повысилась тревожность, а привычные методы не приносят успокоения?
Конечно же вырабатывать дофамин через решение упоротых инженерных задач!
Мне стало интересно - насколько тяжко было бы сделать свой интерпретатор байт-кода Java? И насколько сложно было бы научить его “новым трюкам”?
Писать я буду на Rust, поэтому и проект, не мудрствуя лукаво, назвал Rjava.
Читать статью
Telegraph
It is Wednesday, my java dudes, или насколько сложно сделать свою JVM
Что делать, если накануне переезда повысилась тревожность, а привычные методы не приносят успокоения? Конечно же вырабатывать дофамин через решение упоротых инженерных задач! Мне стало интересно - насколько тяжко было бы сделать свой интерпретатор байт-кода…
🔥3👍2
Познакомьтесь с востребованным направлением программирования. Освойте базовые инструменты и возможности Java на практике. Узнайте 5 правил синтаксиса языка Java, которые нужно соблюдать каждому начинающему разработчику. Участвуйте в онлайн-интенсиве Skillbox с 25 по 27 августа в 19:00 по московскому времени.
Успейте зарегистрироваться: 👉 https://clc.to/LH6i9g.
Сразу отправим вам на почту чек-лист по знаниям и навыкам, которые необходимы backend-разработчику для трудоустройства.
Кому подойдёт интенсив:
📌 Новичкам в программировании.
Получите базовые навыки программирования на Java, научитесь писать простой код и узнаете основные функции. Попрактикуетесь в разработке, создадите свой первый проект и заложите основу для новой карьеры.
📌Начинающим разработчикам.
Углубите знания о Java и станете увереннее в своих проектах. Разработаете приложение за 3 дня, выявите ошибки, получите практические советы от опытного программиста.
Интенсив ведёт Даниил Пилипенко — основатель и директор центра подбора IT-специалистов SymbioWay.
С 2004 года разрабатывает и руководит разработкой на Java, PHP и во фронтенде. 50 раз выступил на семинарах и конференциях.
🎁 Всем, кто дойдёт до конца интенсива, подарим электронную книгу «Человек + машина» издательства МИФ.
Подключайтесь к прямым эфирам и используйте возможность получить сертификат на 10 000 рублей на любой курс Skillbox.
Сделайте первый шаг к перспективной IT-профессии!
Успейте зарегистрироваться: 👉 https://clc.to/LH6i9g.
Сразу отправим вам на почту чек-лист по знаниям и навыкам, которые необходимы backend-разработчику для трудоустройства.
Кому подойдёт интенсив:
📌 Новичкам в программировании.
Получите базовые навыки программирования на Java, научитесь писать простой код и узнаете основные функции. Попрактикуетесь в разработке, создадите свой первый проект и заложите основу для новой карьеры.
📌Начинающим разработчикам.
Углубите знания о Java и станете увереннее в своих проектах. Разработаете приложение за 3 дня, выявите ошибки, получите практические советы от опытного программиста.
Интенсив ведёт Даниил Пилипенко — основатель и директор центра подбора IT-специалистов SymbioWay.
С 2004 года разрабатывает и руководит разработкой на Java, PHP и во фронтенде. 50 раз выступил на семинарах и конференциях.
🎁 Всем, кто дойдёт до конца интенсива, подарим электронную книгу «Человек + машина» издательства МИФ.
Подключайтесь к прямым эфирам и используйте возможность получить сертификат на 10 000 рублей на любой курс Skillbox.
Сделайте первый шаг к перспективной IT-профессии!
👍6