Как стать автором
Обновить
70.27
Haulmont
Создаем современные корпоративные системы
Сначала показывать

Что нового в Jmix 1.5

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 1.4K
Блог компании Haulmont Open source *Программирование *Java *
Обзор

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

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

Одна из наших разработок, Jmix – это технологическая open-source платформа для быстрой разработки бизнес-приложений на Java. О ней и пойдет речь.  

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 0

Виброакустический мониторинг дорожной обстановки

Время на прочтение 13 мин
Количество просмотров 3.1K
Блог компании Haulmont Big Data *Машинное обучение *Будущее здесь
Кейс

В России впервые в мире внедрили систему акустического мониторинга по волоконно-оптическим линиям на действующей автомобильной дороге протяженностью около 240 километров. Система позволяет в режиме реального времени отслеживать большое количество событий на дороге с точностью до 1 метра по акустическим следам от участников дорожного движения. 

Проект был реализован компанией "СМАРТС", за программную часть отвечала ИТ-компания Haulmont. Собственно далее рассказ пойдет от лица разработчиков о сложностях и нюансах этого уникального проекта.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 24

Путеводитель по ID для JPA сущностей. Часть 1: ID, генерируемые на сервере

Время на прочтение 14 мин
Количество просмотров 27K
Блог компании Haulmont Программирование *Java *

Разработка инструментария – очень познавательное занятие, потому что заставляется задуматься над теми вещами, которые в процессе разработки иногда не замечаешь. Казалось бы, создание @Id атрибута в JPA – рутинное занятие и каждый разработчик может сделать айдишник, даже не включая мозг. Однако, когда начинаешь углубляться в эту тему и пытаться разработать инструмент, который не только помогает писать код для определения ID, но и подсказывает потенциальные проблемы, то всплывает много интересного. И наши соображения, которыми мы руководствовались при разработке JPA Buddy, вылились в этот цикл статей. 

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 5

Подведение итогов первого года от JPA Buddy

Время на прочтение 9 мин
Количество просмотров 3.3K
Блог компании Haulmont Программирование *Java *

2021-й год закончился, уже почти прошел первый месяц 2022-го. Прошлый год стал знаменательным для JPA Buddy: первый публичный релиз, встреча с первым пользователем и рост до одного из самых высокорейтинговых плагинов на IntelliJ IDEA Marketplace. А еще завтра у Баддика первая годовщина — ровно год назад вышел первый публичный релиз! В этой статье мы решили поделиться историей, которая стоит за JPA Buddy, достижениями 2021-го года, некоторыми интересными фактами, которые получили от нашего комьюнити, и планами на 2022-й.  

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Комментарии 15

Прогресс GC от JDK 8 до JDK 17

Время на прочтение 5 мин
Количество просмотров 18K
Блог компании Haulmont Программирование *Java *
Перевод

JDK 17 с нами уже несколько месяцев и он не только про новые возможности языка Java. Прирост производительности в сравнении с более старыми версиями JDK очень заметен. Это становится особенно очевидно, когда мы сравниваем его с предыдущими LTS версиями: JDK 8 и JDK 11. Большая доля в улучшении производительности происходит из новых функций и оптимизаций в JVM, и в этой статье фокус будет на улучшениях, которые были сделаны в области сборки мусора в JVM

Читать статью
Всего голосов 19: ↑19 и ↓0 +19
Комментарии 13

Роковой каскад: JIT, и как обновление Postgres привело к 70% отказов на национальном сервисе критической важности

Время на прочтение 12 мин
Количество просмотров 17K
Блог компании Haulmont PostgreSQL *Microsoft Azure *Облачные сервисы *
Перевод

Сайт мониторинга ситуации по коронавирусу Соединенного Королевства - основной сервис отчетности во время пандемии COVID-19 для всей страны. Он испытывает нагрузку порядка 45–50 миллионов запросов в день и относится к национальным сервисам критической важности.

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

