Jmix.ru – Telegram
Jmix.ru
646 subscribers
358 photos
44 videos
1 file
436 links
Jmix — платформа быстрой разработки B2B и B2G веб-приложений на Java.

🤝 Наш коммьюнити-чат: https://news.1rj.ru/str/jmixchat

⚙️ Начать бесплатно: https://www.jmix.ru/get-started/
Download Telegram
Мастер-класс «Инструменты Jmix BPM для бизнес-аналитика»

18 февраля Станислав Макаров, продуктовый аналитик Jmix, проведет мастер-класс, где вы сможете узнать, как аналитик на платформе Jmix создает прототип автоматизированного процесса, который потом с помощью разработчиков станет частью корпоративной информационной системы.

Особенность процессных приложений в том, что они создаются совместно аналитиками и разработчиками. Для разработчиков мы выступаем много и часто, рассказываем о разных аспектах использования платформы Jmix. Но чтобы вся проектная команда работала эффективно, нужно вовлечь в поток разработки и аналитиков, чем мы активно занимаемся.

Мастер-класс пройдет на площадке ABPMP – Ассоциации BPM-профессионалов.
Регистрация по ссылке
https://abpmp.org.ru/events/jmix4analyst/

#мероприятия
🔥12
Сущности по наследству 🌟

Наследование — это один из ключевых принципов ООП. Естественно, сущности тоже можно наследовать. Казалось бы, что тут сложного, зачем нужен специальный гайд? Но все не так просто! Сущности Jmix — это не обычные Java-классы, они связаны с реляционной базой данных и имеют свои особенности.

Вот основные стратегии наследования:

🔹 Mapped Superclass:
- Класс-родитель не имеет своей таблицы в базе данных.
- Используется как шаблон для классов-потомков.
- В дочерних классах доступны общие поля класса-родителя плюс свои специфические.

🔸 Table-Per-Class Inheritance:
- Каждый подкласс имеет свою собственную таблицу, которая также включает поля класса-родителя.
- Позволяет выполнять полиморфные запросы в отличие от Mapped Superclass.
- Может быть менее эффективным по производительности из-за множества таблиц.

🔹 Single Table Inheritance:
- Все классы (родитель и потомки) хранятся в одной таблице.
- Таблица содержит все атрибуты всех подклассов.
- Упрощает управление, но может привести к большим таблицам.

🔸 Joined Table Inheritance:
- Родительская сущность и ее наследники хранятся в отдельных таблицах.
- Каждая таблица содержит только специфичные поля для класса.
- Упрощает структуру базы данных, но усложняет запросы.

Эти стратегии позволяют разработчикам выбирать наиболее подходящий подход к проектированию сущностей в зависимости от требований приложения и бизнес-логики. 💡

Читайте новый гайд Data Modeling: Entity Inheritance и стройте свои генеалогические древа сущностей!

#гайд
👍13🔥31
Приглашение к холивару: BPMS жив или мертв? 🤔

У нас есть мнение, что скорее мертв, чем жив. Почему так, читайте в нашей новой статье на Хабре — BPMS мёртв в энтерпрайзе. 📉

Да, только не надо путать BPM как концепцию и BPMS как класс продуктов. Управление процессами – это необходимый компонент любой КИC. Но старые неповоротливые монолиты BPMS не вписываются в современный конвейер разработки ПО. 🏗

На смену им приходят решения на основе open source BPM-движков. Такие как Jmix BPM, с которым вы давно знакомы. Или как наш новый продукт OpenBPM. 🚀

Вы о нем еще не слышали? Да, это сюрприз! 🎉 Хотите узнать больше? – Регистрируйтесь на презентацию 5 февраля.

А еще подписывайтесь на наш новый канал, который посвящен тематике управления бизнес-процессами! 📢 BPM Developers

