Как стать автором
Обновить
115.76

Java *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Микросервисная авторизация для чайников для чайников

Время на прочтение 18 мин
Количество просмотров 18K
Программирование *Java *Анализ и проектирование систем *
В данной статье рассматривается пример реализации распределенной микросервисной авторизации доступа для множества пользователей к множеству ресурсов или операций. Уровень подготовки читателя может быть любой, кто знаком с программированием и проектированием. Так же рассматриваются примеры использования на практике и одна из задач реализована в виде небольшой микросервисной системы.
Читать дальше →
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 5

Ещё больше строковых оптимизаций

Время на прочтение 7 мин
Количество просмотров 3.7K
Программирование *Java *

В продолжение своей предыдущей статьи о строках (напоминаю, это была текстовая версия доклада на ДжиПоинте-2020) решил дописать ещё одну заметку, куда вошли некоторые оптимизации, обнаруженные уже после вёрстки презентации.

Читать далее
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 6

Как Spring Data Jdbc соединяет таблицы

Время на прочтение 6 мин
Количество просмотров 9.6K
Блог компании OTUS Java *
В этом посте мы рассмотрим, как Spring Data Jdbc строит sql-запросы для извлечения связных сущностей.



Пост рассчитан на начинающих программистов и не содержит каких-то супер хитрых вещей.
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 0

Joker 2020: продолжение сезона онлайн-конференций

Время на прочтение 7 мин
Количество просмотров 3K
Блог компании JUG Ru Group Java *Конференции
Только что, c 25 по 28 ноября 2020 года, прошла Java-конференция Joker 2020. Это уже второй сезон конференций, проводимых JUG Ru Group в формате онлайн.

В онлайн-формате конференция стала лучше или хуже? Что нового организаторами было придумано? Кого из спикеров с какими докладами можно было увидеть и услышать? Что полезного и интересного было в докладах? Имеет ли смысл посещать конференцию в следующем году?


Читать дальше →
Всего голосов 34: ↑34 и ↓0 +34
Комментарии 11

Истории

Раздел «Refactor» в IDEA

Время на прочтение 20 мин
Количество просмотров 11K
Java *Kotlin *
Из песочницы

Эта статья - краткий обзор по разделу меню "Refactor" в IDEA для начинающих.

Рассматриваются основные способы рефакторинга для Java-файлов, для большинства способов рефакторинга приведены анимированные картинки и примеры использованного кода.

Осторожно, много тяжелых gif-картинок.

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 6

Войти в IT после 30 через Java

Время на прочтение 13 мин
Количество просмотров 14K
Java *Карьера в IT-индустрии Интервью

Всем ку!

Эта статья является текстовой адаптацией одного из самых популярных интервью на youtube-канале "АйТиБорода" - интервью про Java (более полумиллиона просмотров). Если кто-то не знает, на этом канале несколько раз в месяц появляются интервью с айтишниками о технологиях, ЯП и персоналиях.

Приятного прочтения!

Читать далее
Всего голосов 31: ↑21 и ↓10 +11
Комментарии 23

Telegram-бот на Java для самых маленьких — от старта до бесплатного размещения на heroku

Время на прочтение 15 мин
Количество просмотров 123K
Мессенджеры *Java *
✏️ Технотекст 2021


В следующих сериях


Это первая статья в моей серии «для самых маленьких» — следующая посвящена Telegram-боту на вебхуках на Spring с блекджеком и Redis и клавиатурами. Будут ещё:)

Для кого написано


Если вы ни разу не писали Telegram-ботов на Java и только начинаете разбираться — эта статья для вас. В ней подробно и с пояснениями описано создание реального бота, автоматизирующего одну конкретную функцию. Можно использовать статью как мануал для создания скелета своего бота, а потом подключить его к своей бизнес-логике.

Предыстория


