Как стать автором
Обновить
204.86
Рейтинг

Java *

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

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Ускорение Maven сборки в Docker

Java *Виртуализация *
Перевод

Ранее я описал различные методы ускорения ваших Maven сборок. 

Сегодня я хотел бы расширить их область применения и сделать то же самое для сборок Maven внутри Docker.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 1.3K
Комментарии 0

Новости

Neoflex проводит Hiring Week для Java-разработчиков и системных аналитиков

Блог компании Neoflex JavaScript *Java *Анализ и проектирование систем *Разработка под Java ME *


С 18 по 24 октября Neoflex приглашает Senior Java-разработчиков и системных аналитиков принять участие в Neoflex Hiring Week. Присоединяйся к нашей команде и получай welcome-бонус в размере одного оклада.

Как принять участие в Neoflex Hiring Week?

  • Заполни заявку на сайте;
  • Получи подтверждение от рекрутера;
  • Пройди техническое собеседование;
  • Прими оффер в течение 48 часов и получи welcome-бонус!
Читать дальше →
Рейтинг 0
Просмотры 797
Комментарии 0

100% загрузка CPU: моя вина?

Блог компании RUVDS.com Java *Отладка *
Перевод

История бага JDK и связанной с ним ошибки разработки, приведшей к нештатной 100%-загрузке CPU. Что пошло не так, что можно было сделать лучше, и кто, в конце концов, оказался виноват?
Читать дальше →
Всего голосов 46: ↑41 и ↓5 +36
Просмотры 12K
Комментарии 7

Неистовые потуги или как поиграть на midi-клавиатуре в стиле linux-way

Java *Разработка под Linux *Звук
Из песочницы

Относительно короткая история о том как я хотел поиграть на midi-клавиатуре, но не совладал с аудиоподсистемами линуха...

Читать далее
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 2.4K
Комментарии 7

Миграция со Spring Boot на Quarkus. Магия или безумие?

Программирование *Java *Проектирование и рефакторинг *API *
Перевод
Tutorial

Quarkus – это стек Java, приспособленный для работы с OpenJDK HotSpot (или OpenJ9 на zSeries) и GraalVM, собранный из оптимизированных библиотек и стандартов Java. Он хорошо подходит для создания сильно масштабируемых приложений, при этом значительно скромнее использует ресурсы CPU и памяти, нежели другие фреймворки Java. Quarkus может работать с традиционными веб-приложениями, бессерверными приложениями и даже с функциями, предоставляемыми как услуга.

Существует много документированных случаев, в которых организации переносили свои приложения на Quarkus. В этой статье рассмотрим один из таких миграционных путей: со Spring Boot на Quarkus. Есть в этом своя магия и свое безумие. Магия – это когда миграция осуществляется как по мановению руки, и ни одной строки кода при этом менять не приходится. Безумие – в том, чтобы попытаться осознать, как все это делается.

Читать далее
Всего голосов 10: ↑6 и ↓4 +2
Просмотры 3.9K
Комментарии 2

Вячеслав Смирнов. Профилирование JVM в Kubernetes

Java *Kubernetes *

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


Вячеславу повезло использовать разные инструменты. И повезло найти разные дефекты микросервисов на основе JVM. Спикер проанализировал, разделил инструменты и дефекты микросервисов на группы, и хочет рассказать о:


  • подборе профайлеров и их настройках под задачу;
  • собранных рецептах профилирования JVM в Kubernetes;
  • моментах, когда профилирование вредит, а когда помогает.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 2.7K
Комментарии 7

Книга «Классические задачи Computer Science на языке Java»

Блог компании Издательский дом «Питер» Java *Профессиональная литература
image Привет, Хаброжители! Cтолкнулись с «неразрешимой» проблемой при разработке программного обеспечения? Скорее всего, кто-то уже справился с этой задачей, и вы можете не ломать голову. Дэвид Копец собрал наиболее полезные готовые решения, принципы и алгоритмы. «Классические задачи Computer Science на языке Java» — это мастер-класс по программированию, содержащий 55 практических примеров, затрагивающих самые актуальные темы: базовые алгоритмы, ограничения, искусственный интеллект и многое другое.

В этой книге:

— Рекурсия, мемоизация и битовые манипуляции.
— Поисковые, графовые и генетические алгоритмы.
— Проблемы ограничений.
— Кластеризация методом k-среднего, нейронные сети и состязательный поиск.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 4.4K
Комментарии 5

Оценка событий JDK Flight Recorder с помощью JfrUnit