#статья
🔥10
🤩Внимание! Всем, кто хочет быстро разобраться в Jmix UI!🤩
На Алтае начали выпускать уникальный чай. 2 чайников в день достаточно для офигительного настроения и просветления в области Jmix UI. Побочный эффект - кристальная ясность концепций Spring Security.
По вопросам индивидуальных и корпоративных заказов обращаться к нашему партнеру КС-Консалтинг г. Барнаул.
#юмор
👍18🔥5🤩2
Разбираемся с отношениями "многие ко многим"

В мире всё со всем связано 🌍. Даже в нашем любимом примере Pet Clinic 🐾 один ветеринар может иметь несколько специальностей, а каждой специальностью может обладать несколько докторов 🩺.

Когда вы проектируете модель данных, на ER-диаграмме запросто можно нарисовать связь «многие ко многим». Но вот беда – реляционные БД 🗄️ не могут нативно реализовать такую связь. И приходится изощряться 🤔.

Есть два способа, как это сделать в Jmix:

Непосредственно между сущностями – на самом деле, промежуточная таблица 📋 в этом случае всё равно создается, просто Jmix сделает это за вас .

Через промежуточную сущность – вы сами создаете промежуточную сущность 🧩, которая развяжет эти множественные отношения. В этом случае на связь можно навесить дополнительные атрибуты, например, дату её создания 📅 и срок действия .

А ещё эти связи могут быть одно- или двунаправленными 🔄, от чего зависит их доступность на уровне Java/JPA . И важно, кто связью владеет – владение определяет, какая сущность управляет join-таблицей для обновления записей 🛠️.

Но таблицы – это ещё полдела 📂. Вам же ещё надо как-то отобразить эти множественные связи в интерфейсе 🖥️, и тут тоже не всё так однозначно!

В руководстве Data Modeling: Many-to-Many Associations мы рассмотрим оба подхода, предоставив практические примеры для иллюстрации их реализации в приложении Jmix 🚀.

#гайд 📚
👍17
Композиции в Jmix: за пределами обычных ассоциаций 🌟

В отличие от ассоциаций JPA, таких как @OneToMany, @Composition является концепцией, специфичной для Jmix, и не имеет прямого эквивалента в JPA. 🛠

В чем суть:

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

🔹 Это упрощает управление жизненным циклом и помогает поддерживать согласованность структуры данных без необходимости дополнительного ручного вмешательства.

🔹 Также, композиции позволяют строить более удобный пользовательский интерфейс, позволяя обрабатывать связанные сущности в одном экране.

Самый простой пример – это заказ и позиции в заказе. 🛒 Отдельная строка заказа не имеет смысла вне контекста родительской сущности.

В руководстве Data Modeling: Composition вы узнаете о связи Composition в Jmix — ключевой функции, которая позволяет создавать тесно связанные отношения между сущностями с управлением их жизненным циклом. Мы сравним Compositions с Associations, выделяя их основные различия и случаи применения каждого из них. ⚖️

Руководство охватывает два основных типа Compositions:
🔸 One-to-Many ➡️ Один ко многим
🔸 One-to-One ➡️ Один к одному

На практических примерах вы поймёте, как настроить и эффективно использовать Compositions в своих приложениях Jmix для обеспечения согласованности данных и интуитивных рабочих процессов. 💡

#гайд
🔥14👍5
Уважаемое сообщество Jmix разработчиков!

Мы рады анонсировать презентацию нашей open source платформы для управления бизнес-процессами.

OpenBPM помогает формировать команды процессной разработки и организовать совместную работу. Мы собрали весь наш опыт в BPM, который в итоге воплотился в новый продукт.

5 февраля в 14:00 МСК мы проведем онлайн презентацию, где расскажем в чем заключается суть продукта, почему это не конкурент Jmix, и в каких случаях OpenBPM наиболее применим.

Предвосхищая вопросы, платформа OpenBPM — это новый самостоятельный продукт компании Haulmont, не влияющий на развитие Jmix.

Регистрируйтесь на презентацию и приходите послушать и задать вопросы.
Для всех зарегистрированных запись будет доступна после мероприятия.

