Обновить
512K+

Java *

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

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

Application performance management (APM) от Broadcom для мониторинга производительности приложений (включая мобильные)

Время на прочтение8 мин
Охват и читатели7.8K
Всем привет! В этой статье расскажем о возможностях мониторинга производительности приложений одного из лидеров квадранта Gartner c APM-решениями — Broadcom.

image

Appdynamics, Dynatrace и New Relic достаточно известны на российском рынке. Broadcom чуть менее знаком, этакая серая лошадка, однако, имеет не уступающий всем троим функционал мониторинга приложений. А использование APM-решения от Broadcom в комплексе с другим их продуктом, зонтичной AIOps-системой DX Operations Intelligence, позволит создать единое окно мониторинга для разнокалиберного ПО и инфраструктуры. Под катом текст и скриншоты.
Читать дальше →

Java Core для самых маленьких. Часть 3. Переменные

Время на прочтение7 мин
Охват и читатели30K

В этой статье мы говорим о переменных и связанных с ними темами!

Научимся создавать переменные и константы.
Узнаем что такое инициализация переменных.
Поговорим о литералах.
Выполним преобразование и приведение типов данных

Читать далее

Project Loom: Современная маcштабируемая многопоточность для платформы Java

Время на прочтение27 мин
Охват и читатели30K


Эффективное использование многочисленных ядер современных процессоров — сложная, но всё более важная задача. Java была одним из первых языков программирования со встроенной поддержкой concurrency. Ее concurrency-модель, основанная на нативных тредах, хорошо масштабируется для тысяч параллельно выполняющихся стримов, но оказывается слишком тяжеловесной для современного реактивного программирования с сотнями тысяч параллельных потоков.


Ответ на эту проблему — Project Loom. Он определяет и реализует в Java новые легковесные параллельные примитивы.


Алан Бейтман, руководитель проекта OpenJDK Core Libraries Project, потратил большую часть последних лет на проектирование Loom таким образом, чтобы он естественно и органично вписывался в богатый набор существующих библиотек Java и парадигм программирования. Об этом он и рассказал на Joker 2020. Под катом — запись с английскими и русскими субтитрами и перевод его доклада.

Книга «gRPC: запуск и эксплуатация облачных приложений. Go и Java для Docker и Kubernetes»

Время на прочтение10 мин
Охват и читатели12K
image Привет, Хаброжители! Год от года обретая новых сторонников, облачно-ориентированные и микросервисные архитектуры стали основой современного IT. Такой переход значительно повлиял и на структуру коммуникаций. Теперь приложения часто подключаются друг к другу по сети, и это происходит с помощью технологий межпроцессной коммуникации. Одной из наиболее популярных и эффективных технологий такого рода является gRPC, но информации о ней не хватает. Так было, пока не вышла эта книга!

Наконец архитекторы и разработчики смогут подробно разобраться, как технология gRPC устроена «под капотом», и для этого не придется разгребать десятки устаревших ссылок в поисковике.

Поняв основы gRPC и изучив паттерны коммуникации, вы научитесь создавать приложения gRPC на Go и Java, запускать их в продакшене, а также разберетесь, как gRPC взаимодействует с экосистемой Kubernetes.
Читать дальше →

Partial Update library. Частичное обновление сущности в Java Web Services

Время на прочтение6 мин
Охват и читатели9.8K

В структуре веб-сервисов типичным базовым набором операций над экземплярами сущностей(объектами) является CRUD (Create, Read, Update и Delete). Этим операциям в REST соответствуют HTTP методы POST, GET, PUT и DELETE. Но зачастую у разработчика возникает необходимость частичного изменения объекта, соответствующего HTTP методу PATCH. Смысл его состоит в том, чтобы на стороне сервера изменить только те поля объекта, которые были переданы в запросе. Причины для этого могут быть различные:

Читать далее

Java Core для самых маленьких. Часть 2. Типы данных

Время на прочтение3 мин
Охват и читатели33K

Java - строго-типизированный язык программирование, что это такое?
В Java есть примитивные типы данных, а это что такое?
Каждый примитив обладает своим размером и диапазоном значений.

Обо всем этом вы узнаете в этой статье про типы данных в Java!

Читать далее

Code evaluation как средство отладки

Время на прочтение3 мин
Охват и читатели3.2K

