[Перевод] Какой из циклов в Java быстрее: for или for-each

В Java есть два основных способа обхода коллекций: простой цикл for и цикл for-each, появившийся в JDK 5. Задумывались ли вы когда-нибудь об их разнице с точки зрения производительности? Читать далее from Java – Объектно-ориентированный язык программирования https://ift.tt/9EWvUaO

Spring Type Conversion and Field Formatting — пишем первый конвертер или форматтер

В статье я хотел бы рассмотреть написание собственных конвертеров типов (Spring Type Conversion) и форматтеров полей (Spring Field Formatting), в том числе с использованием аннотаций. Статья написана by junior for junior, поэтому прошу отнестись к изложенному ниже с изрядной долей снисхождения 🙂 Читать далее from Java – Объектно-ориентированный язык программирования …

RabbitMQ + Spring boot + Docker. Отправляем и получаем сообщения через Producer и Consumer. Пошаговое руководство

Меня зовут Андрей Вербицкий и я столкнулся с тем, что мое знакомство с RabbitMQ, а в частности его запуск на локальной машине и отправка сообщений в очередь с помощью приложения на Spring Boot, вылилась в несколько дней поисков информации о том, как это вообще работает, какие есть сущности и как …

Неблокирующий повтор (retry) в Java и проект Loom

Неблокирующий повтор (retry) в Java и проект Loom Введение Повтор (retry) операции является старейшим механизмом обеспечения надежности программного обеспечения. Мы используем повторы при выполнении HTTP запросов, запросов к базам данных, отсылке электронной почты и проч. и проч. Читать дальше → from Java – Объектно-ориентированный язык программирования https://ift.tt/Z5ioduB

Security микросервисов с помощью Spring Cloud Gateway и TokenReley

Данная статья результат поиска некоего каноничного решения организации безопасности доступа к ресурсам в микросервисной архитектуре, построенной в экосистеме Spring. После прочтения десятка статей по данной тематике, к сожалению, не нашел то, что искал. Spring Security оказался одной из самых недопонятых технологий. Основная проблема у всех – изобретение своего велосипеда поверх стандартного …

[Перевод] Java очень быстрая, если не создавать много объектов

Исследование влияния создания даже крошечных объектов на производительность и сборку мусора. В этой статье рассматривается бенчмарк передачи событий по TCP/IP со скоростью 4 миллиарда событий в минуту с использованием пакета net.openhft.chronicle.wire.channel в Chronicle Wire (с открытым исходным кодом) и почему мы стремимся избегать создания объектов.  Читать далее from Java – Объектно-ориентированный язык программирования …

[Перевод] JUnit: тестирование методов, вызывающих System.exit()

В определенных ситуациях нам может потребоваться, чтобы метод вызывал System.exit() и завершал работу приложения. Например, в случае если приложение должно быть запущено только один раз, а затем завершено, или в случае фатальных ошибок, таких как потеря соединений с базой данных. Если метод вызывает System.exit(), вызвать его из юнит-тестов и делать …

[Перевод] Миграция на Hibernate 6

Hibernate 6 был выпущен некоторое время назад, и я вижу, как все больше и больше команд мигрируют свои уровни персистентности или, по крайней мере, готовятся к миграции. Как это часто бывает, объем работы, необходимой для перехода на Hibernate 6, зависит от качества вашего кода и версии Hibernate, которую вы используете …

Книга «Программируем на Java. 5-е межд. изд.»

Добрый день, Хаброжители! Пополняем коллекцию O’Reilly. Неважно, кто вы – разработчик ПО или пользователь, в любом случае вы слышали о языке Java. В этой книге вы на конкретных примерах изучите основы Java, API, библиотеки классов, приемы и идиомы программирования. Особое внимание авторы уделяют построению реальных приложений. Вы освоите средства управления …

DDD, HEXAGON, HIBERNATE, не считая JOOQ. Часть 2: гексагональная архитектура

