![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/51a/fad/949/51afad94970a513a5c555d09ed2708ab.png)
Начало года – традиционное время подвести итоги и поделиться планами команды Jmix.
Пользователь
Разработка инструментария – очень познавательное занятие, потому что заставляется задуматься над теми вещами, которые в процессе разработки иногда не замечаешь. Казалось бы, создание @Id атрибута в JPA – рутинное занятие и каждый разработчик может сделать айдишник, даже не включая мозг. Однако, когда начинаешь углубляться в эту тему и пытаться разработать инструмент, который не только помогает писать код для определения ID, но и подсказывает потенциальные проблемы, то всплывает много интересного. И наши соображения, которыми мы руководствовались при разработке JPA Buddy, вылились в этот цикл статей.
Мы выпустили JPA Buddy 3.0! В этом релизе наконец-то появилась генерация скриптов для Flyway, поддержка Kotlin, а также другие улучшения и исправления. Посмотрим на эти нововведения подробнее.
Для тех, кто не слышал о JPA Buddy: это плагин, который упрощает работу с JPA, Hibernate, Spring Data JPA, Liquibase и подобными технологиями. Подробнее о нем можно почитать в этой статье.
От переводчика: профессия девелопер адвоката появилась не так давно и почти у каждого крупного продукта или технологии есть свой адвокат, технологические компании понимают важность этого канала общения с миром. Есть такая должность и в Haulmont. Когда мы формулировали требования к вакансии, нам самим пришлось отвечать на вопрос "А что же должен делать девелопер адвокат?" И эта статья простым языком и очень исчерпывающе на этот вопрос отвечает.
Несколько лет назад я написал статью “Кто такой вообще этот девелопер адвокат?”, в которой постарался помочь людям в технической индустрии понять, что входит в эту роль. И до сих пор я получаю тонны вопросов про это в Твиттере.
В этой статье я собираюсь пролить свет на роль Developer Advocate и в этот раз приведу конкретные примеры задач и обязанностей, которые я выполняю в своей ежедневной работе в качестве Senior Developer Advocate в Microsoft, а также в качестве человека, который занимается этим с 2015 года.
В 2020 году мы в Haulmont, как и многие IT-компании, начали работать удаленно, и корпоративная жизнь тоже перешла в онлайн. Общение между коллегами свелось к перепискам и созвонам, хотя раньше все собирались на кухне, чтобы поесть пиццу или поиграть в приставку. Не говоря уже о корпоративах — на смену вечеринкам в ресторанах или выездам на природу пришли Zoom-чаепития. Новые сотрудники — а к нам пришло более 100 человек — ни разу не видели коллег вживую. Вся отрасль столкнулась с тем, что поддерживать связь внутри команды стало сложнее. Поэтому, когда весной мир начал постепенно возвращаться в офисы, мы тоже решили воспользоваться этой возможностью. Однако в первую очередь нужно было подумать о безопасности. Плюс, многим понравился формат удаленки, да и тащить людей в корпоративную жизнь насильно мы не хотели. Рассказываем, как мы решили вопрос возвращения в офисы и при чем тут Буги-Вуги.
Мы понимаем, что сейчас ситуация с коронавирусом и ограничительными мерами стремительно меняется. Пока в регионах, где расположены подразделения Haulmont, все спокойно, поэтому мы работаем в офисах пока есть возможность. Но внимательно следим за новостями и готовы реагировать по ситуации.
Невозможно представить JPA без сущностей. Однако, их определение в Котлине таит некоторое количество подводных камней. Давайте посмотрим, как избежать распространенных ошибок и использовать возможности Котлина на максимум. Внимание спойлер! Классы данных — не лучший вариант для сущностей.
В этой статье основное внимание будет уделено Hibernate, поскольку он является несомненным лидером среди всех реализаций JPA.
Недавно прогремел GitHub со своим новым продуктом Copilot. Из ближайшего прошлого помнятся слова Kite и Codota (ныне Tabnine). Всё это щупальцы искусственного интеллекта, призванные изменить отрасль разработки программного обеспечения. В целом, шум затих, пена сошла, можно смотреть в более прозрачное будущее. В этой статье я опишу свои впечатления и переживания по поводу всего этого AI-я.
В Haulmont приходят как опытные специалисты, так и разработчики без опыта. Мы часто общаемся с новичками, которые не знают, с чего начать путь в IT. Собрали полезные ресурсы и рейтинги, а еще спросили руководителей нашей программы по трудоустройству начинающих разработчиков, как изучить рынок, выбрать язык программирования и о чем не забыть на собеседовании. Если вы уже опытный разработчик, будем рады узнать ваш опыт и советы для новичков.
От переводчика: на конференции 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 полна решимости пробить барьер, имеющийся на границе Java 8 и Java 9. Теперь, начиная с 17-ой версии, Oracle будет предоставлять Oracle JDK бесплатно, даже для коммерческих целей. Единственное чего делать нельзя — это перепродавать Oracle JDK.
В статье приведен перевод полного текста анонса с блога Oracle: https://blogs.oracle.com/java/post/free-java-license.
От переводчика: Фокусом нашей компании всегда была именно разработка корпоративных приложений. В Haulmont мы занимаемся как созданием собственно приложений, так и инструментов, позволяющих разработчикам эффективнее решать задачи, связанные с разработкой таких систем. Например, наш фреймворк Jmix предназначен для корпоративной разработки, мы это заявляем в рекламе и анонсах. И конечно же, пройти мимо статьи с таким названием мы просто не могли. В Jmix есть все, чтобы сделать разработку корпоративных приложений интересной и успешной, кроме одного: он не может повлиять на людей, которые принимают решения о методах и процессах разработки. Почитайте статью, возможно, она заставит вас задуматься, о том, как можно поменять вашу корпоративную разработку, чтобы все участники были довольны.
На эту статью меня вдохновил комментарий на HackerNews, который я больше не могу найти. Суть его была такая: “В то время, как архитектура слишком проработана, код недоработан”. Если кто-то опознает автора, я с радостью проставлю его авторство.
Заранее в свою защиту хочу сказать, что этот текст описывает только мой опыт за последние 10 лет работы консультантом. Возможно, есть методики и фреймворки, которые решают проблемы, описанные ниже, но они либо не применялись, либо применялись неправильно.
Мягкое удаление (soft deletion) — это популярная в энтерпрайз разработке стратегия удаления, когда вместо физического стирания та или иная запись помечается как удаленная, а потом фильтруется во всех запросах на чтение. Применение мягкого удаления может быть оправдано целым набором требований: аудит, возможность восстановления удаленных записей, а иногда необходимо уметь удалять данные, при этом сохраняя на них ссылки из других записей…
Вообщем, нам, как авторам JPA Buddy (плагина для IntelliJ), пришлось с этим плотно разбираться. В этой статье мы рассмотрим детали, которые зачастую не упоминаются в большинстве публикаций по этой теме, хотя крайне важны для принятия решения о способе реализации мягкого удаления в вашем приложении. Давайте посмотрим, с чем вы, вероятно, намучаетесь.