Обновить
128K+

Java *

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

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

«У нас есть идеи для Maven 4 и даже Maven 5» — интервью с Robert Scholte, ключевым участником проекта Maven

Время на прочтение11 мин
Охват и читатели7.4K
Признайтесь, все мы долгими вечерами и ночами чинили билды в Maven, и в эти минуты очень хотелось сказать пару ласковых создателям этой чудной технологии. Иногда мечты сбываются! Нам с Женей (phillennium) попался чуть ли не самый главный разработчик Maven — Robert Scholte. И вот о чём мы его спросили…



Читать дальше →
mvn clean install

90 новых фич (и API) в JDK 11

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

Привет, Хабр! Представляю вашему вниманию перевод статьи «90 New Features (and APIs) in JDK 11» от автора Simon Ritter.



Новый шестимесячный релизный цикл JDK для многих означает, что некоторые ещё даже не выяснили, какие новые функции в JDK 10, а на пороге уже JDK 11. В одном из ранних блогов (англ.), были перечислены все 109 новых фич и API, которые удалось найти в JDK 10. Поэтому для JDK 11 было решено поступить аналогично. Тем не менее, был выбран другой формат. Этот пост будет поделён на два раздела: новые фичи, которые доступны разработчикам (публичный API) и всё остальное. Таким образом, если вас интересует только то, что непосредственно повлияет на вашу разработку, вы можете пропустить вторую часть.


Общее число изменений, которое удалось подсчитать, получилось равным 90 (это JEP плюс новые классы и методы, исключая отдельные методы для HTTP-клиента и Flight Recorder) (прим. переводчика: Java Flight Recorder (JFR) был одним из коммерческих дополнений от Оракла встроенным в JDK, но начиная с Java 11, благодаря JEP 328, был передан в опенсорс). Хоть и в JDK 11 удалось найти на одиннадцать изменений меньше, чем в JDK 10, считаю, что справедливо сказать, что в JDK 11 добавлено больше функциональных возможностей, однозначно на уровне JVM.

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

Java vs GO. Тестирование большим числом пользователей

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

Мотивация


Микросервисная архитектура позволяет выбирать между технологиями и языками программирования при написании REST api сервисов. Какой язык лучше выбрать, для написании REST api приложения, чтобы обеспечить большее количество одновременных пользователей быстрым и стабильным ответом на одном и том же железе? Чтобы ответить на этот вопрос было бы хорошо увидеть разницу в производительности одного и того же приложения написанного на Java и GO.

Дисклеймер


Все результаты представленные в данном эксперименте являются частным примером использования Java и GO и не должны использоваться для описания производительности этих языков в других условиях.
Читать дальше →

Ты не станешь героем, если ты разработчик

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

Мало кто может стать героем в этом мире, но у этих парней получилось. Если серьёзно, то я хочу рассказать вам про самых упоротых людей, которых мы позвали выступать на нашу маленькую уютную конференцию. Потому что мы внезапно поняли, что этих людей приходят послушать не для того, чтобы узнать про новую технологию и фронтир разработки (хотя про это тоже), а чтобы просто посмотреть, чего и как может добиться разработчик в своей жизни.

Ведь кто-то сидит и пилит кусок безликого корпоративного кода, а кто-то рядом умудряется при этом стать знаменитым на весь мир. Вот, например, Андрей Паньгин из Одноклассников. Он внезапно делал Java как таковую, потом в Оракле пилил компиляторы. А сейчас сидит в самом сердце Mail.ru Group и коммитит оттуда в опенсорсные библиотеки, которые отвечают за высокоскоростной ввод данных. И он же написал async-profiler — это один из двух профайлеров мирового уровня для Java.

Парня, который написал второй профайлер, мы тоже позвали. В общем, пока кто-то сидит в банке и пилит биллинг, кто-то успевает собрать garbage collector для Red Hat и стать знаменитым. По-своему.

Сейчас покажу ещё упоротых людей.
Читать дальше →

Взлет Хелидона

Время на прочтение6 мин
Охват и читатели7.4K
Привет, Хабр! Представляю вашему вниманию перевод статьи Дмитрия Корнилова Helidon Takes Flight. Я не являюсь сотрудником Oracle, но мне показалась интересной статья о новом, набирающем популярность, типе фреймворков. Итак, поехали…

Сегодня хороший день. Сегодня мы представляем новый Java-фреймворк из семейства MicroProfile для реализации микросервисов. Проект Helidon — это новый Java-фреймворк от Oracle.

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


Введение


Некоторое время назад началась работа над тем, чем сейчас является проект Helidon. Когда мы вошли на рынок облачных решений, а архитектура микросервисов стала очень популярной для создания облачных сервисов, мы поняли, что экспертизу разработки также необходимо расширять. Возможно создание микросервисов с использованием Java EE, но лучше иметь инфраструктуру, разработанную с нуля для создания микросервисов. Мы хотели создать легковесный набор библиотек, не требующих сервера приложений и облака для Java SE приложений. Эти библиотеки могут использоваться отдельно друг от друга, но при совместном использовании обеспечат разработчику создание каркаса микросервиса: начальную конфигурацию, подсистему безопасности и веб-сервер.

