Как стать автором
Обновить
42.36
Рейтинг
Haulmont
Создаем современные корпоративные системы
Сначала показывать
  • Новые
  • Лучшие

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

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

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

Читать далее
Всего голосов 18: ↑8 и ↓10 -2
Просмотры1.1K
Комментарии 0

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

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


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


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


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

Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Просмотры1.8K
Комментарии 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
Просмотры1.6K
Комментарии 0

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

HaulmontПрограммированиеJava

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

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

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

HaulmontКонференции

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

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

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

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

HaulmontJavaScriptПрограммированиеJava
Перевод


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


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


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


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


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


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

Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Просмотры4.6K
Комментарии 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
Просмотры1.5K
Комментарии 10

Анонс онлайн-дня открытых дверей для Java и React разработчиков: особенности работы в команде open source фреймворка

HaulmontКонференции

Опыт крупных конференций для разработчиков показал: жизнь онлайн — действительно хороший повод пообщаться с единомышленниками со всей страны. Поэтому мы приглашаем всех причастных к Java или React разработке на онлайн-день открытых дверей Jmix.

В течение часа мы расскажем:

  • как устроена разработка open source фреймворка;
  • чем создание технологий и инструментов для девелоперов отличается от продуктовой разработки;
  • почему разработчику платформы нужно гораздо глубже погружаться в используемые технологии;
  • чем занимаются люди с экзотической профессией Developer Advocate и, конечно, ответим на все вопросы.

Когда: 7 апреля в 18:00 (МСК)

Чтобы присоединиться, зарегистрируйтесь на Timepad: haulmont.timepad.ru/event/1587632

Все еще думаете «быть или не быть»? Тогда посмотрите под кат — там подробности о докладах и наших спикерахах — вы уже знакомы с ними по многим нашим материалам на Хабре.
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Просмотры462
Комментарии 0

Haulmont и тайные комнаты или почему мы не закрыли офисы разработки за год пандемии

HaulmontОфисы IT-компаний

Многие компании полностью отказались от работы в офисах — хорошо, что это были не мы. За год удаленки все офисы Haulmont были открыты для сотрудников, хоть и стояли почти пустые. Делимся впечатлениями от такого эксперимента и показываем, как выглядят рабочие места, кухни, спортзалы и зоны отдыха наших коллег.

Так повелось, что на Хабре мы чаще пишем экспертные материалы про технологии или наши продукты, но почти (а если быть откровенными, то и совсем) не говорим о жизни Haulmont. Хотя тут нам тоже есть чем поделиться. Исправляемся.

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

JPA Buddy: Умный помощник — половина работы

HaulmontПрограммированиеJava

Ну что ж, Hello World... После почти года разработки наконец-то вышла первая версия JPA Buddy! Это инструмент, который должен стать вашим верным помощником по написанию кода для проектов с JPA и всем, что с этим связано: Hibernate, Spring Data, Liquibase и другим ПО из типичного стека разработки.

Чем он вам поможет? Если кратко, JPA Buddy упростит работу с JPA и тем самым сэкономит ваше время. В этой статье мы взглянем на основные фичи JPA Buddy, немного обсудим его историю и поговорим о его преимуществах. Надеюсь, он займет достойное место среди любимых инструментов Java-разработчиков, которые пользуются JPA, Spring, Liquibase и, конечно же, самой продвинутой Java IDE — IntelliJ IDEA.

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

Jmix / CUBA Platform: итоги 2020 и планы на 2021 год

HaulmontOpen sourceПрограммированиеJavaKotlin

В этой статье я подведу итоги 2020 года и расскажу о планах команды CUBA на 2021. Несмотря на внешние потрясения, прошедший год был очень продуктивным для нашей команды, а новый обещает быть еще интереснее. 

TL;DR

Для тех, кто не знаком с Jmix: это новое поколение CUBA Platform, open source платформы для разработки широкого спектра корпоративных приложений. Jmix включает в себя фреймворк на основе Spring Boot, специализированные инструменты разработки, встроенные в IntelliJ IDEA и набор высокоуровневых компонентов. Такая комбинация значительно ускоряет и упрощает разработку приложений.

С выпуском Jmix в конце года мы фактически переписали бэкенд CUBA Platform, перенеся архитектуру на Spring Boot и сделав его модульным. На этом фундаменте в текущем году мы планируем:

- создать полнофункциональный UI клиент на React, с поддержкой визуальных конструкторов

- интегрировать GraphQL для взаимодействия между клиентом и сервером

- максимально упростить и автоматизировать DevOps

