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

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

Блог компании Haulmont Программирование *Java *

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

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 10K
Комментарии 3

Новости

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

Блог компании Haulmont Программирование *Java *

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

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

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

Блог компании Haulmont Программирование *Java *
Перевод

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

Читать статью
Всего голосов 19: ↑19 и ↓0 +19
Просмотры 14K
Комментарии 11

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

Блог компании Haulmont PostgreSQL *Microsoft Azure *Облачные сервисы *
Перевод

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

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

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

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

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

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

Блог компании Haulmont Программирование *Java *
✏️ Технотекст 2021

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

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

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

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

Блог компании Haulmont Программирование *Управление продуктом *
Перевод


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


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


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

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

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

Блог компании 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
Просмотры 39K
Комментарии 103

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

Блог компании 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
Просмотры 13K
Комментарии 3

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

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

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

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

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

Блог компании Haulmont Программирование *Java *Kotlin *
Tutorial

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

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

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

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

Блог компании Haulmont Программирование *Искусственный интеллект

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

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

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

Блог компании Haulmont Программирование *Java *

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

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

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

Блог компании Haulmont Офисы IT-компаний Удалённая работа

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

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

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

Блог компании Haulmont Программирование *Управление разработкой *
Перевод


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


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


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

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

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

Блог компании Haulmont Программирование *Java *

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

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

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

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

Блог компании Haulmont Программирование *Java *

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

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

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

Блог компании Haulmont Конференции

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

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

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

Вы уверены, что вам нужен API?

Блог компании Haulmont JavaScript *Программирование *Java *
Перевод


От переводчика: При разработке бэкэнда наличие API для фронт-энда стало практически повсеместным стандартом. Однако можем ли мы называть это "настоящим" API? Предлагаем вашему вниманию интересное пятничное чтение, которое, возможно, повлияет на API, которые мы все разрабатываем.


“Слабая связанность, сильное сцепление”, “сокрытие информации”. Известные принципы дизайна. Тем не менее, к ним очень часто не относятся серьезно при разработке архитектуры ПО, особенно когда это касается взаимодействия между клиентской и серверной частью (фронтом и бэком на жаргоне разработчиков).


Ценность API — в сокрытии информации


Предоставляя API, системы решают, какая информация должна быть доступна из внешнего мира, а какая будет держаться в секрете (“сокрытие информации”).


Почему это важно? Потому что чем объемнее API, тем дороже его поддерживать. Представьте себе крайний случай — открытие каждой детали реализации. Каждое изменение в системе может сломать код, который используют ваши клиенты. Именно по этой причине мы стремимся разрабатывать компактные API. Я писал статью (перевод на хабре) по этой теме в контексте описания шаблона “Регистрация событий”.


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

Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Просмотры 5.2K
Комментарии 4

Анонс Jmix 0.9 — предварительный релиз фреймворка

Блог компании Haulmont Программирование *Java *


Мы в компании Haulmont разрабатываем Jmix. Это фреймворк с открытым кодом для разработки backend для data-centric приложений, основанный на Spring Boot, наследник CUBA Platform.


Мы предоставляем готовую архитектуру, сервисы и API, которые строятся поверх модели данных, а разработчики уже строят эту модель данных (JPA) и пишут бизнес-логику (Spring Boot). Всё остальное предоставляется из коробки или может быть легко подключено: подсистемы безопасности и аудита, автоматическое создание REST API, multi-tenancy и прочие системные сервисы. В дополнение разработан инструментарий для более эффективной работы с фреймворком.


Jmix 0.9 — это последняя предрелизная, “практически стабильная” ветка фреймворка. Вместе с этим релизом мы также обновляем инструмент для Jmix разработчиков — Jmix Studio: 0.9.1-202.


В этом релизе мы “заморозили” все основные API: определение модели данных, слой доступа к БД, а также систему безопасности. С большой долей вероятности все это будет перенесено без изменений в версию 1.0. Это означает, что можно рассматривать Jmix 0.9 как отличный вариант для разработки MVP. Ожидается, что миграция на 1.0 будет практически незаметной.


Давайте взглянем на самые заметные изменения в разных частях фреймворка.

Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Просмотры 2K
Комментарии 11

Информация

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