Java *
Перевод
Tutorial

Гуннар Морлинг, разработчик программного обеспечения с открытым исходным кодом в Red Hat, представил JfrUnit, новую утилиту тестирования, которую можно использовать для обнаружения снижения производительности с JUnit или Spock Framework. Интерпретация результатов тестирования производительности, таких как время отклика, может быть затруднена, поскольку могут быть регрессии, вызванные другими факторами, такими как другие процессы или сеть, а не самим приложением. JfrUnit может использоваться для тестирования производительности приложения путем измерения распределения памяти, операций ввода-вывода, запросов к базе данных или других элементов, зависящих от приложения.

JDK Flight Recorder (JFR) собирает события из запущенного приложения, которые могут использоваться для диагностики или профилирования приложения. Эти события могут быть практически любыми, от выделения памяти до сборки мусора. 

Инструмент можно использовать непосредственно из командной строки, но он часто используется вместе с JDK Mission Control, предоставляющим графический интерфейс и различные плагины, которые можно использовать вместе с JFR. JfrUnit позволяет создавать утверждения, проверяющие события JFR из приложения.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 628
Комментарии 0

Ускорение Maven сборки

Java *
Перевод
Tutorial

Узнайте, как сделать сборки Maven более быстрыми и эффективными

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

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 2.9K
Комментарии 5

Хотели как в FAANG, а вышло как всегда или Опыт собеседования в Тинькофф в 3 актах

Java *Карьера в IT-индустрии IT-компании
Из песочницы

Предисловие Около года назад я задался целью получить оффер от FAANG. Как следствие, постоянной частью моей жизни стали тематические форумы, площадки и вся сопутствующая атрибутика. Спустя какое-то время я попробовал себя на собеседованиях в околоFAANGoвые компании: Lyft, Spotify, Booking и т. д, где-то успешно, где-то не очень. В это же время мне порекомендовали попробовать пройти собеседование в Тинькофф банк, который внедрил схожий процесс. После стандартного общения с HR менеджером была получена ссылка на описание процесса собеседования. “Хм, почти что FAANG + тех. интервью по Primary Skill”, - подумал я и сказал, что готов приступать. В тот же час было назначено 2 интервью: техническое и coding, а вот 3 этап, system design, нужно было заслужить успешным прохождением первых двух. Почему именно эти 2 части являлись основополагающими, осталось неясным.

Акт первый, технический

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

Читать далее
Всего голосов 177: ↑161 и ↓16 +145
Просмотры 85K
Комментарии 217

Подробное руководство по инверсии зависимостей. Часть 1

Программирование *Java *Анализ и проектирование систем *Проектирование и рефакторинг *
Из песочницы

Инверсия зависимостей - один из принципов SOLID, который лежит в основе построения гексагональной архитектуры приложения. Существует множество статей, которые раскрывают суть принципа и объясняют как его применять. И, возможно, читатель уже знаком с ними. Но в рамках данной статьи будет продемонстрирован подробный разбор "тактических" приемов для успешного использования инверсии зависимостей и, возможно, в этом смысле даже искушенный читатель сможет найти для себя что-то новое. Примеры представлены на языке программирования Java с соответствующим окружением, но при этом для чтения достаточно понимания похожих языков программирования.

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 9.1K
Комментарии 130

Создание собственных RequestBody и ResponseBody

Java *
Из песочницы

Думаю, что многие из вас сталкивались с добавлением собственных HttpMessageConverter в своём проекте. Ну или хотя бы слышали за такую возможность. Однако, возникают ситуации, когда мы хотим не только добавить свой собственный конвертер, но и создать собственную аннотацию для явного обозначения того, что тело ответа или запроса будут обработаны нестандартными способами Spring. Более того, данные аннотации могут содержать дополнительную информацию, которая потребуется вашему конвертеру.

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

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 2.1K
Комментарии 0

Laconic POM для Maven: скрываем многословность pom.xml

Java *XML *Системы сборки *

Зачастую, одна из претензий к Maven - выбор многословного XML для описания проекта. Polyglot for Maven должен был решить эту проблему, но проект не "взлетел". Для буквального сокрытия этой проблемы существует IDEA-плагин Laconic POM.

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 1.4K
Комментарии 11

Функции области видимости (Scope Function) в Kotlin

Java *Kotlin *

Сразу оговорюсь, что статья объясняет базовые понятия, и если вы уже программируете на Kotlin, то, скорее всего, вы уже все знаете. Большая часть того, что приведено в статье, освещено в официальной документации, поэтому статью можно рассматривать как дополнительный материал к ней.