Есть только одно исключение - наша база данных. Сервис работает с использованием специальной версии PostgreSQL: Hyperscale Citus. Тот факт, что наша база данных не соответствует архитектуре active-active — это не следствие того, что мы не знаем, как делать реплики для чтения, скорее - результат логистических проблем, обсуждение которых выходит за рамки этой статьи.

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

И что же могло пойти не так?
Всего голосов 43: ↑41 и ↓2 +39
Комментарии 14

Мягкое удаление в Hibernate: неочевидные факты

Время на прочтение 7 мин
Количество просмотров 12K
Блог компании Haulmont Программирование *Java *
✏️ Технотекст 2021

Мягкое удаление (soft deletion) — это популярная в энтерпрайз разработке стратегия удаления, когда вместо физического стирания та или иная запись помечается как удаленная, а потом фильтруется во всех запросах на чтение. Применение мягкого удаления может быть оправдано целым набором требований: аудит, возможность восстановления удаленных записей, а иногда необходимо уметь удалять данные, при этом сохраняя на них ссылки из других записей… 

Вообщем, нам, как авторам JPA Buddy (плагина для IntelliJ), пришлось с этим плотно разбираться. В этой статье мы рассмотрим детали, которые зачастую не упоминаются в большинстве публикаций по этой теме, хотя крайне важны для принятия решения о способе реализации мягкого удаления в вашем приложении. Давайте посмотрим, с чем вы, вероятно, намучаетесь. 

Читать далее
Всего голосов 26: ↑26 и ↓0 +26
Комментарии 25

Энтерпрайзные проекты убили профессию разработчика

Время на прочтение 7 мин
Количество просмотров 8.7K
Блог компании Haulmont Программирование *Управление продуктом *
Перевод


От переводчика: Фокусом нашей компании всегда была именно разработка корпоративных приложений. В Haulmont мы занимаемся как созданием собственно приложений, так и инструментов, позволяющих разработчикам эффективнее решать задачи, связанные с разработкой таких систем. Например, наш фреймворк Jmix предназначен для корпоративной разработки, мы это заявляем в рекламе и анонсах. И конечно же, пройти мимо статьи с таким названием мы просто не могли. В Jmix есть все, чтобы сделать разработку корпоративных приложений интересной и успешной, кроме одного: он не может повлиять на людей, которые принимают решения о методах и процессах разработки. Почитайте статью, возможно, она заставит вас задуматься, о том, как можно поменять вашу корпоративную разработку, чтобы все участники были довольны.


На эту статью меня вдохновил комментарий на HackerNews, который я больше не могу найти. Суть его была такая: “В то время, как архитектура слишком проработана, код недоработан”. Если кто-то опознает автора, я с радостью проставлю его авторство.


Заранее в свою защиту хочу сказать, что этот текст описывает только мой опыт за последние 10 лет работы консультантом. Возможно, есть методики и фреймворки, которые решают проблемы, описанные ниже, но они либо не применялись, либо применялись неправильно.

Читать дальше →
Всего голосов 22: ↑18 и ↓4 +14
Комментарии 16

Java от Oracle снова бесплатна

Время на прочтение 2 мин
Количество просмотров 41K
Блог компании Haulmont Программирование *Java *
Перевод

Тезисно: 

Java 17 полна решимости пробить барьер, имеющийся на границе Java 8 и Java 9. Теперь, начиная с 17-ой версии, Oracle будет предоставлять Oracle JDK бесплатно, даже для коммерческих целей. Единственное чего делать нельзя — это перепродавать Oracle JDK.

В статье приведен перевод полного текста анонса с блога Oracle: https://blogs.oracle.com/java/post/free-java-license.

Читать текст
Всего голосов 52: ↑49 и ↓3 +46
Комментарии 103

Java 17 и Jakarta EE 9 — минимальные требования для Spring Framework 6

Время на прочтение 3 мин
Количество просмотров 15K
Блог компании Haulmont Программирование *Java *
Перевод