Господа разработчики java приложений. Сегодня вашему вниманию представляется простой способ использования code evaluation, реализация которого позволит исполнять произвольный код в работающем приложении, что в свою очередь позволит сэкономить массу времени на CI/CD.

Читать далее

Микросервисы: от CRUD до Native Image. Часть первая

Время на прочтение5 мин
Охват и читатели13K

Слово «микросервисы» на слуху последние несколько лет. Технология активно развивается, на онлайн-конференциях о ней говорят, да и сами мы пишем их каждый день. Когда-то новый подход уже стал рутиной. Но мне как Java-архитектору интересно то, каким код был раньше, как он менялся, какие способы исполнения популярны сейчас и будут использоваться в 2021 году: асинхронность, контейнеры, FaaS. 

Так родился этот пост в двух частях, который я подготовил для Хабра на основе своих статей в блоге компании BellSoft и круглого стола Joker 2020, где мы обсуждали будущее джавы. Актуальное сегодня улучшение экосистемы для бэкендов не может существовать без понимания того, как создавать микросервисы: писать с нуля или вырезать скальпелем из монолитов? Предлагаю в первой части поговорить об их сущности, а во второй — разложить микросервисный контейнер на слои и посмотреть на вклад каждого слоя.

Читать далее

Начало работы с нейронными сетями

Время на прочтение13 мин
Охват и читатели62K

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

Читать далее

Односторонние и двусторонние отношения в Hibernate

Время на прочтение5 мин
Охват и читатели129K

Всем нам хорошо известен ответ на вопрос, какими могут быть отношения между сущностями в Hibernate и JPA. Вариантов всего четыре

Читать далее

Mockito. Из чего он приготовлен и как его подавать?

Время на прочтение7 мин
Охват и читатели8.3K

Думаю, многим довелось выпить какой-нибудь напиток, который глубоко впился в наши вкусовые рецепторы, что нам хочется пить его каждый день. Так вот для меня таким «напитком» стал Mockito. Один раз написав простенький тест, можно вернуть себе веру в магию. Я всё ещё помню, как удивлялся тому, как он работает.

Чему же я удивился? Например, этому:

private static class Apple {
   private String color;
   public String getName() {return color;}
}

@Test
public void basic() {
   Apple apple = mock(Apple.class);
   when(apple.getName()).thenReturn("Red");
   assertEquals("Red", apple.getName()); // true
}

С точки зрения написания кода, это очень красиво и понятно:

  • Мы создаём экземпляр-заглушку для класса Apple.
  • Затем мы как бы говорим, когда вызывается метод apple.getColor(), то верни «Red».
  • Далее мы просто проверяем действительно ли apple.getColor() возвращает то, что мы хотим, и это работает!

Внимание! Не читайте дальше, если и дальше хотите верить в магию. Дальнейшее содержание статьи отнимет у вас и эту толику детского счастья.

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

Топ-5 курсов по Java для фуллстек-разработчиков

Время на прочтение4 мин
Охват и читатели25K
В этом материале приведены сведения о пяти лучших курсах, предназначенных для тех, кто хочет начать карьеру в сфере фуллстек-разработки на Java. Роль подобных разработчиков стала в наши дни достаточно популярной. Многие компании нуждаются в таких специалистах. Эти специалисты, правда, пользуются не только Java. Среди применяемых ими инструментов можно, например, отметить Angular, Spring, REST API, HTML, CSS, различные системы управления базами данных.

Изучение фулстек-разработки, основанной на Java, может включать в себя и освоение других языков программирования, используемых при разработке клиентских и серверных приложений. Кроме того, повысить ценность Java-разработчика могут знания в сфере информационной безопасности и в области работы с базами данных.



Курсы, сведения о которых приведены в этом материале, способны помочь выйти на достаточно высокий уровень тому, кто ничего не знает о программировании на Java и о работе с другими технологиями. Автор материала подчёркивает тот факт, что он никак не связан с организациями, о курсах которых он рассказывает.
Читать дальше →

Как мы переходили на Java 15 или история одного бага в jvm длиной в 6 лет

Время на прочтение6 мин
Охват и читатели14K

Мы готовились к выходу Java 15 ради некоторых её новых возможностей. В частности — текстовых блоков. Да, они появились в Java 14 (о новых функциях в Java 14 можно посмотреть здесь), но только как превью-фича, а, начиная с Java 15, она стала доступна в виде окончательно готовой функции.