С уважением,
Команда платформы Jmix


#мероприятия
👍174🔥3
Три месяца назад вышла версия Jmix 2.4 с новыми (классными!) функциями и улучшениями. Надеемся, она вам понравилась!

Об этих фичах мы уже писали в нашем телеграм-канале, держите весь список, чтоб было удобнее:

🔹 REST Data Store – чужие сущности как родные!
🔹 В Jmix 2.4 есть канбан-доска!
🔹 Дополнение Calendar
🔹 Асинхронные задачи UiAsyncTasks
🔹 «Запрет определенных действий» с помощью UI Constrains

🚀Расскажите, какими адд-онами вы успели воспользоваться в своих проектах!

#обновления
👍7
🎉Вперед, к полиглотной персистентности!

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

И, возможно, вы думали, что было бы неплохо использовать, допустим, MongoDB 🍃 в своем Jmix-проекте, чтобы эти кейсы реализовать. Но скорее всего вас останавливали сложности интеграции.🤯

Технически есть два варианта:

1️⃣ Взять обычные UI Data-компоненты и написать для них кастомные методы loadDelegate и saveDelegate, чтобы обойти обращения к DataManager И вуаля – у вас есть CRUD-операции для нереляционных данных. 🏆

2️⃣ Заморочиться и написать свой кастомный DataStore для той же MongoDB🍃. Этот подход, в отличие от первого, поддерживает высокоуровневые функции Jmix, включая систему безопасности и компонент genericFilter. Но и потрудиться придется побольше.😓

В нашем новом гайде MongoDB Integration in Jmix подробно по шагам и с примерами показан первый вариант. Во-первых, он проще. В принципе этого уже достаточно, если вас интересует быстрый результат.

Скачивайте демо-проект PetClinc с логами в MongoDB, экспериментируйте и применяйте в своих проектах! Теперь ваше приложение будет обладать полиглотной персистентностью💡 – то есть, уметь работать с БД различных типов.

#гайд
🔥42
🔐 Jmix + Social Login: легко, удобно, безопасно! 🚀

Jmix уже из коробки дает мощную систему безопасности и функции управления пользователями. А еще можно подключить авторизацию через соцсети — GitHub, Google и другие.

🔥 Что это дает?

Пользователи заходят в систему не создавая лишних аккаунтов
Поддержка OAuth и OpenID Connect — быстро и безопасно
Интеграция с LDAP/Active Directory и кастомными решениями

Хотите внедрить Social Login в свое Jmix-приложение?
🔗Следуйте нашему гайду — разберем всё по шагам! 💡

Что мы будем делать:

🔸Создадим обычное full-stack приложение Jmix
🔸Сконфигурируем Authentication Providers:
GitHub OAuth и Google OpenID
🔸Доработаем сущность User, чтобы работать с токенами
🔸Настроим OAuth2 Login и экран входа в приложение

В общем-то и все!🎉

Да, еще хотели лишний раз напомнить о безопасности🛡️:

Когда будете экспериментировать, помните, что не стоит выкладывать в публичные репозитории секретные ключи! 🚫🔒

#гайд
👍8
Долой ручную работу! Интеграция на основе OpenAPI стала проще в Jmix 2.4!

Приготовьтесь, сейчас будет немножко сложно😅, но оно того стоит! 💪 Ведь если говорить о разработке серьезного корпоративного приложения 🏢, редко когда удается остаться в рамках одного приложения. Скорее всего это будет мульти-модульное приложение 🧩, а то даже и с микросервисами.

Конечно, путь понятен – берем разнообразные API 🔗 и интегрируем, интегрируем, интегрируем. Хитрости особо никакой нет, просто очень много рутинной работы 🤖.
Даже если вы используете инструменты OpenAPI ⚙️, на стороне Jmix до недавних пор приходилось делать все вручную ✍️. Потому что никакой Swagger не сгенерит за вас сущности и все прочее в Jmix Studio.