- поддержать возможность создания cloud native приложений

- предоставить больше визуальных инструментов разработчика в Studio, смещая фокус из runtime в design time. 

Чтобы реализовать задуманное, мы хотим удвоить команду разработки и активно ищем единомышленников. Подробности - под катом. 

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

Jmix — будущее CUBA Platform

HaulmontПрограммированиеJava


TL;DR


Jmix — новое название и новый большой релиз CUBA Platform. На текущий момент Jmix находится в стадии предварительного релиза, мы планируем выпустить стабильную версию во втором квартале 2021 года. Основные изменения:


  • В ядре платформы теперь будет Spring Boot
  • Фреймворк будет разделен на модули (data, security, audit, и т.д.)
  • Новый подход к определению модели данных
  • Обновление базы данных теперь производится при помощи Liquibase
  • Процесс развертывания будет основан на стандартных средствах Spring Boot. Это обеспечит лучшую интеграцию с облачными средами выполнения

Мы будем активно развивать разработку пользовательского интерфейса на ReactJS, в то же время продолжим поддержку текущего фреймворка, основанного на Vaadin.


CUBA Platform будет поддерживаться долгое время, мы также предоставим возможность миграции на Jmix через совместимый API.


Официальный сайт Jmix: jmix.io.
Обсуждение на форуме: по-английски.

Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры2.4K
Комментарии 8

Организация разработки в изолированной сети — как управлять зависимостями?

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

Как можно собрать актуальный стек используемых библиотек и фреймворков чтобы комфортно заниматься разработкой если вы самоизолировались в глухой деревне, летите 8 часов в самолете или в вашей компании лимитирован доступ к всемирной паутине настолько, что вы не можете пользоваться публичными репозиториями артефактов, например таким, как maven central? Как же нам предоставить все необходимые артефакты, от которых мы зависим, включая транзитивные зависимости? Как потом их обновлять вместе с новыми версиями фреймворка?


image


Попробуем найти ответы на эти вопросы. В данной статье я хочу рассказать о нашем новом инструменте CUBA SDK — консольной утилите, которая позволяет определять все транзитивные зависимости для Maven-библиотек и управлять ими в удаленных репозиториях. Также в статье мы рассмотрим пример, который позволит вам использовать наши наработки для любого Java приложения с применением Maven-зависимостей.

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

Что такое хорошо и что такое плохо. Карьера разработчика глазами его руководителя

HaulmontПрограммированиеУправление проектамиУправление персоналомКарьера в IT-индустрии

В чем отличается взгляд на карьеру у разработчика и его руководителя


Жизнь полна противоречий. Даже свет не может определиться, кто он – частица или волна.
В мире разработки софта противоречий между действующими лицами вагон и маленькая тележка. Давайте рассмотрим пару – разработчик и руководитель разработки (это может быть руководитель проекта, технический менеджер, тимлид). Как выяснится, эти двое зачастую по-разному смотрят на вещи и вообще стремятся в разные стороны.



Чего хочет разработчик


Все хотят разного. Но поскольку без обобщений нам не обойтись, возьмем сферического в вакууме разработчика уровня middle. Он в меру ленив, в меру любопытен и ему в целом нравится его профессия. Ему бы только сроки помягче, процессы получше, задачи поинтереснее.

Как он хочет развиваться? А вот так:

  • Изучать новые технологии
  • Решать более интересные задачи
  • Участвовать в новых проектах
  • Поменьше заниматься деятельностью, не связанной с разработкой
  • Принимать решения самостоятельно

В то же время его руководитель хочет:


  • Чтобы разработчик хорошо знал используемые технологии
  • Чтобы разработчик хорошо справлялся с поставленными задачами: с должным качеством и в установленный срок
  • Чтобы разработчик был ответственным и всегда завершал то, за что взялся
  • Чтобы разработчик давал адекватные оценки задачам
  • Чтобы разработчик имел понимание потребностей бизнеса и продукта в целом
  • Чтобы разработчик своевременно сообщал о проблемах

Хотите знать, как добиться компромисса? Добро пожаловать под кат.
Читать дальше →
Всего голосов 33: ↑27 и ↓6 +21
Просмотры13.8K
Комментарии 74

PostgreSQL. Добавляем not null constraints в большие таблицы

HaulmontPostgreSQLSQLАдминистрирование баз данных


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