Когда моя дочь начала изучать арифметику, я между делом накидал алгоритм генерации простых примеров на сложение и вычитание вида «5 + 7 =», чтобы не придумывать и не гуглить для неё задания.

И тут на глаза попалась новость, что Telegram выпустил новую версию Bot API 5.0. Ботов я раньше не писал, и потому решил попробовать поднять бота как интерфейс для своей поделки. Все примеры, которые мне удалось найти, показались либо совсем простыми (нужные мне функции не были представлены), либо очень сложными для новичка. Также мне не хватало объяснений, почему выбран тот или иной путь. В общем, написано было сразу для умных, а не для меня. Потому я решил описать свой опыт создания простого бота — надеюсь, кому-нибудь это поможет быстрее въехать в тему.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 16

Кластеризация и классификация больших Текстовых данных с помощью машинного обучения на Java. Статья #2 — Алгоритмы

Время на прочтение 18 мин
Количество просмотров 4.5K
Java *NoSQL *Big Data *Машинное обучение *Natural Language Processing *
image

Привет, Хабр! Сегодня будет продолжение темы Кластеризация и классификация больших Текстовых данных с помощью машинного обучения на Java. Данная статья является продолжением первой статьи.



Статья будет содержать Теорию, и реализацию алгоритмов который я применял.


Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 2

Книга «Система модулей Java»

Время на прочтение 9 мин
Количество просмотров 4.1K
Блог компании Издательский дом «Питер» Java *Профессиональная литература *
image Привет, Хаброжители! Создать надежное и безопасное приложение гораздо проще, если упаковать код в аккуратные блоки. Система модулей в Java представляет собой языковой стандарт для создания таких блоков. Теперь вы можете контролировать взаимодействия различных JAR и легко обнаруживать недостающие зависимости. Фундаментальные изменения архитектуры затронули ядро Java, начиная с версии 9. Все API ядра распространяются в виде модулей, а для библиотек, фреймворков и приложений аналогичный подход можно считать хорошей практикой и рекомендацией.

Вы освоите наилучшие практики модульного проектирования, отладки приложения и его развертывания перед сдачей в продакшен.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 6

Собеседование Backend-Java-разработчика: вопросы и где искать ответы. Часть 2

Время на прочтение 30 мин
Количество просмотров 57K
Java *

Публикую продолжение сборника вопросов-ответов с собеседований на Backend-Java-разработчика. В первой части мы прошлись по Java и Spring. А в этой поговрим о Hibernate, базах данных, паттернах и практиках разработки, об одной популярной библиотеке, поддержке и сопровождении наших приложений, а также посмотрим на альтернативные шпаргалки и подведём итоги.

Потопали
Всего голосов 21: ↑18 и ↓3 +15
Комментарии 14

Собеседование Backend-Java-разработчика: вопросы и где искать ответы. Часть 1

Время на прочтение 34 мин
Количество просмотров 65K
Java *

Когда-то я проходил серию собеседований на Backend-Java-разработчика и записывал вопросы себе на будущее, чтобы потом можно было пробежаться и освежить память. Подумалось, что, вероятно, данный сборник будет полезен не только мне, поэтому сдул с него пыль, набросал ответов и делюсь с сообществом. На оригинальность и исключительность не претендую: подобные статьи уже были и на Хабре, и много где ещё — в конце (во второй части) приведу список ссылок, чтобы шпаргалка была максимально полной.


Точно установить сложность всех вопросов не берусь — на разном уровне их потребуется раскрыть с различной степенью подробности. Я написал ответы где-то на плюс-минус middle, щедро приправив ссылками для дальнейших изысканий. На самые популярные вопросы сразу перенаправляю в источники с готовыми ответами. Заодно посмотрим по ссылкам в статье, насколько Хабр может помочь в подготовке к собесам.


Текста получилось много, поэтому пришлось разбить на две части. В первой поговорим про Java и Spring, а обо всём остальном — во второй. Вторая часть тут

Погнали
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 7

