Blog Posts

equals() и hashCode() в Java или попугаи-неразлучники в ваших программах. Часть 1

В мире есть много одинаковых вещей, много просто похожих друг на друга. Есть полностью идентичные вещи. В языке Java более чем часто возникает задача сравнить те или иные объекты, проверить их на равенство. Казалось бы, есть оператор «==» — равно, который возвращает true или false в зависимости от результата проверки на равенство(технически он чутка сложнее чем кажется). И он отлично работает в случае сравнения примитивных типов данных. Но как быть, если нам нужно проверить на равенство два объекта, со своими

Продолжение

Forever Junior. Почему вне зависимости от квалификации нужно всегда оставаться Junior

Юность неукротима и имеет нужду во многих наставниках, учителях, руководителях, надсмотрщиках, воспитателях. Что конь необузданный, что зверь неукротимый, то же самое и юность.  Иоанн Златоуст Открывая сайт наподобие «хэ-хэ-ру», вбив в поиск вакансий «Java» (подставьте свой любимый язык), вы получите список, просматривая который, вам будут попадаться слова «Junior», «Middle», «Regular», «Senior», «Lead», «Superhero» . Эти слова относятся к общепринятой классификации уровней разработчика. На тему к какому уровню отнести себя написано огромное количество статьей. Не буду писать об этом, а лишь

Продолжение

Готовим микросервисы в Docker на Spring Boot + Rest + Kafka + MongoDB

Сегодня мы приготовим два микросервиса на Spring Boot и развернем их в Docker. Про то что такое Docker написано здесь. Один микросервис будет отвечать за получение данных из вне и записывать их в нужном виде в Kafka. Про то как локально настроить у себя на компьютере Apache Kafka написано здесь. Второй микросервис будет считывать данные из Kafka и сохранять их в MongoDB
Продолжение

Перечисления в Java и подозрительный метод values()

Перечисление (Enumeration) в Java представляют собой класс, состоящий из констант. Появились в языке для удобной реализации перечисляемых типов данных. Например, светофор имеет три цвета: красный, желтый и зеленый. Вместо того, чтобы создавать отдельный статический класс с константами типа Color, у которых есть поле name в которое уже записано имя цвета. [crayon-5cbcb450df123370044853/] Конструкция получилась очень неудобной. Ко всему прочему при такой реализации вы можете создать экземпляр класса TrafficLight, а это противоречит понятию перечисляемых типов. Давайте перепишем TrafficLight с помощью перечисляемых классов и

Продолжение

Apache Kafka. Быстрый старт на MacOS

Apache Kafka — это один из самых популярных брокеров сообщений на рынке IT. Когда-то был разработан LinkedIn для своих внутренних нужд, позже был передан в OpenSource. В настоящее время главным мэинтейнером Apache Kafka является компания Confluent. Думаю на истории можно остановиться. Подробнее о Apache Kafka можно почитать здесь https://kafka.apache.org. Какую проблему решает? С одной стороны, когда мы имеем один источник данных и одного потребителя данных, то Kafka и другие брокеры сообщений нам вообще ни к чему. Примерно выглядит это вот так: С

Продолжение

Site Footer