Но с релизом 2.4 все изменилось! 🎉 Теперь Jmix Studio предоставляет расширенную поддержку интеграции на основе OpenAPI, включая настройку генератора OpenAPI-клиента в вашем проекте, автоматическую генерацию DTO-сущностей, мапперов и промежуточных сервисов 🪄.

Однако новых фич так много, что разобраться методом проб и ошибок (или как у нас говорят, методом тыка👆) займет слишком много времени.

Поэтому мы подготовили для вас подробный гайд 📚 Интеграция приложений с использованием OpenAPI, где все расписано по шагам 👣.

Кстати, вы же помните, что Jmix это не лоукод, да? 😉 Поэтому в нашем гайде рассказано не только, как пользоваться визардами 🧙♂️, но и даны примеры, как можно доработать код вручную 👨‍💻 – ведь без этого в реальных проектах никак не обойтись.

Когда вы пройдете этот демо-пример, то будете готовы внедрять интеграции на основе OpenAPI в своих собственных проектах! 🚀


#гайд
🔥9👍1
🎉Jmix Community Meetup: 6 марта 2025, оффлайн

Мы ждем окончания зимы не только из-за надоевших серости и холода, но и из-за первого технологического митапа Jmix в начале весны!

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

Выступления будут огонь!🔥 Подробности тут.

Это супер возможность встретиться с частью команды Jmix, получить ответы на давно волнующие вопросы и обсудить будущее развитие технологии.🚀

Участие бесплатное, требуется только регистрация здесь.

Будем рады всех видеть! До встречи 6 марта в 18:00 часов в Москве!😉
🔥7👍3
Фронт и бэк на Jmix: делим приложение по слоям 🧩

Как известно, Jmix — это full-stack фреймворк, и это его сильная сторона. На нем можно писать корпоративные приложения, которые работают с базой данных и реализуют бизнес-логику, одновременно предоставляя пользовательский интерфейс.

Такой подход ускоряет разработку 🚀 и позволяет сократить размер команды, за что он нравится многим заказчикам. Но зачастую архитектурные требования диктуют, чтобы бэк был отделен от фронта. Это может быть связано с безопасностью, масштабируемостью, разнообразием интеграций и так далее. На самом деле, раздельный бэк и фронт встречаются даже чаще, чем монолитные приложения.

Естественно, это было в Jmix изначально. Вы можете по отдельности разрабатывать бэкенд, выбрав на старте шаблон REST Service Application, где совсем не будет UI 🙅. И также можно делать фронтенд, просто не утяжеляя его персистентными JPA-сущностями и бизнес-логикой, а чтобы показывать пользователю данные на экранах, применять DTO.

В релизе Jmix 2.4 палитра инструментов для этих целей обогатилась: теперь кроме давно известного аддона Jmix REST API появился еще аддон REST DataStore 🛠️.

А чтобы быстрее разобраться, как применять разделение приложения на слои, мы подготовили специальный гайд📚 Separating Application Tiers, где вы найдете подробные инструкции по этой теме.

Теперь вы готовы строить масштабируемые и безопасные приложения с разделением на фронт и бэк!

#гайд
👍13🔥4
Jmix.ru pinned «🎉Jmix Community Meetup: 6 марта 2025, оффлайн Мы ждем окончания зимы не только из-за надоевших серости и холода, но и из-за первого технологического митапа Jmix в начале весны! Мы усердно готовим доклады по экспертизе наших разработчиков, выпущенным и планируемым…»
🔥🔥🔥 Уже завтра! Но еще можно успеть!

Мастер-класс «Инструменты Jmix BPM для бизнес-аналитика»

18 февраля Станислав Макаров, продуктовый аналитик Jmix, проведет мастер-класс, где вы сможете узнать, как аналитик на платформе Jmix создает прототип автоматизированного процесса, который потом с помощью разработчиков станет частью корпоративной информационной системы.