Ласточка в мире микросервисов

Время на прочтение 19 мин
Количество просмотров 9K
Java *

Helidon – по гречески ласточка (Χελιδόνι), это такая маленькая птичка из отряда воробьиных с длинными острыми крыльями и характерным двойным хвостом. 

Уверен, каждый из нас восхищается полетом и грацией этой птички, а то, как она живет в стаях, чем-то напоминает мир микросервисов.

Helidon для нас, программистов, это набор библиотек прежде всего для разработки микросервисов, и является представителем семейства, назовем его, MicroProfile based средств разработки. Является полностью Open Source проектом, лежит на GitHub, и распространяется под лицензией Apache 2.0.

Читать далее
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 12

Уведомления от Bitbucket в Telegram

Время на прочтение 4 мин
Количество просмотров 3.4K
Java *
Из песочницы


Суть проекта


Когда я только устроился на первую работу разработчиком Java, сразу же возникла проблема уведомлений о событиях в Bitbucket. Направление Java разработки было новым (я был вторым программистом), поэтому среду для разработки пришлось настраивать мне. После установки и настройки Bitbucket Server приходилось шариться по Pull Request-ам в поисках новых комментариев, на которые нужно ответить, да и узнавать о новых Pull Reqest-ах было проблематично. Да, кто-то скажет, что есть email уведомления, но коммон, у нас же эпоха Telegram.

Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 2

Lamoda x Joker 2020

Время на прочтение 2 мин
Количество просмотров 1.5K
Блог компании Lamoda Java *Kotlin *Конференции
Привет, Хабр! Меня зовут Влад Кошкин, я java-разработчик в Lamoda. С 25 по 28 ноября наша команда впервые примет участие в онлайн-конференции Joker 2020.

У Lamoda огромный и сложный склад: 40 000 м², миллионы товаров на полках, тысячи людей — и все это мы автоматизируем на Java через WMS (Warehouse Management System).

image

На нашем стенде мы рассказываем о том, как подружили Kotlin с бэкендом, строим модульную архитектуру, позволяем разработчикам разрабатывать, избегая лишних встреч. А еще мы будем травить байки на стенде — под катом расписание и игра-квест, где можно почувствовать себя частью команды.
Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 0

Spring Security — пример REST-сервиса с авторизацией по протоколу OAuth2 через BitBucket и JWT

Время на прочтение 16 мин
Количество просмотров 24K
Java *
В предыдущей статье мы разработали простое защищенное веб приложение, в котором для аутентификации пользователей использовался протокол OAuth2 с Bitbucket в качестве сервера авторизации. Кому-то такая связка может показаться странной, но представьте, что мы разрабатываем CI (Continuous Integration) сервер и хотели бы иметь доступ к ресурсам пользователя в системе контроля версий. Например, по такому же принципу работает довольно известная CI платформа drone.io.

В предыдущем примере для авторизации запросов к серверу использовалась HTTP-сессия (и куки). Однако для реализации REST-сервиса данный способ авторизации не подходит, поскольку одним из требований REST архитектуры является отсутсвие состояния. В данной статье мы реализуем REST-сервис, авторизация запросов к которому будет осуществляться с помощью токена доступа (access token).
Читать дальше →
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 0

Мой путь к получению Oracle Certified Associate и Oracle Certified Professional

Время на прочтение 4 мин
Количество просмотров 11K
Oracle *Java *Карьера в IT-индустрии
Из песочницы
Всем привет, меня зовут Руслан. Я работаю в крупном банке на должности team lead'a.

Хочу поделиться с вами моим опытом получения заветных званий Oracle Certified Associate, Java SE 8 Programmer (далее OCA) и Oracle Certified Professional, Java SE 8 Programmer (далее OCP).

image

Обновленный бейдж Oracle Certified Associate
image

Обновленный бейдж Oracle Certified Professional
image

