[Перевод] Инструментарий для рефакторинга баз данных: Flyway vs. Liquibase

В этой статье мы поговорим о Flyway и Liquibase — двух наиболее популярных инструментах на основе Java для рефакторинга баз данных. Цель статьи — сравнить эти инструменты и выяснить, какой из них в каких случаях лучше применять. Читать дальше → from Java – Объектно-ориентированный язык программирования https://habr.com/ru/post/440696/?utm_campaign=440696

JetBrains Night в Москве, 13 апреля

Привет, Хабр! Мы приглашаем всех на JetBrains Night — большую встречу с друзьями, которая пройдет 13 апреля в Москве. Приходите узнать, что интересного происходит в мире Java, Kotlin и веб-технологий. Разработчики JetBrains расскажут, чем мы занимаемся и что нового сделали за последнее время, а самое главное — как все это …

Александр Белокрылов и Дмитрий Чуйко о Liberica JDK на jug.msk.ru

14 февраля 2019 года на первой в этом году встрече сообщества московских Java-разработчиков jug.msk.ru Александр Белокрылов и Дмитрий Чуйко из компании BellSoft рассказали об особенностях разработки дистрибутива Liberica JDK. Читать дальше → from Java – Объектно-ориентированный язык программирования http://bit.ly/2Ingodo

[Из песочницы] Откуда растут ноги у Java Memory Model

Современное железо и компиляторы готовы перевернуть с ног на голову наш код, лишь бы он работал быстрее. А их производители тщательно скрывают свою внутреннюю кухню. И все прекрасно, пока код выполняется в одном потоке. В многопоточной среде можно волей-неволей наблюдать интересные вещи. Например выполнение инструкций программы не в том порядке, …

Java все еще может быть бесплатной

Раньше деревья были выше, трава зеленее, а Java была бесплатной. А что сейчас? Про биологию не знаю, а с Java давайте разбираться… Читать дальше → from Java – Объектно-ориентированный язык программирования http://bit.ly/2S3B1ek

Встраиваем интерпретатор Python в java-приложение с помощью проекта Panama

Пару дней назад увидел твит Брайана Гетца, но только сегодня дошли руки поиграться с примерами. Про это и хочу кратко рассказать. О проекте Panama на Хабре уже писали, поэтому просто покажу пару простых примеров того, как можно применить native binder. Читать дальше → from Java – Объектно-ориентированный язык программирования http://bit.ly/2BBHyYj

Релиз-кандидат JDK 12: Shenandoah, G1, JMH, Arm64. Баги в Swing наносят ответный удар

240 дней прошло с момента выпуска JEP 3: JDK Release Process и адская машина по производству новых версий останавливаться не желает. А значит, настало время очередного релиз-кандидата. Это период, когда все мосты сожжены, баги с приоритетами P2-P5 уже ничего не значат, и дни до релиза сочтены. Читать дальше → from …

Автоматизируем аналитику с Zeppelin

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

Как я научил Zabbix за своей нодой присматривать и о проблемах сообщать

Привет, Хабр! Я сейчас работаю над проектом мессенджера на блокчейне вместе с командой своих коллег. Кому интересно – смотрите ссылки в профиле или спрашивайте в комментариях. Блокчейн-разработка – область новая и неизведанная, поэтому порой приходится использовать очень нестандартные инструменты. Куда там микроскопу и гвоздям! Поэтому и решил вести этот блог, …

Spring Boot и JDK 8: Вы все еще используете аннотации @Param, @RequestParam и @PathVariable? Тогда статья для Вас