От переводчика: на конференции SpringOne были сделаны довольно важные анонсы относительно нового поколения Spring Framework, на Хабре это почему-то это прошло незамеченным. Судя по всему, в ближайшее время мы будем жить не просто в мире “Java 8/Java 11+”, а появится ещё один водораздел: “Spring 5/Spring 6+”. Чем это грозит? Например, если вы используете Hibernate 5.4, то придется принудительно обновиться на Hibernate 5.5+.


1 сентября на SpringOne было объявлено, что минимальные требования для Spring Framework 6 и Spring Boot 3, который будет доступен в 4 квартале 2022 года, сдвигаются в сторону увеличения:


  • Java 17+ (c Java 8-17 в линейке Spring Framework версии 5.3.x)
  • Jakarta EE 9+ (с Java EE 7-8 в линейке Spring Framework версии 5.3.x)
Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Комментарии 4

5 советов разработчикам без опыта и студентам: как начать работу в IT

Время на прочтение 7 мин
Количество просмотров 14K
Блог компании Haulmont Учебный процесс в IT Карьера в IT-индустрии IT-компании

В Haulmont приходят как опытные специалисты, так и разработчики без опыта. Мы часто общаемся с новичками, которые не знают, с чего начать путь в IT. Собрали полезные ресурсы и рейтинги, а еще спросили руководителей нашей программы по трудоустройству начинающих разработчиков, как изучить рынок, выбрать язык программирования и о чем не забыть на собеседовании. Если вы уже опытный разработчик, будем рады узнать ваш опыт и советы для новичков.

Читать далее
Всего голосов 12: ↑7 и ↓5 +2
Комментарии 9

Kotlin + Hibernate: всё сложно

Время на прочтение 8 мин
Количество просмотров 14K
Блог компании Haulmont Программирование *Java *Kotlin *
Туториал

Невозможно представить JPA без сущностей. Однако, их определение в Котлине таит некоторое количество подводных камней. Давайте посмотрим, как избежать распространенных ошибок и использовать возможности Котлина на максимум. Внимание спойлер! Классы данных — не лучший вариант для сущностей.

В этой статье основное внимание будет уделено Hibernate, поскольку он является несомненным лидером среди всех реализаций JPA.

Читать далее
Всего голосов 18: ↑16 и ↓2 +14
Комментарии 4

Искусственный интеллект в программировании: чего ждать, чего бояться

Время на прочтение 5 мин
Количество просмотров 14K
Блог компании Haulmont Программирование *Искусственный интеллект

Недавно прогремел GitHub со своим новым продуктом Copilot. Из ближайшего прошлого помнятся слова Kite и Codota (ныне Tabnine). Всё это щупальцы искусственного интеллекта, призванные изменить отрасль разработки программного обеспечения. В целом, шум затих, пена сошла, можно смотреть в более прозрачное будущее. В этой статье я опишу свои впечатления и переживания по поводу всего этого AI-я.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 30

Lombok + JPA: Что может пойти не так?

Время на прочтение 4 мин
Количество просмотров 25K
Блог компании Haulmont Программирование *Java *

Lombok — это отличный инструмент, с которым Java-код становится чище и лаконичнее. Однако есть несколько нюансов, которые надо учитывать при его использовании с JPA. В этой статье мы выясним, как неправильное применение Lombok может повлиять на производительность приложений или даже привести к ошибкам. Разберемся, как этого избежать не теряя преимуществ Lombok.

Читать далее
Всего голосов 21: ↑19 и ↓2 +17
Комментарии 42

Вспомнить все или как мы вернулись из удалёнки в 2021 году

Время на прочтение 5 мин
Количество просмотров 2.3K
Блог компании Haulmont Офисы IT-компаний Удалённая работа