Продолжаем серию публикаций для java разработчиков, создающих системы со сложной предметной областью, первую часть можно почитать здесь. В новой статье поговорим о гексагональной архитектуре. Читать далее from Java – Объектно-ориентированный язык программирования https://ift.tt/79OeZG8

[Перевод] Testcontainers: тестирование с реальными зависимостями

Программное обеспечение развивается с течением времени, и автоматизированное тестирование является необходимым условием для непрерывной интеграции и непрерывной доставки. Разработчики пишут различные типы тестов, такие как модульные тесты, интеграционные тесты, тесты производительности и E2E-тесты для измерения различных аспектов программного обеспечения. Обычно модульное тестирование выполняется для проверки только бизнес-логики, и в зависимости от …

[Перевод] Сборка мусора в неисправных JVM, проактивный подход

Команда Netflix Cloud Data Engineering работает с различными приложениями для JVM, включая такие популярные хранилища данных, как Cassandra и Elasticsearch. Хотя большинство наших кластеров стабильно работают, обходясь выделенной им памятью, иногда «запрос смерти» или ошибка в самом хранилище данных приводят к перерасходу памяти, что может спровоцировать лишние циклы сборки мусора …

Ещё раз про умный дом

Представляю программно-аппаратный проект: локальную сеть умный дом с акцентом на режим охраны. В качестве управляющего устройства используется сотовый телефон с ОС Android версией не ниже 5.0. Через кабель USB телефон подключен к устройству USB/RS485. Для питания всей системы используется блок бесперебойного питания . Узлы управления сбором информации от датчиков и …

DDD, HEXAGON, HIBERNATE, не считая JOOQ. Часть 1

Статья написана для java разработчиков, создающих системы со сложной предметной областью. Система, как правило, представлена сетью микросервисов или модульным монолитом. В рамках такой системы обычно содержится большое количество сущностей (JPA/JOOQ), которые одновременно используют как технические, так и бизнес-сущности. Смена технологической базы по прошествии нескольких лет разработки для такой системы является …

Форматирование милли/микро/нано секунд в java.sql.Timestamp

В JVM 1.8 отсутствует удобный и простой в использовании класс форматирования класса java.sql.Timestamp с микро и нано секундами. Есть специализированный пакет java.time с достаточно разнообразной функциональностью. Но его использование для преобразования типа java.sql.Timestamp в строку и из строки в тип выглядит как то сложновато. Хотелось иметь простой способ преобразования с …

[Перевод] Datafaker: альтернатива использованию производственных данных

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

Мясная аналитика на СlickHouse

У нас в hh.ru есть три кластера PostgreSQL, два кластера Cassandra, кластер Hadoop и пять кластеров ClickHouse. Не то чтобы всё это было жизненно необходимо в разработке, но если уж начал собирать серьезную коллекцию, к делу надо подходить серьезно.  В этой статье расскажу, как нам удалось запилить конкретную бизнес-фичу с …

Попробуй пройди за 4 часа тестовое задание в канадскую компанию

Поделюсь своим свежим опытом непрохождения интервью в канадскую компанию, может кому поможет пройти отбор и получить работу. Либо же узнать что творится с рынком труда с точки зрения разработчика в реальном мире. Читать далее from Java – Объектно-ориентированный язык программирования https://ift.tt/HgL0dlU

[recovery mode] Хранимые процедуры, функции и триггеры на Java

Всем привет! Сегодня мы расскажем о полезной возможности СУБД Ред База Данных – создании внешних подпрограмм, то есть процедур, функций и триггеров на языке Java. Например, язык PSQL не позволяет работать с объектами файловой системы или сети, а Java запросто решает такие задачи и существенно расширяет возможности встроенного языка. Читать …

Пишем приложение на Mi Band 7 с сервисной частью

Недавно я купил себе Mi band 7, по началу хотел купить 6-ую версию, пока не узнал, что на 7-ой обновилась операционная система и теперь она поддерживает установку приложений. Да, официально они об этом не заявили, но умельцы уже сделали множество приложений. Они ставят их как циферблаты, и это вполне обычные …

Back to Top