Уже предпринимаются попытки создать стандартные микросервисные системы из MicroProfile. MicroProfile довольно популярен в сообществе Java EE / Jakarta EE и предоставляет опыт разработки, подобный Java EE. Нам нравится идея и мы поддерживаем эту инициативу. Helidon реализует MicroProfile 1.1. Мы продолжим работу над внедрением новых версий MicroProfile и намерены поддерживать соответствующие стандарты Jakarta EE в этой области, поскольку они уже описаны.
Читать дальше →

Не попадитесь в ловушку используя Oracle JDK 11

Время на прочтение2 мин
Охват и читатели189K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Do not fall into Oracle's Java 11 trap» автора Stephen Colebourne.

Java 11 была официально выпущена. Это мажорный релиз, имеющий долгосрочную поддержку (LTS — long-term support). Однако Oracle приготовила ловушку (намеренно или случайно).

Ловушка


В течение 23 лёт разработчики привыкли загружать JDK с сайта Oracle и использовать его бесплатно. Введите «JDK» в свою любимую поисковую систему, и верхняя ссылка будет вести на страницу загрузки Oracle Java SE (я намеренно не предоставляю ссылку). Но этот запрос и эта ссылка теперь являются ловушкой.

Oracle JDK, на который ссылаются почти все поисковые запросы, теперь является коммерческим, и не является бесплатным.
Читать дальше →

JUG.EKB: объединяем с помощью митапов Java-разработчиков

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


Naumen провел очередную встречу Java-сообщества Екатеринбурга – JUG.EKB. Митап прошел 13 сентября, в День программиста. Это уже 11-я встреча.
Читать дальше →

Java 11: новое в String

Время на прочтение4 мин
Охват и читатели41K
Всем привет! С момента выхода Java 11 прошли сутки, и вот уже наконец стали появляться первые обзоры релиза. Я же посвящу свою небольшую статью незаметному для официальных релизов и потому обделённому вниманием обновлению класса String, тем более, что оно не упоминается в официальной документации 11-й Java (я, во всяком случае, там информации об этом не нашёл).

Действительно, если мы заглянем в класс String, то среди множества знакомых нам методов мы найдём несколько, помеченных как "@since 11". И да, официально в Java они появились только вчера.
Читать дальше →

Java 11 / JDK 11: General Availability

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

Товарищи по оружию, Java-бойцы Хабра! Этот день мы приближали как могли.


Сегодня стала доступна релизная версия JDK 11 — референсная реализация Java 11, и первая LTS-версии Java, выпущенная по быстрому 6-месячному релизному циклу. Самый большой и важный релиз новейшего времени, который даст толчок всему Java-сообществу переходить на самые новые и продвинутые технологии.



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

Boot yourself, Spring is coming (Часть 1)

Время на прочтение32 мин
Охват и читатели51K
Евгений EvgenyBorisov Борисов (NAYA Technologies) и Кирилл tolkkv Толкачев (Циан.Финанс, Твиттер) рассказывают о самых важных и интересных моментах Spring Boot на примере стартера для воображаемого Железного банка.



В основе статьи — доклад Евгения и Кирилла с нашей конференции Joker 2017. Под катом — видео и текстовая расшифровка доклада.

Инструменты для поиска аннотированных классов в Java

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

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


image

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

Как автоматизировать сбор KPI за месяц и оставить пользователей почти довольными

Время на прочтение20 мин
Охват и читатели3.7K
Во многих организациях оценка подразделений осуществляется с использованием KPI (Key Performance Indicators). В организации, где я работаю, такая система называется «системой показателей деятельности», а в этой статье я хочу рассказать о том, как у нас получилось автоматизировать часть работы с показателями уложившись в месяц. При всем этом трудозатраты наши оказались не самыми большими, а заодно мы попробовали реализовать некоторые давние хотелки. В моем рассказе не будет хайповых технологий или откровений (все-таки провинциальная разработка сурова), зато будут некоторые зарисовки на тему, которые помогут понять, с чего мы начали, что у нас получилось, а также какие мысли появились у нас по итогам разработки. Если вам еще не стало скучно, прошу под кат.
Читать дальше →

Релизим проект на Java с Maven на новый лад

Время на прочтение3 мин
Охват и читатели6.9K
Все мы давно уже привыкли к Maven, к версионности предложенной им и управлению зависимостями. Maven появился на свет, когда ежедневная сборка проекта была уделом самых смелых, когда считалось нормальным релизиться хотя-бы пару раз в год, Jenkins тогда еще назывался Hudson, а деревья были большими…

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

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

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

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

Далее мы попробуем изменить мир к лучшему и упростить себе жизнь.
Читать дальше →

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