Здравствуй, Хаброчитатель! Разрабатывая учебный проект по Spring Boot 2 решил поэксперементировать с @Param в запросах Spring Data JPA, а точнее c их отсутствием: @Transactional(readOnly = true) public interface UserRepository extends JpaRepository<User, Integer> { @Query(“SELECT u FROM User u WHERE LOWER(u.email) = LOWER(:email)”) Optional<User> findByEmailIgnoreCase(@Param(“email”) String email); Optional<User> findByLastNameContainingIgnoreCase(@Param(“lastname”) String lastName); …

Открытый урок «Создание REST-клиентов на Spring»

И снова доброго времени суток! Совсем скоро у нас стартует обучение очередной группы «Разработчик на Spring Framework», в связи с чем мы провели открытый урок, что стало уже традицией в преддверии запуска. На этом вебинаре говорили о разработке REST-клиентов с помощью Spring, а также детально узнали о таких технологиях, как …

На горе стоит Spring Boot…

… его четверо отлаживают. Вдохновлённый докладом Владимира Плизги (Spring Boot 2: чего не пишут в release notes) я решил рассказать о своём опыте работы со Спринг Бут, его особенностях и подводных камнях, встретившихся на моём пути. Читать дальше → from Java – Объектно-ориентированный язык программирования http://bit.ly/2ByI357

Сжатие указателей в Java

В статье речь пойдет о реализации сжатия указателей в Java Virtual Machine 64-bit, которая контролируется опцией UseCompressedOops и включена по-умолчанию для 64 битных систем начиная с Java SE 6u23. Читать дальше → from Java – Объектно-ориентированный язык программирования http://bit.ly/2TJZJ4U

Как отличить хороший ремонт от плохого, или как мы в SRG сделали из Томита-парсера многопоточную Java-библиотеку

В этой статье речь пойдет о том, как мы интегрировали разработанный Яндексом Томита-парсер в нашу систему, превратили его в динамическую библиотеку, подружили с Java, сделали многопоточной и решили с её помощью задачу классификации текста для оценки недвижимости. Читать дальше → from Java – Объектно-ориентированный язык программирования http://bit.ly/2BAdR9N

Spring Annotations: магия AOP

Сакральное знание о том, как работают аннотации, доступно далеко не каждому. Кажется, что это какая-то магия: поставил над методом/полем/классом заклинание с собачкой — и элемент начинает менять свои свойства и получать новые. Сегодня мы научимся волшебству аннотаций на примере использования Spring Annotations: инициализация полей бинов. Читать дальше → from Java – …

Внутренние и вложенные классы java. Часть 3

Внутренние и вложенные классы java. Часть 3 << Часть 1 << Часть 2 Локальные классы Локальный класс — это вложенный класс, объявленный внутри другого класса и некоторого блока кода этого класса, то есть объявленный между фигурными скобками {}. Этот блок может быть статическим блоком, циклом, телом if-ов и т.д. Можно …

[Из песочницы] Анализ Minor Violations Java кода на платформе Duerank.com (часть 1)

Введение Что мы знаем об ошибках в коде приложений, написанных на Java? Ну, мы наверняка знаем, что они там встречаются. А насколько часто встречаются? Как много делает разнообразных ошибок в своём коде разработчик? Под ошибками мы понимаем не только баги, но и наличие различных code smell, vulnerabilities, violations. Можно ли …

Spring Boot 2: чего не пишут в release notes

Когда у масштабного проекта происходит масштабное обновление, всё никогда не бывает просто: неизбежно возникают неочевидные нюансы (проще говоря, грабли). И тогда, как бы хороша ни была документация, с чем-то поможет только опыт — свой или чужой. На конференции Joker 2018 я рассказал, с какими проблемами столкнулся сам при переходе к …

[Екатеринбург, анонс] Митап для Java-разработчиков

Мы уже писали, что такое JUG.EKB и зачем проводим митапы для Java-разработчиков. Сегодня анонсируем очередную встречу. Читать дальше → from Java – Объектно-ориентированный язык программирования http://bit.ly/2t9JGSc

ModelMapper: путешествие туда и обратно

По известным причинам, бэкенд не может отдавать данные из репозитория как есть. Самая известная — сущностные зависимости берутся из базы не в таком виде, в котором их может понять фронт. Сюда же можно добавить и сложности с парсингом enum (если поля enum содержат дополнительные параметры), и многие другие сложности, возникающие …