Обновить
128K+

Java *

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

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

Сравнение алгоритмов сортировки обменами

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

В данной статье рассматриваются различные варианты сортировки обменами, попутно даётся описание простого графического приложения processing.js с примерами сортировок.

Пузырьковая сортировка


Простейший вариант: перебирать массив от первого элемента к последнему, меняя местами (если потребуется) соседние элементы.

→ Проверить здесь

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

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

Время на прочтение3 мин
Охват и читатели3.3K
30 мая 2019 года Иван Углянский и Владимир Ситников представили свои доклады «Ходячие объекты-мертвецы, или GC всегда прав» и «Java тормозит: CodeCache edition» на встрече московского сообщества Java-разработчиков jug.msk.ru.


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

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

Время на прочтение1 мин
Охват и читатели2.5K
Привет, Хабр!

Недавно мы запустили конкурс разработчиков плагинов для TeamCity, и вы все еще можете в нем поучаствовать.



Правила просты: участники присылают нам плагины до 24 июня, а взамен получают годовую подписку на любую IDE от JetBrains на свой выбор. После того как сбор заявок завершится, мы — команда разработчиков TeamCity и трое независимых судей — наградим авторов трех лучших плагинов подарочными сертификатами Amazon на сумму от 1000 до 3000 долларов США. А еще один автор будет приглашен на экскурсию в офис JetBrains в Санкт-Петербурге или Мюнхене!
Читать дальше →

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

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


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

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

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


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

Создание многомодульного Gradle проекта SpringBoot + Angular в IDEA

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

Достаточно часто в моей практике используется связка Spring + Angular. Хочу поделится своим опытом по подготовке подобного проекта в среде разработки IntelliJ IDEA.


Создаем пустой Gradle проект


Для начала создадим пустой Gradle проект в IDEA, при этом снимите все галочки библиотек и фреймворков.




Пусть наш артефакт будет «demo», а группа «com.habr». После создания проекта будет автоматически сгенерировано файлы settings.gradle и build.gradle со следующим содержанием:

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

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

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

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


В этой статье вы узнаете, как извлечь изображение из хранилища Firebase для Android-приложения.

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

В Java 13 хотят добавить «текстовые блоки»

Время на прочтение2 мин
Охват и читатели11K
Блоки текста запланированы к появлению в Java 13. Об этом стало известно из JEP 355.

Блоки текста — это многострочный строковый литерал, который устраняет необходимость в экранировании большинства специальных символов и автоматически делает переносы строки.

Это дальнейшая попытка исследований, начавшихся в JEP 326(необработанные строковые литералы, был отозван).


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

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

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

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

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

Проходит пару минут, полет стабильный. QA-инженер делает smoke-тест, замечает, что приложение как-то неестественно подтормаживает. Списываем на прогрев кешей.

Проходит еще пару минут, первая жалоба из первой линии: у клиентов очень долго загружаются данные, приложение тормозит, долго отвечает и т.д. Начинаем беспокоиться… смотрим логи, ищем возможные причины.
Читать дальше →

Java это не только кровавый энтерпрайз, но и быстрые latency-sensitive приложения

Время на прочтение6 мин
Охват и читатели12K
Я занимаюсь алгоритмической торговлей в Райффайзенбанке. Это довольно специфичная область банковской сферы. Мы делаем торговую платформу, работающую с низкими и предсказуемыми задержками. Успех приложения зависит, в том числе, и от скорости работы приложения, поэтому нам приходится заниматься всем стеком, задействованным в торговле: приватными сетевыми каналами, специальным аппаратным обеспечением, настройками ОС и специальной JVM, и, конечно же, самим приложением. Мы не можем остановиться на оптимизации исключительно самого приложения — настройки ОС или сети имеют не меньшее значение. Это требует технической экспертизы и эрудиции, чтобы понять, как через весь стек проходят данные, и где может быть задержка.

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

Spring Boot — OAuth2 и JWT

Время на прочтение13 мин
Охват и читатели111K
Салют, друзья! Уже завтра стартуют первые занятия в новом потоке курса «Разработчик на Spring Framework». В связи с этим традиционно делимся полезным материалом по теме.



В этой статье мы изучим использование OAuth2 и JWT совместно со Spring Boot и Spring Security.

Сервер авторизации (Authorization Server)


Сервер авторизации (Authorization Server) является наиболее важным компонентом в архитектуре безопасности Web API. Сервер авторизации действует как единая точка авторизации и позволяет вашим приложениям и HTTP endpoints определять функции вашего приложения.

Сервер ресурсов (Resource Server)


Сервер авторизации предоставляет клиентам токен доступа для доступа к HTTP Endpoints сервера ресурсов (Resource Server). Сервер ресурсов — это коллекция библиотек, которая содержит HTTP Endpoints, статические ресурсы и динамические веб-страницы.
Читать дальше →

JetBrains Open Day в Петербурге