Мы в hh.ru привыкли внедрять и использовать самые современные технологии в разработке ПО. Пробовать что-то новое — одна из ключевых задач команды Архитектура. Пока многие пишут на Java 8, мы уже близки к тому, чтобы отправить на свалку истории Java 11.

Читать далее

Ближайшие события

Java Core для самых маленьких. Часть 1. Подготовка и первая программа

Время на прочтение6 мин
Охват и читатели76K

Запускаю серию обучающих статей по Java Core c картинками, без смс и регистрации!

В этой статье мы быстро пройдемся по истории языка Java и его особенностях.
Установим JDK и подготовим ваш камплюктер для работы с ним.
Конечно же поговорим об IDE и установим IntelliJ IDEA.
Создадим, запустим и разберем первую Java-программу.

Уверен, понятно будет даже самым маленьким!

Читать далее

Книга «Стильный Java. Код, который работает всегда и везде»

Время на прочтение13 мин
Охват и читатели7.5K
image Привет, Хаброжители! В современном мире разработки успешность приложения уже не определяется параметром «просто работает». Хороший программист должен знать возможности языка, практические приемы проектирования и платформенные средства для достижения максимальной производительности и жизнеспособности программ. Эта книга написана для разработчиков, которые хотят создавать качественный софт. Затронуты все ключевые показатели ПО: скорость, затраты памяти, надежность, удобочитаемость, потоковая безопасность, универсальность и элегантность. Реальные задачи и прикладные примеры кода на Java помогут надежно усвоить концепции. Пройдя все этапы создания центрального проекта книги, вы сможете уверенно выбрать правильный путь оптимизации собственного приложения.
Читать дальше →

Как получилось, что 0,1 + 0,2 = 0,30000000000000004?

Время на прочтение2 мин
Охват и читатели62K

С детства нас учили, что 0,1 + 0,2 равно 0,3. Однако в загадочном мире вычислений все работает по-другому. Недавно я начал писать код на JavaScript и, читая о типах данных, заметил странное поведение 0,1 + 0,2, не равного 0,3.

Читать далее

Вы часто используете null? А он у нас в спецификации

Время на прочтение5 мин
Охват и читатели7.1K

В нынешнее время для большинства разработчиков стали очевидными минусы использования null как возвращаемых типов или передачи их как аргумента.

Младшие разработчики даже если не понимают, то обычно следуют "чистому коду" (прочитав книжку Роберта Мартина). Поэтому код с возможностью возникновения NPE стал встречаться реже, хотя, конечно, они есть.

Не хочу сказать, что любое использование null - это плохо, скорее тут можно сказать "семь раз отмерь, один раз отрежь".

Тем не менее, я долгое время не жаловался насчет NPE, даже когда разработчики с языков у которых строгий контроль на эту тему хвастались своим null-safety. Но из-за одного бага я понял, что просто использование null - это не так страшно, даже если вы возвращаете или передаете его. Разумеется, это очень плохо, но есть вещи хуже - null в спецификациях.

Было бы не особо интересно, если рассказ был об одной компании, которая сделала плохую спецификацию. Давайте вместо этого поговорим о более известной спецификации из Java EE - Java Servlet Specification, а конкретно возьмем класс HttpServletRequest и заглянем в метод getCookies()

Читать далее

Swagger (OpenAPI 3.0)

Время на прочтение9 мин
Охват и читатели481K

Swagger - это фреймворк для спецификации RESTful API. Его прелесть заключается в том, что он дает возможность не только интерактивно просматривать спецификацию, но и отправлять запросы – так называемый Swagger UI. Также возможно сгенерировать непосредственно клиента или сервер по спецификации API Swagger, для этого понадобиться Swagger Codegen.

Читать далее

Шпаргалка по Spring Boot WebClient

Время на прочтение6 мин
Охват и читатели119K

WebClient — это неблокирующий, реактивный клиент для выполнения HTTP-запросов.

ПРИМЕЧАНИЕ: Начиная с версии 5.0, этот класс законсервирован и в дальнейшем будут приниматься только минорные запросы на изменения и на исправления багов. Пожалуйста, подумайте об использовании org.springframework.web.reactive.client.WebClient, который имеет более современный API и поддерживает синхронную, асинхронную и потоковую передачи.

Читать далее

Свойства против методов

Время на прочтение5 мин
Охват и читатели9.2K


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

Читать дальше →