Одной из команд, с которой надо быть осторожным на таблицах с большим количеством записей, является добавление not null constraint на столбец. При добавлении данного constraint PostgreSQL приобретает access exclusive lock на таблицу, в результате чего другие сессии не могут временно даже читать таблицу; затем БД проверяет, что в столбце действительно ни одного null нет, и только после этого вносятся изменения. Под катом я рассмотрю различные варианты, как можно добавить not null constraint, лоча таблицу на минимально возможное время или даже не лоча ее совсем.


TL;DR:


  1. В PostgreSQL 12+ можно добавить check constraint на таблицу, а затем "преобразовать" его в not null constraint для конкретного столбца.
  2. Чтобы полностью избежать блокировки таблицы, можно напрямую внести изменения в системную таблицу pg_attribute (этот пункт подробно разбирается в статье).
Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Просмотры7.6K
Комментарии 6

Текущее положение дел в мире Java: тренды и факты для одного из самых популярных языков программирования

HaulmontПрограммированиеJava
Перевод

От переводчика: несмотря на несколько рекламный характер этой статьи, автор приводит довольно-таки интересную статистику по текущему состоянию экосистемы Java. Надеемся, что эта статистика окажется полезной читателям


Версия этой статьи также ранее была опубликована в The New Stack.


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


Но это не значит, что нельзя попробовать примерно оценить состояние этой сферы.

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

Quarkus: Сверхзвуковая субатомная ветклиника

HaulmontПрограммированиеJavaМикросервисы


Это вольный пересказ моего Lightning Talk с конференции Joker 2019. С тех пор вышло несколько новых версий Quarkus, доклад приведен в соответствие с текущим положением вещей.


В рамках разработки нашего фреймворка CUBA Platform, мы уделяем много внимания тому, что происходит в индустрии. Хотя фреймворк CUBA выстроен вокруг Spring, нельзя игнорировать то, что происходит вокруг. И, наверняка, все заметили, что в последнее время очень много шума вокруг cloud-native фреймворков. Два новичка — Micronaut и Quarkus достаточно уверенно начинают вступать на территорию Spring Boot. В один прекрасный день было решено сделать небольшое RnD, по результатам которого я расскажу об опыте работы с фреймворком Quarkus на примере хорошо известного приложения – Petclinic.

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

Кто такой хороший QA?

HaulmontТестирование IT-системКарьера в IT-индустрии

Начнем с того, что в народе всех quality assurance инженеров (“по-нашенски”, инженеров отдела качества) обзывают тестировщиками. Это не совсем правильно, в реальности тестирование — это только часть задач QA, но кого бы это волновало. Поэтому пойдем в общем тренде и будем использовать привычное всем погоняло.

Итак, что же определяет хорошего тестировщика? Не будем опускаться до банальностей и говорить: внимательность, усидчивость, терпение, любопытство, талант все ломать и другую чепуху. Это все, конечно, важно, но не главное. В первую очередь у человека должно присутствовать чувство здравого смысла и ответственности.
Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Просмотры52K
Комментарии 40

DIY Корутины. Часть 1. Ленивые генераторы

HaulmontПрограммированиеJavaПараллельное программирование

В мире JVM про корутины знают в большей степени благодаря языку Kotlin и Project Loom. Хорошего описания принципа работы котлиновских корутин я не видел, а код библиотеки kotlin-coroutines совершенно не понятен неподготовленному человеку. По моему опыту, большинство людей знает о корутинах только то, что это "облегченные потоки", и что в котлине они работают через умную генерацию байткода. Таким был и я до недавнего времени. И мне пришла в голову идея, что раз корутины могут быть реализованы в байткоде, то почему бы не реализовать их в java. Из этой идеи, впоследствии, появилась небольшая и достаточно простая библиотека, в устройстве которой, я надеюсь, может разобраться практически любой разработчик. Подробности под катом.


Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Просмотры8.5K
Комментарии 22

Low-code платформы: панацея или рискованная ставка?

HaulmontАнализ и проектирование системУправление разработкой
🔥 Технотекст 2020

Low-code платформы (Low code application platforms, LCAP) возникли как реакция на сложность и многообразие современных средств разработки ПО.


Согласно Gartner, одним из самых известных игроков в этой области является Mendix. Продажа Siemens за космические $700 млн. это подтверждает. Так что я буду использовать эту платформу как пример, хотя аналогичные выводы будут верны и для Outsystems, Appian, Kony, Betty Blocks и других.


image


Итак, ориентируя продажи на топ-менеджеров, вендоры low code платформ обещают, что даже простые пользователи смогут самостоятельно создавать бизнес-приложения.


То есть разработчики больше не нужны?!

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

Информация

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