Java, Istio, Kubernetes, Docker — приглашаем на митапы IBM в Москве и Санкт-Петербурге

Привет, Хабр! Напоследок перед летними каникулами решили порадовать уважаемых подписчиков серией митапов! На следующей неделе их будет целых три! И не только в Москве… 19 июня в 18:00 (Москва) в офисе IBM митап по Java технологиям. У нас будет Java Champion, Себастиан Дашнер. Будем обсуждать использование Java в новых облачных …

В Java может появиться новая сериализация

На сайте OpenJDK появился новый исследовательский документ, в котором описывается идея введения в язык новой улучшенной сериализации взамен старой. Сериализация в Java существует с версии 1.1, то есть практически с момента её рождения. С одной стороны, сериализация является очень удобным механизмом, который позволяет быстро и просто сделать любой класс сериализуемым …

Введение в Spring, или что делать, если по всему проекту @Autowired и @Component, а вы не понимаете, что это

Приветствую тебя, Хабр! Эта статья будет полезна тем, кто уже начал изучать Java и даже успел добиться некоторых успехов в понимании Java Core, и вот услышал слово Spring. И, возможно, даже не один раз: знание Spring Framework, как минимум, фигурирует в описаниях множества вакансий для джавистов. Эта статья поможет вам …

[Из песочницы] Объектно-ориентированное программирование в Java и Python: сходства и отличия

Привет, Хабр! Представляю вашему вниманию перевод статьи “Object-Oriented Programming in Python vs Java” автора Джона Финчера. Реализация объектно-ориентированного программирования (ООП) в языках Java и Python отличается. Принцип работы с объектами, типами переменных и прочими языковыми возможностями может вызвать затруднение при переходе с одного языка на другой. В данной статье, которая …

[Перевод] Интеграционные тесты баз данных с помощью Spring Boot и Testcontainers

1. Обзор С помощью Spring Data JPA можно легко создавать запросы к БД и тестировать их с помощью встроенной базы данных H2. Но иногда тестирование на реальной базе данных намного более полезно, особенно если мы используем запросы, привязанные к конкретной реализации БД. В этом руководстве мы покажем, как использовать Testcontainers …

JetBrains Night Moscow: как это было

В апреле мы провели JetBrains Night Moscow — получилась отличная встреча с друзьями: интересные темы, много живого общения и, конечно, выступления спикеров JetBrains. К нам пришло более 700 гостей. Спасибо каждому за то, что вы сделали вечер таким классным! Читать дальше → from Java – Объектно-ориентированный язык программирования http://bit.ly/2WQqw4u

[Перевод] Более быстрая альтернатива Java Reflection

Всем привет. Сегодня хотим поделиться с вами переводом статьи, подготовленным специально для студентов курса «Разработчик Java». В моей статье Specification Pattern (паттерн Спецификация) я специально не упомянул о лежащем в основе компоненте, который сильно помог в реализации. Здесь я подробнее расскажу о классе JavaBeanUtil, который я использовал, чтобы получить значение …

Где летом поговорить про Apache Ignite и распределенные системы

14 июня в Петербурге пройдет митап Apache Ignite Meetup: реальные кейсы. Послушаем парней, у которых получилось. Первый кейс — IMDG для расчета маржинальности торговых контрактов в Heineken. Второй — промышленная платформа Газпромнефти. Почему open source и Ignite? Куда прикрутили? Как и зачем работает? Спикеры ответят на эти и другие вопросы …

Java Native Image: проверка возможности использования