Особенность процессных приложений в том, что они создаются совместно аналитиками и разработчиками. Для разработчиков мы выступаем много и часто, рассказываем о разных аспектах использования платформы Jmix. Но чтобы вся проектная команда работала эффективно, нужно вовлечь в поток разработки и аналитиков, чем мы активно занимаемся.

Мастер-класс пройдет на площадке ABPMP – Ассоциации BPM-профессионалов.
Регистрация по ссылке

https://abpmp.org.ru/events/jmix4analyst/

#мероприятия
👍7🔥2
📢 Вебинар Jmix BPM: Событийный подход в разработке процессных приложений 2.0
12 марта 2025, онлайн


Спикер: Станислав Макаров, продуктовый аналитик платформы Jmix
В этом году мы запланировали для вас много полезных вебинаров по Jmix BPM, и первый из них - это продолжение темы про событийно-ориентированный подход к автоматизации бизнес-процессов.

Напомним коротко, о чем говорили на прошлом вебинаре:

🔸Событийный подход отражает реалии окружающего мира. Бизнес-процессы должны на эти события реагировать.
🔸В нотации BPMN эти возможности были заложены изначально, однако надо немного перестроить способ мышления и отойти от привычного императивного подхода.
🔸Иначе BPMN диаграммы будут лишь украшением кабинетов, не превращаясь в автоматизированные процессы.

Что будет дальше:

💎Разберем, как брокер сообщений RabbitMQ выступает источником событий для запуска процессов.
💎Как запускаются процессы в ответ на изменение данных и при помощи планировщика Quartz.
💎Как используются внутренние события Jmix для управления интерфейсом и бизнес-логикой

БОНУС🎉: Вы увидите в действии компоненты для работы с картами (Maps) и графиками (Charts) и другие возможности платформы Jmix.

🔗 Регистрация по ссылке

#мероприятия
🔥9
Мобильные PWA-приложения на Jmix? Это реально!🚀

На первый взгляд может показаться, что Jmix не уделяет должного внимания мобильным устройствам. Это отчасти справедливо, если говорить о версии Jmix 1.x на Vaadin 8. Возможности для создания адаптивных мобильных интерфейсов присутствовали, но требовали значительной ручной работы, что снижало интерес разработчиков к такому подходу.

Как правило, разработка мобильных приложений осуществлялась с использованием single-page application фреймворков на JavaScript, а Jmix играл лишь роль бэкенда.

С выходом Jmix 2.0 и переходом на Vaadin 24 возможности по созданию мобильных приложений значительно улучшились. Поддержка прогрессивных веб-приложений стала ключевой функцией, способствуя быстрой и экономичной мобильной разработке.

Теперь даже один разработчик может создавать как веб-приложение, так и мобильное приложения схожее по функционалу с нативным.
В этой статье мы обсудим значимость и экономическую целесообразность мобильных приложений, а также взглянем на Wind Turbines – мобильное приложение, разработанное с помощью Jmix.

📚Читайте в нашем блоге новую статью Сергея Юдаева
Экономически эффективные мобильные приложения с Jmix 2

#статья
🔥12👍3
Media is too big
VIEW IN TELEGRAM
Jmix Meetup приближается! 🎉

Виктор Фадеев, product manager Jmix, назвал ТРИ причины, по которым вы обязательно должны прийти! Ждем всех 6 марта в Москве! 🫶🏻

#мероприятия
🔥14👍98
❄️ Java-конференция из Сибири "SnowOne"

1 марта встретимся на конференции для java-сообщества "SnowOne". Как обещают организаторы, будут "доклады - хардкорные, атмосфера - ламповая."
 
Программа мероприятия очень объемная, каждый найдет то, что ему по душе, но мы особенно рекомендуем посетить выступление Дмитрия Черкасова, DevRel Jmix, с темой "Kotlin Frontend: как создавать фулстек-приложения с UI и не выглядеть фриком".

Выступление Димы 1 марта в 12:15 – 13:15 (UTC+4), Новосибирск
 
Купить билет на конференцию

#мероприятия
👍10🔥52🎉1