В 2020 году мы в Haulmont, как и многие IT-компании, начали работать удаленно, и корпоративная жизнь тоже перешла в онлайн. Общение между коллегами свелось к перепискам и созвонам, хотя раньше все собирались на кухне, чтобы поесть пиццу или поиграть в приставку. Не говоря уже о корпоративах — на смену вечеринкам в ресторанах или выездам на природу пришли Zoom-чаепития. Новые сотрудники — а к нам пришло более 100 человек — ни разу не видели коллег вживую. Вся отрасль столкнулась с тем, что поддерживать связь внутри команды стало сложнее. Поэтому, когда весной мир начал постепенно возвращаться в офисы, мы тоже решили воспользоваться этой возможностью. Однако в первую очередь нужно было подумать о безопасности. Плюс, многим понравился формат удаленки, да и тащить людей в корпоративную жизнь насильно мы не хотели. Рассказываем, как мы решили вопрос возвращения в офисы и при чем тут Буги-Вуги.
Мы понимаем, что сейчас ситуация с коронавирусом и ограничительными мерами стремительно меняется. Пока в регионах, где расположены подразделения Haulmont, все спокойно, поэтому мы работаем в офисах пока есть возможность. Но внимательно следим за новостями и готовы реагировать по ситуации.

Читать далее
Всего голосов 25: ↑14 и ↓11 +3
Комментарии 0

Тонкое искусство быть девелопер адвокатом

Время на прочтение 9 мин
Количество просмотров 5K
Блог компании Haulmont Программирование *Управление разработкой *
Перевод


От переводчика: профессия девелопер адвоката появилась не так давно и почти у каждого крупного продукта или технологии есть свой адвокат, технологические компании понимают важность этого канала общения с миром. Есть такая должность и в Haulmont. Когда мы формулировали требования к вакансии, нам самим пришлось отвечать на вопрос "А что же должен делать девелопер адвокат?" И эта статья простым языком и очень исчерпывающе на этот вопрос отвечает.


Несколько лет назад я написал статью “Кто такой вообще этот девелопер адвокат?”, в которой постарался помочь людям в технической индустрии понять, что входит в эту роль. И до сих пор я получаю тонны вопросов про это в Твиттере.


В этой статье я собираюсь пролить свет на роль Developer Advocate и в этот раз приведу конкретные примеры задач и обязанностей, которые я выполняю в своей ежедневной работе в качестве Senior Developer Advocate в Microsoft, а также в качестве человека, который занимается этим с 2015 года.

Всего голосов 15: ↑13 и ↓2 +11
Комментарии 1

Что нового в JPA Buddy 3.0

Время на прочтение 3 мин
Количество просмотров 3K
Блог компании Haulmont Программирование *Java *

Мы выпустили JPA Buddy 3.0! В этом релизе наконец-то появилась генерация скриптов для Flyway, поддержка Kotlin, а также другие улучшения и исправления. Посмотрим на эти нововведения подробнее.

Для тех, кто не слышал о JPA Buddy: это плагин, который упрощает работу с JPA, Hibernate, Spring Data JPA, Liquibase и подобными технологиями. Подробнее о нем можно почитать в этой статье.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 0

Hibernate и Spring Boot: кто отвечает за имена таблиц?

Время на прочтение 5 мин
Количество просмотров 7.6K
Блог компании Haulmont Программирование *Java *

Когда мы добавляем зависимость в проект, мы подписываем контракт. Зачастую, многие условия в нем «написаны мелким шрифтом». В этой статье мы рассмотрим кое-что, что легко  пропустить при подписании трехстороннего контракта между вами, Hibernate и Spring Boot. Речь пойдет о стратегиях именования.

Читать далее
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 2

Нельзя просто взять и сделать продукт из внутреннего фреймворка или как прошел День открытых дверей Jmix

Время на прочтение 2 мин
Количество просмотров 1.2K
Блог компании Haulmont Конференции

В начале апреля мы анонсировали наше первое крупное онлайн-мероприятие для Java и Rect разработчиков — День открытых дверей open source платформы Jmix. 

Полтора часа мы говорили об эволюции продукта и шишках, которые набили на пути от внутреннего фреймворка до крупного продукта с многотысячной аудиторией. Обсуждали (в том числе и с вами) технологии, Open Source, профессию DevRel и много всего интересного. Публикуем полную запись мероприятия, а также тайм коды с отдельными докладами.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 2

Информация

Сайт
www.haulmont.ru
Дата регистрации
Дата основания
Численность
501–1 000 человек
Местоположение
Россия
Представитель
Haulmont