Не так давно Oracle выпустил первый релиз проекта GraalVM (http://bit.ly/2PlcilW). Релизу был сразу присвоен номер 19.0.0, видимо, для того чтобы убедить, что проект зрелый и готов к использованию в серьезных приложениях. Одна из частей этого проекта: Substrate VM — фреймворк, который позволяет превращать Java-приложения в нативные исполняемые файлы (а также …

Визуализация сортировки обменами

В данной статье рассматриваются различные варианты сортировки обменами, а также даётся описание простого графического приложения (processing.js) с примерами сортировок. Перед прочтением рекомендую ознакомиться со статьями Сортировка обменами Пузырьковая сортировка и все-все-все Глупая сортировка и некоторые другие, поумнее Простейший вариант: перебирать массив от первого элеменат к последнему, меняя местами (если потребуется) …

Обзор докладов Java-трека c конференции RigaDevDays

Всем привет! С 29 по 31 мая состоялась конференция RigaDevDays в Риге. Это был 5-ый юбилейный год конференции. Более 600 участников собрались в кинотеатре Forum Cinemas, чтобы послушать доклады по технологиям — C#, Java, MachineLearning, Microservices, SQL. Конференция проходила в кинотеатре. Это поначалу вызывало у меня скепсис, но как только …

Ненаучно о монадах

Всем привет. После четырех лет программирования на Scala, мое понимание монад наконец-то доросло до уровня, когда можно объяснить его окружающим без ссылок на теорию категорий и классического монада — это просто моноид в категории эндофункторов, которое отпугивает программистов не хуже, чем дихлофос тараканов. Примеры кода будут написаны на языке Kotlin, …

Иван Углянский и Владимир Ситников на jug.msk.ru

30 мая 2019 года Иван Углянский и Владимир Ситников представили свои доклады «Ходячие объекты-мертвецы, или GC всегда прав» и «Java тормозит: CodeCache edition» на встрече московского сообщества Java-разработчиков jug.msk.ru. Читать дальше → from Java – Объектно-ориентированный язык программирования https://habr.com/ru/post/454382/?utm_campaign=454382

Конкурс разработчиков плагинов TeamCity

Привет, Хабр! Недавно мы запустили конкурс разработчиков плагинов для TeamCity, и вы все еще можете в нем поучаствовать. Правила просты: участники присылают нам плагины до 24 июня, а взамен получают годовую подписку на любую IDE от JetBrains на свой выбор. После того как сбор заявок завершится, мы — команда разработчиков …

[Перевод] 10 принципов объектно-ориентированного программирования, о которых должен знать каждый разработчик

Мне довольно часто встречаются разработчики, которые не слышали о принципах SOLID (мы подробно рассказывали о них здесь. — Пер.) или объектно-ориентированного программирования (ООП), или слышали, но не используют их на практике. В этой статье описываются преимущества принципов ООП, которые помогают разработчику в его ежедневном труде. Некоторые из них хорошо известны, …

Как мы учились эксплуатировать Java в Docker

Под капотом hh.ru — большое количество Java-сервисов, запущенных в докер-контейнерах. За время их эксплуатации мы столкнулись с большим количеством нетривиальных проблем. Во многих случаях чтобы докопаться до решения приходилось долго гуглить, читать исходники OpenJDK и даже профилировать сервисы на продакшене. В этой статье я постараюсь передать квинтэссенцию полученного в процессе …

[Из песочницы] Создание многомодульного Gradle проекта SpringBoot + Angular в IDEA

Достаточно часто в моей практике используется связка Spring + Angular. Хочу поделится своим опытом по подготовке подобного проекта в среде разработки IntelliJ IDEA. Создаем пустой Gradle проект Для начала создадим пустой Gradle проект в IDEA, при этом снимите все галочки библиотек и фреймворков. Пусть наш артефакт будет «demo», а группа …

[Перевод] Используем Firebase в качестве хранилища изображений для Android-приложения

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

[Перевод] В Java 13 хотят добавить «блоки текста»

Блоки текста запланированы к появлению в Java 13. Об этом стало известно из JEP 355. Блоки текста — это многострочный строковый литерал, который устраняет необходимость в экранировании большинства специальных символов и автоматически делает переносы строки. Это дальнейшая попытка исследований, начавшихся в JEP 326(необработанные строковые литералы, был отозван). Читать дальше → …

Как перестать забывать про индексы и начать проверять execution plan в тестах

Какое-то время назад, приключилась со мной неприятная история, которая послужила триггером для небольшого проекта на гитхабе и вылилась в эту статью. Обычный день, обычный релиз: все задачи вдоль и поперек проверены нашим QA-инженером, поэтому со спокойствием священной коровы «закатываем» на stage. Приложение ведет себя хорошо, в логах — тишина. Принимаем …