В статье показано как реализованы функции области видимости, даны примеры и рекомендации по их использованию

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 2.5K
Комментарии 4

Упрощаем работу в Camunda Modeler с помощью плагинов

Блог компании ДомКлик Программирование *Java *Визуальное программирование *
Tutorial

Camunda Modeler позволяет довольно легко набросать BPMN-схему процесса, перетащив элементы в рабочую область и соединив их стрелками. Далее дела обстоят немного сложнее: нужно быть очень внимательным, чтобы с первого раза для каждого элемента заполнить необходимые поля в панели свойств и не допустить ни одной ошибки. С этой точки зрения создание исполняемых BPMN-схем напоминает программирование в Блокноте.

Например, очень легко в Script Task написать скрипт на Groovy и забыть указать Script Format. Тогда по умолчанию движок попробует выполнить переданную ему строку как JUEL-код, и вряд ли мы получим ожидаемый результат.

Было бы неплохо иметь что-то вроде подсказок, на какие поля нужно обратить внимание, какое значение вписать, какие флаги отметить, и так далее в соответствии с принятыми в команде практиками. К счастью, Camunda Modeler позволяет расширять функциональность, не форкая всё приложение, а применив плагины, что мы и решили сделать.

Читать далее
Всего голосов 27: ↑27 и ↓0 +27
Просмотры 2.4K
Комментарии 1

Сюрпризы конкатенации

Java *

Вопрос в стиле головоломок с offline-конференций: Что выведет этот код при запуске?


import java.util.concurrent.atomic.AtomicInteger;

public class Disturbed {

    public static void main(String... args) {
        AtomicInteger counter = new AtomicInteger(1);
        System.out.println(
            "First two positive numbers: " +
            counter + 
            ", " +
            counter.incrementAndGet()
        );
    }

}

Помедитируйте немного над кодом и приходите за ответом под кат.

Читать дальше →
Всего голосов 25: ↑25 и ↓0 +25
Просмотры 4.2K
Комментарии 5

Книжная доминация Python и Java

PHP *Python *Java *Профессиональная литература

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

Без всякого сомнения, самыми влиятельными языками программирования в настоящий момент являются Java и Python. И я приведу простой пример, почему их величие еще не скоро сойдет на нет.

P.s. я специально опускаю из обсуждения JS, Swift и Котлин, так как их доминирующее положение обусловлено немного другими факторами, нежели я обсужу в этой статье.

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 6.2K
Комментарии 8

Осенний Java-хардкор на Joker 2021

Блог компании JUG Ru Group Java *Конференции

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

О хардкоре: конечно, без него не обходится ни один Joker, но в этот раз программный комитет особенно доволен получившимся. В списке докладов под катом мы пометили хардкорные значком 🔥.

О спикерах: будут и отлично знакомые участникам имена (Алексей Шипилёв, Джош Лонг, Евгений Борисов), и интересные новые. Например, будет парный доклад Мэтта Райбла и Брайана Демерса, а у обоих этих людей есть звание Java Champion — часто ли услышишь двух «чемпионов» сразу?

О форматах: доклады важны, но в этот раз дело не ограничится ими — например, Евгений Борисов в прямом эфире проведет техническое интервью на senior-разработчика. 

Под катом — полная программа, разбитая на тематические блоки.

Смотреть программу
Всего голосов 25: ↑24 и ↓1 +23
Просмотры 4.4K
Комментарии 2

Что такое библиотека Pebble Templates и зачем она нужна?

Блог компании Ростелеком Java *SQL *Kotlin *

Эта статья будет полезной, если вам часто приходится искать более новые и изощренные решения в процессе реализации фичи. Мне, например, нужно было применить динамические фильтры к выборке из БД. При этом их нужно было использовать не в одном месте, а, например, в блоке WITH. Реализация через JPA Specification выглядела довольно сложно, а возможно, оказалась бы вообще невыполнимой. Даже при помощи JPA Repository потребовалось бы много лишних операций, маппингов и слияний. 

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 1.1K
Комментарии 14

Сравниваем Java и Kotlin

Блог компании OTUS Программирование *Java *Kotlin *
Перевод

Предлагаю начать с общих черт.

• Статическая типизация

• Бесплатны и с открытым кодом

• Код преобразуется в байт-код

• Интероперабельность

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

Читать далее
Всего голосов 17: ↑3 и ↓14 -11
Просмотры 8.1K
Комментарии 15

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