Да, я знаю, что на Хабре уже есть достаточное количество статей на эту тему: раз, два, три, четыре. На мой взгляд, они хороши, но не отвечают на главный вопрос, возникший у меня уже после того, как я начал готовиться к первому экзамену — OCA. Ответа на этот животрепещущий вопрос я так и не смог найти — а зачем оно мне надо с точки зрения разработчика, какие «профиты» кроме бейджа и электронного сертификата на сайте я получу? Не будет ли это пустой тратой денег и времени?
Читать дальше →
Всего голосов 9: ↑6 и ↓3 +3
Комментарии 8

Динамическое создание Spring Bean в рантайме

Время на прочтение 3 мин
Количество просмотров 5K
Блог компании OTUS Программирование *Java *
Перевод

Перевод подготовлен специально для будущих студентов курса "Разработчик на Spring Framework".

Эта статья о динамическом создании бинов за пять лет стала самой популярной в моем блоге (более 9300 просмотров). Пришло время ее обновить. Также я добавил пример на Github.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 6

Сбор данных и отправка в Apache Kafka

Время на прочтение 6 мин
Количество просмотров 5.1K
Тестирование IT-систем *Java *Apache *

Введение


Для анализа потоковых данных необходимы источники этих данных. Так же важна сама информация, которая предоставляется источниками. А источники с текстовой информацией, к примеру, еще и редки.


Из интересных источников можно выделить следующие: twitter, vk. Но эти источники подходят не под все задачи.


Есть источники с нужными данными, но эти источники не потоковые. Здесь можно привести следующее ссылки: public-apis.


При решении задач, связанных с потоковыми данными, можно воспользоваться старым способом.


Скачать данные и отправить в поток.


Для примера можно воспользоваться следующим источником: imdb.
Следует отметить, что imdb предоставляет данные самостоятельно. См. IMDb Datasets. Но можно принять, что данные собранные напрямую содержат более актуальную информацию.


Язык: Java 1.8.
Библиотеки: kafka 2.6.0, jsoup 1.13.1.

Читать дальше →
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 0

Обеспечение границ компонентов чистой архитектуры с помощью Spring Boot и ArchUnit

Время на прочтение 11 мин
Количество просмотров 2.7K
Java *
Перевод

Когда мы создаем программное обеспечение, мы хотим создавать «-способности»: понятность, ремонтопригодность, расширяемость и - в тренде сейчас - декомпозицию (чтобы мы могли разложить монолит на микросервисы, если возникнет необходимость). Добавьте в этот список свою любимую «способность».

Большинство - возможно, даже все - из этих «возможностей» идут рука об руку с чистыми зависимостями между компонентами.

Если компонент зависит от всех других компонентов, мы не знаем, какие побочные эффекты будет иметь изменение одного компонента, что затрудняет поддержку кодовой базы и еще более затрудняет ее расширение и разложение.

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

Это тем более важно, если мы работаем над монолитной кодовой базой, охватывающей множество различных областей бизнеса или «ограниченных контекстов», если использовать жаргон Domain-Driven Design.

Как мы можем защитить нашу кодовую базу от нежелательных зависимостей? С тщательным проектированием ограниченных контекстов и постоянным соблюдением границ компонентов. В этой статье показан набор практик, которые помогают в обоих случаях при работе со Spring Boot.

Читать далее
Рейтинг 0
Комментарии 2

Обработка исключений в контроллерах Spring

Время на прочтение 9 мин
Количество просмотров 56K
Программирование *Java *
Из песочницы
✏️ Технотекст 2021

image


Часто на практике возникает необходимость централизованной обработки исключений в рамках контроллера или даже всего приложения. В данной статье разберём основные возможности, которые предоставляет Spring Framework для решения этой задачи и на простых примерах посмотрим как всё работает. Кому интересна данная тема — добро пожаловать под кат!

Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 8

Вклад авторов

Работа

Java разработчик
439 вакансий