Время на прочтение1 мин
Охват и читатели7.6K
Приглашаем всех на День открытых дверей в Петербурге!



Устроим большую тусовку в нашем новом офисе. Будут тематические зоны по технологиям, доклады, сессии ответов на вопросы, еда, музыка и даже открытый stand-up.
Читать дальше →

Selenium WebDriver – Метрика тестов в реальном времени с использованием Grafana и InfluxDB

Время на прочтение6 мин
Охват и читатели8.8K
Всем привет! Уже на следующей неделе стартуют занятия в группе «Java QA Engineer». Этому и будет приурочена нынешняя публикация.



Обзор:


Ежедневное выполнение автоматизированных регрессионных тестов в рамках каждодневной сборки неизбежно на настоящий момент. Приятно находить и сообщать об ошибках, сразу после их нахождения. Одновременно с этим проблематично проводить сотни автоматизированных тестов и удаленное параллельное выполнение. Как только у вас появляется набор автоматизированных регрессионных тестов, вы можете разбить его на несколько наборов по бизнес-модулям и запускать их параллельно, как часть ежедневного автоматизированного регрессионного тестирования. Большинство таких тестовых наборов выполняются на удаленной виртуальной машине, а результаты теста становятся доступны только после его выполнения. В противном случае, вы можете заглянуть в консоль jenkins, чтобы увидеть логи процесса выполнения теста. Иногда это раздражает. Было бы здорово иметь приложение, которое выдавало бы информацию о прохождении теста во время выполнения их на удаленных виртуальных машинах.

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

[Питер] Встреча JUG.ru с Сергеем Мельниковым — Профилирование со сверхсветовой скоростью: теория и практика

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

В четверг, 30 мая, в петербургском офисе компании Oracle состоится встреча JUG.ru с Сергеем Мельниковым из Райффайзенбанка. Сергей расскажет, как с помощью обычного perf и технологии Intel Processor Trace получить высокодетализированные профили для ваших Java-приложений.


Участие бесплатное, регистрация обязательная. Зарегистрироваться можно тут. Информация о теме встречи и спикере — под катом.


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

Custom Bottom Sheet: как это должно работать

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

Предисловие


Не так давно я прочитал статью о Bottom Sheet'e и, посовещавшись с коллегами, принял решение внедрить данную штуку в наше приложение. Потратив достаточно часов с целью научить Bottom Sheet выезжать в несколько шагов (like Google Maps), я осознал его тупость и ограниченность.

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

Введение в Spring Boot Actuator

Время на прочтение10 мин
Охват и читатели164K
Салют, хабровчане! Уже через неделю стартуют занятия в новой группе курса «Разработчик на Spring Framework». В связи с этим делимся с вами полезным материалом в котором рассказано о том, что такое Spring Actuator и чем он может быть полезен.



  1. Что такое Spring Actuator?
  2. Как добавить Spring Actuator в проект Maven или Gradle?
  3. Создание проекта Spring Boot с зависимостью Spring Actuator.
  4. Мониторинг приложений с Spring Actuator Endpoints.
Читать дальше →

Пять лет рабства

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

Задумывались ли вы когда-нибудь о собственной игре? А о собственной многопользовательской игре? Думаю, что да! Многие из вас хотели бы прильнуть к разработке собственного шедевра, где сливаются ваша многогранная фантазия и исключительный перфекционизм. Я вас понимаю и хочу рассказать свою историю этого увлекательного пути.


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

Что должен знать каждый QA-инженер о Selenium 4?

Время на прочтение5 мин
Охват и читатели14K
Привет, друзья. Май богат новыми курсами, и прямо сейчас, в преддверии запуска курса «Java QA Engineer», мы продолжаем публиковать полезный материал для QA-специалистов.



Вернемся в август 2018 года, когда сообщество тестировщиков потрясла новость о том, что Саймон Стюарт, один из основателей Selenium, официально утвердил дату релиза и афишировал некоторые основные обновления Selenium 4 на Selenium Conference в Бангалоре. Четвертая версия всеми любимого фреймворка для автоматизации веб-тестирования должна была быть выпущена к рождеству 2018 года.
Читать дальше →

Модульное тестирование Json сериализации в Spring Boot

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


Введение


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

В данной статье будет рассмотрен один из сценариев, когда нам может понадобиться учесть особенности бизнес-логики приложения при сериализации (сценарий округления денежных сумм), на примере которого мы столкнёмся с механизмом сериализации в Spring Boot, а также описан возможный способ тестирования.
Читать дальше →

Excelsior JET прекращает разработку своего AOT-компилятора после 18 лет работы

Время на прочтение1 мин
Охват и читатели21K
Те, кто следит, что происходит с платформой Java, вероятно, в теме, что есть очень интересный AOT-компилятор для Java, разработанный российской компанией из Новосибирска. Это один из тех проектов, которыми можно гордиться.
Читать дальше →