Рубрика «Блог компании Haulmont»
Мягкое удаление в Hibernate: неочевидные факты
2021-09-22 в 12:48, admin, рубрики: crud, hibernate, java, jpa, Блог компании Haulmont, ПрограммированиеМягкое удаление (soft deletion) — это популярная в энтерпрайз разработке стратегия удаления, когда вместо физического стирания та или иная запись помечается как удаленная, а потом фильтруется во всех запросах на чтение. Применение мягкого удаления может быть оправдано целым набором требований: аудит, возможность восстановления удаленных записей, а иногда необходимо уметь удалять данные, при этом сохраняя на них ссылки из других записей…
Нам, как авторам JPA Buddy Читать полностью »
Java от Oracle снова бесплатна
2021-09-15 в 1:17, admin, рубрики: free, java, license, Блог компании Haulmont, ПрограммированиеТезисно:
-
Oracle будет предоставлять Oracle JDK (самый распространённый среди разработчиков), с ежеквартальными обновлениями безопасности бесплатно (даже если вы используете его в коммерческих целях).
-
Новая лицензия — это "Условия и положения о бесплатном обслуживании" (No-Fee Terms and Conditions - NFTC). NFTC позволяет бесплатно использовать Oracle JDK, в том числе для коммерческих и промышленных целей. Единственное чего делать нельзя — это перепродавать Oracle JDK.
-
Разработчики и организации теперь Читать полностью »
PostgreSQL. Добавляем not null constraints в большие таблицы
2020-03-25 в 6:42, admin, рубрики: performance, postgresql, sql, Администрирование баз данных, базы данных, Блог компании Haulmont
Проекты развиваются, клиентская база увеличивается, базы данных разрастаются, и наступает момент, когда мы начинаем замечать, что некогда простые манипуляции над базами данных требуют более сложных действий, а цена ошибки сильно повышается. Уже нельзя за раз промигрировать данные с одного столбца в другой, индексы лучше накатывать асинхронно, добавлять столбцы с default
значениями теперь нельзя.
Одной из команд, с которой надо быть осторожным на таблицах с большим количеством записей, является добавление not null constraint
на столбец. При добавлении данного constraint
PostgreSQL приобретает access exclusive lock
на таблицу, в результате чего другие сессии не могут временно даже читать таблицу; затем БД проверяет, что в столбце действительно ни одного null
нет, и только после этого вносятся изменения. Под катом я рассмотрю различные варианты, как можно добавить not null constraint
, лоча таблицу на минимально возможное время или даже не лоча ее совсем.
TL;DR:
- В PostgreSQL 12+ можно добавить
check constraint
на таблицу, а затем "преобразовать" его вnot null constraint
для конкретного столбца. - Чтобы полностью избежать блокировки таблицы, можно напрямую внести изменения в системную таблицу
pg_attribute
(этот пункт подробно разбирается в статье).
Текущее положение дел в мире Java: тренды и факты для одного из самых популярных языков программирования
2020-03-16 в 15:11, admin, рубрики: java, java 11, java 8, java jvm, Блог компании Haulmont, Программирование, тренды javaОт переводчика: несмотря на несколько рекламный характер этой статьи, автор приводит довольно-таки интересную статистику по текущему состоянию экосистемы Java. Надеемся, что эта статистика окажется полезной читателям
Версия этой статьи также ранее была опубликована в The New Stack.
Современная индустрия программного обеспечения невероятно обширна, так что нет недостатка в выборе языков программирования. Но даже в рамках одного технологического стека, как экосистема Java, может быть довольно сложно сделать полезные выводы о состоянии рынка. Java невероятно успешна и присутствует почти в каждой крупной индустрии и экономическом секторе, и это, частично, то, что делает таким трудным нахождение единой точки зрения о текущем состоянии мира Java.
Но это не значит, что нельзя попробовать примерно оценить состояние этой сферы.
Quarkus: Сверхзвуковая субатомная ветклиника
2020-02-26 в 6:09, admin, рубрики: java, petclinic, quarkus, Блог компании Haulmont, микросервисы, Программирование
Это вольный пересказ моего Lightning Talk с конференции Joker 2019. С тех пор вышло несколько новых версий Quarkus, доклад приведен в соответствие с текущим положением вещей.
В рамках разработки нашего фреймворка CUBA Platform, мы уделяем много внимания тому, что происходит в индустрии. Хотя фреймворк CUBA выстроен вокруг Spring, нельзя игнорировать то, что происходит вокруг. И, наверняка, все заметили, что в последнее время очень много шума вокруг cloud-native фреймворков. Два новичка — Micronaut и Quarkus достаточно уверенно начинают вступать на территорию Spring Boot. В один прекрасный день было решено сделать небольшое RnD, по результатам которого я расскажу об опыте работы с фреймворком Quarkus на примере хорошо известного приложения – Petclinic.
DIY Корутины. Часть 1. Ленивые генераторы
2020-01-21 в 9:48, admin, рубрики: continuation, coroutine, generators, java, kotlin, Блог компании Haulmont, параллельное программирование, ПрограммированиеВ мире JVM про корутины знают в большей степени благодаря языку Kotlin и Project Loom. Хорошего описания принципа работы котлиновских корутин я не видел, а код библиотеки kotlin-coroutines совершенно не понятен неподготовленному человеку. По моему опыту, большинство людей знает о корутинах только то, что это "облегченные потоки", и что в котлине они работают через умную генерацию байткода. Таким был и я до недавнего времени. И мне пришла в голову идея, что раз корутины могут быть реализованы в байткоде, то почему бы не реализовать их в java. Из этой идеи, впоследствии, появилась небольшая и достаточно простая библиотека, в устройстве которой, я надеюсь, может разобраться практически любой разработчик. Подробности под катом.
Low-code платформы: панацея или рискованная ставка?
2020-01-13 в 6:14, admin, рубрики: CUBA Platform, enterprise, framework, low-code, rapid application development, Блог компании Haulmont, управление разработкойLow-code платформы (Low code application platforms, LCAP) возникли как реакция на сложность и многообразие современных средств разработки ПО.
Согласно Gartner, одним из самых известных игроков в этой области является Mendix. Продажа Siemens за космические $700 млн. это подтверждает. Так что я буду использовать эту платформу как пример, хотя аналогичные выводы будут верны и для Outsystems, Appian, Kony, Betty Blocks и других.
Итак, ориентируя продажи на топ-менеджеров, вендоры low code платформ обещают, что даже простые пользователи смогут самостоятельно создавать бизнес-приложения.
То есть разработчики больше не нужны?!
Интеграционные тесты баз данных с помощью Spring Boot и Testcontainers
2019-06-11 в 12:01, admin, рубрики: java, spring framework, testcontainers, Блог компании Haulmont, интеграционное тестирование, Тестирование IT-систем1. Обзор
С помощью Spring Data JPA можно легко создавать запросы к БД и тестировать их с помощью встроенной базы данных H2.
Но иногда тестирование на реальной базе данных намного более полезно, особенно если мы используем запросы, привязанные к конкретной реализации БД.
В этом руководстве мы покажем, как использовать Testcontainers для интеграционного тестирования со Spring Data JPA и базой данных PostgreSQL.
Переговоры провалены: как Oracle убила Java EE
2019-05-08 в 4:54, admin, рубрики: eclipse foundation, java, javaee, oracle, Блог компании Haulmont
Сегодня (3 мая) президент Eclipse Foundation Майк Милинкович (Mike Milinkovic) написал в своем блоге об окончательных результатах закрытых переговоров между Oracle и Eclipse Foundation о товарном знаке. Как мы помним, Oracle объявила, что она открывает исходный код Java EE для этой организации, так что фреймворк будет с открытым кодом “по-настоящему”. После 18 месяцев интенсивных переговоров все усилия подошли к концу: переговоры провалены. Соглашения о товарном знаке не будет.