«Если хочешь создать нечто действительно крутое, надо копать глубже и знать, как твой код работает в системе, на железе»

Время на прочтение11 мин
Охват и читатели9.9K
Хабр, привет! Интересно, как много программистов и разработчиков открыли для себя data science или data engineering, и строят успешную карьеру в области больших данных. Илья Маркин, Software engineer в Directual, — как раз один из разработчиков, перешедших в data engineering. Поговорили об опыте в роли тимлида, любимом инструменте в data engineering, Илья рассказал о конференциях и интересных профильных каналах джавистов, о Directual с пользовательской стороны и технической, о компьютерных играх и пр.

image

— Илья, спасибо, что нашел время встретиться. Поздравляю и с относительно недавним переходом в новую компанию, и с рождением дочки, хлопот и забот у тебя сейчас много. Сразу же первый вопрос: чем таким интересным тебе предложили заниматься в Directual, что ты ушел из DCA?

— Наверное, прежде надо рассказать, чем я в DCA занимался. В DCA (Data-Centric Alliance) я попал после прохождения программы «Специалист по большим данным». В тот момент я активно интересовался темой big data и понял, что это именно та область, в которой я хочу развиваться. Ведь там, где много данных, интересных инженерных проблем, которые необходимо решать, тоже предостаточно. Программа помогла мне довольно быстро погрузиться в экосистему мира биг дата, там я получил необходимые начальные знания о Hadoop, YARN, парадигме Map-Reduce, HBase, Spark, Flink, и многом другом, и о том, как это работает под высокой нагрузкой.
Читать дальше →

Заряди мозги напрямую! Рантаймы, компиляторы и перформанс на Joker 2018

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

Многие из нас ходят на конференции по Java только из-за хардкора. Это статья о том, что в этом плане изменилось за год.


Хардкор бывает нескольких видов. Можно выделить как минимум:


  • перформансные оптимизации в любых проявлениях;
  • внутренности достаточно сложных технологий (OpenJDK, GraalVM);
  • компиляторы и рантаймы в целом;
  • дизайн языков программирования;
  • проблемы computer science и прикладной математики;
  • и многое другое.



В чем разница между обычным докладом и хардкорным? Это как разница между статьей по квантовой гравитации и руководством по вкусной и здоровой пище. Правильно приготовить Spring — это, безусловно, очень сложная и интересная задача, которая для многих из нас является большой частью повседневных задач, и, соответственно, доклады Жени Борисова имеют большое практическое значение. Грубо говоря, это способ стать более хорошим специалистом и поднять больше денег. Но блеск далёких звезд находится не там.


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

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

Мой опыт знакомства и работы с Robot Framework

Время на прочтение6 мин
Охват и читатели20K
Чуть более года назад я впервые попробовал в работе Robot Framework. За время моего участия в довольно масштабном проекте я испытал на своей шкуре два разных подхода к автоматизации тестирования с помощью этого инструмента: написание тестов на чистом DSL Robot Framework и работу в связке с Python. Если первый путь имеет низкий порог входа, то второй, на мой взгляд, удобнее с точки зрения поддержки крупных проектов. Хотя фундаментальной разницы между подходами нет. Так или иначе, все сводится к поиску библиотек.

Однако об особенностях подходов поговорить стоит.

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

4 октября, Москва — Backend Stories 2.0

Время на прочтение1 мин
Охват и читатели3K
В четверг, 4 октября, на площадке Deworkacy (ул. Большая Полянка, д.2/10, стр 1) мы проведём митап для backend-разработчиков.



Начинаем в 19.00, подробности — под катом.
Читать дальше →

Абстрактный CRUD от репозитория до контроллера: что ещё можно сделать при помощи Spring + Generics

Время на прочтение7 мин
Охват и читатели40K
Совсем недавно на Хабре мелькнула статья коллеги, который описал довольно интересный подход к совмещению Generics и возможностей Spring. Мне она напомнила один подход, который я использую для написания микросервисов, и именно им я решил поделиться с читателями.



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

SDKMAN — мёртв, да здравствует SDKMAN

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

TL;DR: SDKMAN CLI будет переписан на Golang

Шесть лет прошло с тех пор как мы выпустили первую версию SDKMAN. В более ранних версиях он был известен как GVM и использовался для управления Groovy и связанным с ним инструментарием. Вскоре стало очевидно, что он не должен ограничиваться экосистемой Groovy, и может также применяться к другим SDK на JVM. В этот момент GVM был переименован в SDKMAN. Хотя название и изменилось, основная технология осталась прежней.

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

Интеграция web-приложений с помощью Spring Cloud Contract

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


В статье речь пойдет об интеграции веб-приложений, написанных с помощью Spring и работающих по HTTP. Название Spring Cloud Contract, на мой взгляд, вводит в заблуждение, так как не имеет ничего общего с cloud.


Речь пойдет об API контрактах.

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